m.smali
.class public final Lcom/google/android/exoplayer2/extractor/mp4/m;
.super Ljava/lang/Object;
.source "Mp4Extractor.java"
# interfaces
.implements Lcom/google/android/exoplayer2/extractor/j;
.implements Lcom/google/android/exoplayer2/extractor/x;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/extractor/mp4/m$a;
}
.end annotation
# static fields
.field public static final a:Lcom/google/android/exoplayer2/extractor/p;
# instance fields
.field private final b:I
.field private final c:Lcom/google/android/exoplayer2/util/x;
.field private final d:Lcom/google/android/exoplayer2/util/x;
.field private final e:Lcom/google/android/exoplayer2/util/x;
.field private final f:Lcom/google/android/exoplayer2/util/x;
.field private final g:Ljava/util/ArrayDeque;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayDeque<",
"Lcom/google/android/exoplayer2/extractor/mp4/e$a;",
">;"
}
.end annotation
.end field
.field private h:I
.field private i:I
.field private j:J
.field private k:I
.field private l:Lcom/google/android/exoplayer2/util/x;
.field private m:I
.field private n:I
.field private o:I
.field private p:I
.field private q:Lcom/google/android/exoplayer2/extractor/m;
.field private r:[Lcom/google/android/exoplayer2/extractor/mp4/m$a;
.field private s:[[J
.field private t:I
.field private u:J
.field private v:Z
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 1
sget-object v0, Lcom/google/android/exoplayer2/extractor/mp4/c;->a:Lcom/google/android/exoplayer2/extractor/mp4/c;
sput-object v0, Lcom/google/android/exoplayer2/extractor/mp4/m;->a:Lcom/google/android/exoplayer2/extractor/p;
return-void
.end method
.method public constructor <init>()V
.registers 2
const/4 v0, 0x0
.line 1
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/extractor/mp4/m;-><init>(I)V
return-void
.end method
.method public constructor <init>(I)V
.registers 3
.line 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 3
iput p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->b:I
.line 4
new-instance p1, Lcom/google/android/exoplayer2/util/x;
const/16 v0, 0x10
invoke-direct {p1, v0}, Lcom/google/android/exoplayer2/util/x;-><init>(I)V
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->f:Lcom/google/android/exoplayer2/util/x;
.line 5
new-instance p1, Ljava/util/ArrayDeque;
invoke-direct {p1}, Ljava/util/ArrayDeque;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->g:Ljava/util/ArrayDeque;
.line 6
new-instance p1, Lcom/google/android/exoplayer2/util/x;
sget-object v0, Lcom/google/android/exoplayer2/util/u;->a:[B
invoke-direct {p1, v0}, Lcom/google/android/exoplayer2/util/x;-><init>([B)V
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->c:Lcom/google/android/exoplayer2/util/x;
.line 7
new-instance p1, Lcom/google/android/exoplayer2/util/x;
const/4 v0, 0x4
invoke-direct {p1, v0}, Lcom/google/android/exoplayer2/util/x;-><init>(I)V
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->d:Lcom/google/android/exoplayer2/util/x;
.line 8
new-instance p1, Lcom/google/android/exoplayer2/util/x;
invoke-direct {p1}, Lcom/google/android/exoplayer2/util/x;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->e:Lcom/google/android/exoplayer2/util/x;
const/4 p1, -0x1
.line 9
iput p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->m:I
return-void
.end method
.method private static a(Lcom/google/android/exoplayer2/extractor/mp4/s;J)I
.registers 5
.line 73
invoke-virtual {p0, p1, p2}, Lcom/google/android/exoplayer2/extractor/mp4/s;->a(J)I
move-result v0
const/4 v1, -0x1
if-ne v0, v1, :cond_b
.line 74
invoke-virtual {p0, p1, p2}, Lcom/google/android/exoplayer2/extractor/mp4/s;->b(J)I
move-result v0
:cond_b
return v0
.end method
.method private static a(Lcom/google/android/exoplayer2/extractor/mp4/s;JJ)J
.registers 5
.line 70
invoke-static {p0, p1, p2}, Lcom/google/android/exoplayer2/extractor/mp4/m;->a(Lcom/google/android/exoplayer2/extractor/mp4/s;J)I
move-result p1
const/4 p2, -0x1
if-ne p1, p2, :cond_8
return-wide p3
.line 71
:cond_8
iget-object p0, p0, Lcom/google/android/exoplayer2/extractor/mp4/s;->c:[J
aget-wide p1, p0, p1
.line 72
invoke-static {p1, p2, p3, p4}, Ljava/lang/Math;->min(JJ)J
move-result-wide p0
return-wide p0
.end method
.method static synthetic a(Lcom/google/android/exoplayer2/extractor/mp4/p;)Lcom/google/android/exoplayer2/extractor/mp4/p;
.registers 1
return-object p0
.end method
.method private a(Lcom/google/android/exoplayer2/extractor/mp4/e$a;)V
.registers 26
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
move-object/from16 v0, p0
move-object/from16 v1, p1
.line 17
new-instance v9, Ljava/util/ArrayList;
invoke-direct {v9}, Ljava/util/ArrayList;-><init>()V
.line 18
new-instance v10, Lcom/google/android/exoplayer2/extractor/u;
invoke-direct {v10}, Lcom/google/android/exoplayer2/extractor/u;-><init>()V
const v2, 0x75647461
.line 19
invoke-virtual {v1, v2}, Lcom/google/android/exoplayer2/extractor/mp4/e$a;->e(I)Lcom/google/android/exoplayer2/extractor/mp4/e$b;
move-result-object v2
const/4 v3, 0x0
if-eqz v2, :cond_25
.line 20
iget-boolean v4, v0, Lcom/google/android/exoplayer2/extractor/mp4/m;->v:Z
invoke-static {v2, v4}, Lcom/google/android/exoplayer2/extractor/mp4/f;->a(Lcom/google/android/exoplayer2/extractor/mp4/e$b;Z)Lcom/google/android/exoplayer2/metadata/Metadata;
move-result-object v2
if-eqz v2, :cond_23
.line 21
invoke-virtual {v10, v2}, Lcom/google/android/exoplayer2/extractor/u;->a(Lcom/google/android/exoplayer2/metadata/Metadata;)Z
:cond_23
move-object v11, v2
goto :goto_26
:cond_25
move-object v11, v3
:goto_26
const v2, 0x6d657461
.line 22
invoke-virtual {v1, v2}, Lcom/google/android/exoplayer2/extractor/mp4/e$a;->d(I)Lcom/google/android/exoplayer2/extractor/mp4/e$a;
move-result-object v2
if-eqz v2, :cond_33
.line 23
invoke-static {v2}, Lcom/google/android/exoplayer2/extractor/mp4/f;->a(Lcom/google/android/exoplayer2/extractor/mp4/e$a;)Lcom/google/android/exoplayer2/metadata/Metadata;
move-result-object v3
:cond_33
move-object v12, v3
.line 24
iget v2, v0, Lcom/google/android/exoplayer2/extractor/mp4/m;->b:I
const/4 v13, 0x1
and-int/2addr v2, v13
if-eqz v2, :cond_3c
const/4 v6, 0x1
goto :goto_3d
:cond_3c
const/4 v6, 0x0
:goto_3d
const-wide v3, -0x7fffffffffffffffL # -4.9E-324
const/4 v5, 0x0
.line 25
iget-boolean v7, v0, Lcom/google/android/exoplayer2/extractor/mp4/m;->v:Z
sget-object v8, Lcom/google/android/exoplayer2/extractor/mp4/b;->a:Lcom/google/android/exoplayer2/extractor/mp4/b;
move-object/from16 v1, p1
move-object v2, v10
.line 26
invoke-static/range {v1 .. v8}, Lcom/google/android/exoplayer2/extractor/mp4/f;->a(Lcom/google/android/exoplayer2/extractor/mp4/e$a;Lcom/google/android/exoplayer2/extractor/u;JLcom/google/android/exoplayer2/drm/DrmInitData;ZZLcom/google/common/base/g;)Ljava/util/List;
move-result-object v1
.line 27
iget-object v2, v0, Lcom/google/android/exoplayer2/extractor/mp4/m;->q:Lcom/google/android/exoplayer2/extractor/m;
invoke-static {v2}, Lcom/google/android/exoplayer2/util/d;->a(Ljava/lang/Object;)Ljava/lang/Object;
check-cast v2, Lcom/google/android/exoplayer2/extractor/m;
.line 28
invoke-interface {v1}, Ljava/util/List;->size()I
move-result v3
const-wide v4, -0x7fffffffffffffffL # -4.9E-324
move-wide v14, v4
const/4 v7, 0x0
const/4 v8, -0x1
:goto_61
if-ge v7, v3, :cond_ef
.line 29
invoke-interface {v1, v7}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v16
move-object/from16 v6, v16
check-cast v6, Lcom/google/android/exoplayer2/extractor/mp4/s;
.line 30
iget v13, v6, Lcom/google/android/exoplayer2/extractor/mp4/s;->b:I
if-nez v13, :cond_76
move-object/from16 v17, v1
move/from16 v19, v3
const/4 v0, -0x1
const/4 v6, 0x1
goto :goto_df
.line 31
:cond_76
iget-object v13, v6, Lcom/google/android/exoplayer2/extractor/mp4/s;->a:Lcom/google/android/exoplayer2/extractor/mp4/p;
move-object/from16 v17, v1
.line 32
iget-wide v0, v13, Lcom/google/android/exoplayer2/extractor/mp4/p;->e:J
cmp-long v18, v0, v4
if-eqz v18, :cond_81
goto :goto_83
:cond_81
iget-wide v0, v6, Lcom/google/android/exoplayer2/extractor/mp4/s;->h:J
.line 33
:goto_83
invoke-static {v14, v15, v0, v1}, Ljava/lang/Math;->max(JJ)J
move-result-wide v14
.line 34
new-instance v4, Lcom/google/android/exoplayer2/extractor/mp4/m$a;
iget v5, v13, Lcom/google/android/exoplayer2/extractor/mp4/p;->b:I
.line 35
invoke-interface {v2, v7, v5}, Lcom/google/android/exoplayer2/extractor/m;->a(II)Lcom/google/android/exoplayer2/extractor/A;
move-result-object v5
invoke-direct {v4, v13, v6, v5}, Lcom/google/android/exoplayer2/extractor/mp4/m$a;-><init>(Lcom/google/android/exoplayer2/extractor/mp4/p;Lcom/google/android/exoplayer2/extractor/mp4/s;Lcom/google/android/exoplayer2/extractor/A;)V
.line 36
iget v5, v6, Lcom/google/android/exoplayer2/extractor/mp4/s;->e:I
add-int/lit8 v5, v5, 0x1e
move/from16 v19, v3
.line 37
iget-object v3, v13, Lcom/google/android/exoplayer2/extractor/mp4/p;->f:Lcom/google/android/exoplayer2/Format;
invoke-virtual {v3}, Lcom/google/android/exoplayer2/Format;->a()Lcom/google/android/exoplayer2/Format$a;
move-result-object v3
.line 38
invoke-virtual {v3, v5}, Lcom/google/android/exoplayer2/Format$a;->h(I)Lcom/google/android/exoplayer2/Format$a;
.line 39
iget v5, v13, Lcom/google/android/exoplayer2/extractor/mp4/p;->b:I
move-wide/from16 v20, v14
const/4 v14, 0x2
if-ne v5, v14, :cond_be
const-wide/16 v22, 0x0
cmp-long v5, v0, v22
if-lez v5, :cond_be
iget v5, v6, Lcom/google/android/exoplayer2/extractor/mp4/s;->b:I
const/4 v6, 0x1
if-le v5, v6, :cond_bf
int-to-float v5, v5
long-to-float v0, v0
const v1, 0x49742400 # 1000000.0f
div-float/2addr v0, v1
div-float/2addr v5, v0
.line 40
invoke-virtual {v3, v5}, Lcom/google/android/exoplayer2/Format$a;->a(F)Lcom/google/android/exoplayer2/Format$a;
goto :goto_bf
:cond_be
const/4 v6, 0x1
.line 41
:cond_bf
:goto_bf
iget v0, v13, Lcom/google/android/exoplayer2/extractor/mp4/p;->b:I
invoke-static {v0, v11, v12, v10, v3}, Lcom/google/android/exoplayer2/extractor/mp4/l;->a(ILcom/google/android/exoplayer2/metadata/Metadata;Lcom/google/android/exoplayer2/metadata/Metadata;Lcom/google/android/exoplayer2/extractor/u;Lcom/google/android/exoplayer2/Format$a;)V
.line 42
iget-object v0, v4, Lcom/google/android/exoplayer2/extractor/mp4/m$a;->c:Lcom/google/android/exoplayer2/extractor/A;
invoke-virtual {v3}, Lcom/google/android/exoplayer2/Format$a;->a()Lcom/google/android/exoplayer2/Format;
move-result-object v1
invoke-interface {v0, v1}, Lcom/google/android/exoplayer2/extractor/A;->a(Lcom/google/android/exoplayer2/Format;)V
.line 43
iget v0, v13, Lcom/google/android/exoplayer2/extractor/mp4/p;->b:I
if-ne v0, v14, :cond_d9
const/4 v0, -0x1
if-ne v8, v0, :cond_da
.line 44
invoke-interface {v9}, Ljava/util/List;->size()I
move-result v8
goto :goto_da
:cond_d9
const/4 v0, -0x1
.line 45
:cond_da
:goto_da
invoke-interface {v9, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
move-wide/from16 v14, v20
:goto_df
add-int/lit8 v7, v7, 0x1
move-object/from16 v0, p0
move-object/from16 v1, v17
move/from16 v3, v19
const-wide v4, -0x7fffffffffffffffL # -4.9E-324
const/4 v13, 0x1
goto/16 :goto_61
:cond_ef
move-object v1, v0
.line 46
iput v8, v1, Lcom/google/android/exoplayer2/extractor/mp4/m;->t:I
.line 47
iput-wide v14, v1, Lcom/google/android/exoplayer2/extractor/mp4/m;->u:J
const/4 v0, 0x0
.line 48
new-array v0, v0, [Lcom/google/android/exoplayer2/extractor/mp4/m$a;
invoke-interface {v9, v0}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lcom/google/android/exoplayer2/extractor/mp4/m$a;
iput-object v0, v1, Lcom/google/android/exoplayer2/extractor/mp4/m;->r:[Lcom/google/android/exoplayer2/extractor/mp4/m$a;
.line 49
iget-object v0, v1, Lcom/google/android/exoplayer2/extractor/mp4/m;->r:[Lcom/google/android/exoplayer2/extractor/mp4/m$a;
invoke-static {v0}, Lcom/google/android/exoplayer2/extractor/mp4/m;->a([Lcom/google/android/exoplayer2/extractor/mp4/m$a;)[[J
move-result-object v0
iput-object v0, v1, Lcom/google/android/exoplayer2/extractor/mp4/m;->s:[[J
.line 50
invoke-interface {v2}, Lcom/google/android/exoplayer2/extractor/m;->a()V
.line 51
invoke-interface {v2, v1}, Lcom/google/android/exoplayer2/extractor/m;->a(Lcom/google/android/exoplayer2/extractor/x;)V
return-void
.end method
.method private static a(I)Z
.registers 2
const v0, 0x6d6f6f76
if-eq p0, v0, :cond_26
const v0, 0x7472616b
if-eq p0, v0, :cond_26
const v0, 0x6d646961
if-eq p0, v0, :cond_26
const v0, 0x6d696e66
if-eq p0, v0, :cond_26
const v0, 0x7374626c
if-eq p0, v0, :cond_26
const v0, 0x65647473
if-eq p0, v0, :cond_26
const v0, 0x6d657461
if-ne p0, v0, :cond_24
goto :goto_26
:cond_24
const/4 p0, 0x0
goto :goto_27
:cond_26
:goto_26
const/4 p0, 0x1
:goto_27
return p0
.end method
.method private static a(Lcom/google/android/exoplayer2/util/x;)Z
.registers 4
const/16 v0, 0x8
.line 75
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/x;->e(I)V
.line 76
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/x;->j()I
move-result v0
const/4 v1, 0x1
const v2, 0x71742020
if-ne v0, v2, :cond_10
return v1
:cond_10
const/4 v0, 0x4
.line 77
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/x;->f(I)V
.line 78
:cond_14
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/x;->a()I
move-result v0
if-lez v0, :cond_21
.line 79
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/x;->j()I
move-result v0
if-ne v0, v2, :cond_14
return v1
:cond_21
const/4 p0, 0x0
return p0
.end method
.method private static a([Lcom/google/android/exoplayer2/extractor/mp4/m$a;)[[J
.registers 16
.line 52
array-length v0, p0
new-array v0, v0, [[J
.line 53
array-length v1, p0
new-array v1, v1, [I
.line 54
array-length v2, p0
new-array v2, v2, [J
.line 55
array-length v3, p0
new-array v3, v3, [Z
const/4 v4, 0x0
const/4 v5, 0x0
.line 56
:goto_e
array-length v6, p0
if-ge v5, v6, :cond_28
.line 57
aget-object v6, p0, v5
iget-object v6, v6, Lcom/google/android/exoplayer2/extractor/mp4/m$a;->b:Lcom/google/android/exoplayer2/extractor/mp4/s;
iget v6, v6, Lcom/google/android/exoplayer2/extractor/mp4/s;->b:I
new-array v6, v6, [J
aput-object v6, v0, v5
.line 58
aget-object v6, p0, v5
iget-object v6, v6, Lcom/google/android/exoplayer2/extractor/mp4/m$a;->b:Lcom/google/android/exoplayer2/extractor/mp4/s;
iget-object v6, v6, Lcom/google/android/exoplayer2/extractor/mp4/s;->f:[J
aget-wide v7, v6, v4
aput-wide v7, v2, v5
add-int/lit8 v5, v5, 0x1
goto :goto_e
:cond_28
const-wide/16 v5, 0x0
move-wide v6, v5
const/4 v5, 0x0
.line 59
:goto_2c
array-length v8, p0
if-ge v5, v8, :cond_74
const-wide v8, 0x7fffffffffffffffL
const/4 v10, -0x1
move-wide v11, v8
const/4 v8, 0x0
.line 60
:goto_37
array-length v9, p0
if-ge v8, v9, :cond_4b
.line 61
aget-boolean v9, v3, v8
if-nez v9, :cond_48
aget-wide v13, v2, v8
cmp-long v9, v13, v11
if-gtz v9, :cond_48
.line 62
aget-wide v9, v2, v8
move-wide v11, v9
move v10, v8
:cond_48
add-int/lit8 v8, v8, 0x1
goto :goto_37
.line 63
:cond_4b
aget v8, v1, v10
.line 64
aget-object v9, v0, v10
aput-wide v6, v9, v8
.line 65
aget-object v9, p0, v10
iget-object v9, v9, Lcom/google/android/exoplayer2/extractor/mp4/m$a;->b:Lcom/google/android/exoplayer2/extractor/mp4/s;
iget-object v9, v9, Lcom/google/android/exoplayer2/extractor/mp4/s;->d:[I
aget v9, v9, v8
int-to-long v11, v9
add-long/2addr v6, v11
const/4 v9, 0x1
add-int/2addr v8, v9
.line 66
aput v8, v1, v10
.line 67
aget-object v11, v0, v10
array-length v11, v11
if-ge v8, v11, :cond_6f
.line 68
aget-object v9, p0, v10
iget-object v9, v9, Lcom/google/android/exoplayer2/extractor/mp4/m$a;->b:Lcom/google/android/exoplayer2/extractor/mp4/s;
iget-object v9, v9, Lcom/google/android/exoplayer2/extractor/mp4/s;->f:[J
aget-wide v8, v9, v8
aput-wide v8, v2, v10
goto :goto_2c
.line 69
:cond_6f
aput-boolean v9, v3, v10
add-int/lit8 v5, v5, 0x1
goto :goto_2c
:cond_74
return-object v0
.end method
.method private b(Lcom/google/android/exoplayer2/extractor/k;)V
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 35
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->e:Lcom/google/android/exoplayer2/util/x;
const/16 v1, 0x8
invoke-virtual {v0, v1}, Lcom/google/android/exoplayer2/util/x;->c(I)V
.line 36
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->e:Lcom/google/android/exoplayer2/util/x;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/x;->c()[B
move-result-object v0
const/4 v2, 0x0
invoke-interface {p1, v0, v2, v1}, Lcom/google/android/exoplayer2/extractor/k;->b([BII)V
.line 37
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->e:Lcom/google/android/exoplayer2/util/x;
const/4 v1, 0x4
invoke-virtual {v0, v1}, Lcom/google/android/exoplayer2/util/x;->f(I)V
.line 38
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->e:Lcom/google/android/exoplayer2/util/x;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/x;->j()I
move-result v0
const v2, 0x68646c72 # 4.3148E24f
if-ne v0, v2, :cond_26
.line 39
invoke-interface {p1}, Lcom/google/android/exoplayer2/extractor/k;->a()V
goto :goto_29
.line 40
:cond_26
invoke-interface {p1, v1}, Lcom/google/android/exoplayer2/extractor/k;->c(I)V
:goto_29
return-void
.end method
.method private static b(I)Z
.registers 2
const v0, 0x6d646864
if-eq p0, v0, :cond_5d
const v0, 0x6d766864
if-eq p0, v0, :cond_5d
const v0, 0x68646c72 # 4.3148E24f
if-eq p0, v0, :cond_5d
const v0, 0x73747364
if-eq p0, v0, :cond_5d
const v0, 0x73747473
if-eq p0, v0, :cond_5d
const v0, 0x73747373
if-eq p0, v0, :cond_5d
const v0, 0x63747473
if-eq p0, v0, :cond_5d
const v0, 0x656c7374
if-eq p0, v0, :cond_5d
const v0, 0x73747363
if-eq p0, v0, :cond_5d
const v0, 0x7374737a
if-eq p0, v0, :cond_5d
const v0, 0x73747a32
if-eq p0, v0, :cond_5d
const v0, 0x7374636f
if-eq p0, v0, :cond_5d
const v0, 0x636f3634
if-eq p0, v0, :cond_5d
const v0, 0x746b6864
if-eq p0, v0, :cond_5d
const v0, 0x66747970
if-eq p0, v0, :cond_5d
const v0, 0x75647461
if-eq p0, v0, :cond_5d
const v0, 0x6b657973
if-eq p0, v0, :cond_5d
const v0, 0x696c7374
if-ne p0, v0, :cond_5b
goto :goto_5d
:cond_5b
const/4 p0, 0x0
goto :goto_5e
:cond_5d
:goto_5d
const/4 p0, 0x1
:goto_5e
return p0
.end method
.method private b(Lcom/google/android/exoplayer2/extractor/k;Lcom/google/android/exoplayer2/extractor/w;)Z
.registers 12
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 23
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->j:J
iget v2, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->k:I
int-to-long v2, v2
sub-long/2addr v0, v2
.line 24
invoke-interface {p1}, Lcom/google/android/exoplayer2/extractor/k;->getPosition()J
move-result-wide v2
add-long/2addr v2, v0
.line 25
iget-object v4, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->l:Lcom/google/android/exoplayer2/util/x;
const/4 v5, 0x1
const/4 v6, 0x0
if-eqz v4, :cond_44
.line 26
invoke-virtual {v4}, Lcom/google/android/exoplayer2/util/x;->c()[B
move-result-object p2
iget v7, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->k:I
long-to-int v1, v0
invoke-interface {p1, p2, v7, v1}, Lcom/google/android/exoplayer2/extractor/k;->readFully([BII)V
.line 27
iget p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->i:I
const p2, 0x66747970
if-ne p1, p2, :cond_29
.line 28
invoke-static {v4}, Lcom/google/android/exoplayer2/extractor/mp4/m;->a(Lcom/google/android/exoplayer2/util/x;)Z
move-result p1
iput-boolean p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->v:Z
goto :goto_4f
.line 29
:cond_29
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->g:Ljava/util/ArrayDeque;
invoke-virtual {p1}, Ljava/util/ArrayDeque;->isEmpty()Z
move-result p1
if-nez p1, :cond_4f
.line 30
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->g:Ljava/util/ArrayDeque;
invoke-virtual {p1}, Ljava/util/ArrayDeque;->peek()Ljava/lang/Object;
move-result-object p1
check-cast p1, Lcom/google/android/exoplayer2/extractor/mp4/e$a;
new-instance p2, Lcom/google/android/exoplayer2/extractor/mp4/e$b;
iget v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->i:I
invoke-direct {p2, v0, v4}, Lcom/google/android/exoplayer2/extractor/mp4/e$b;-><init>(ILcom/google/android/exoplayer2/util/x;)V
invoke-virtual {p1, p2}, Lcom/google/android/exoplayer2/extractor/mp4/e$a;->a(Lcom/google/android/exoplayer2/extractor/mp4/e$b;)V
goto :goto_4f
:cond_44
const-wide/32 v7, 0x40000
cmp-long v4, v0, v7
if-gez v4, :cond_51
long-to-int p2, v0
.line 31
invoke-interface {p1, p2}, Lcom/google/android/exoplayer2/extractor/k;->c(I)V
:cond_4f
:goto_4f
const/4 p1, 0x0
goto :goto_59
.line 32
:cond_51
invoke-interface {p1}, Lcom/google/android/exoplayer2/extractor/k;->getPosition()J
move-result-wide v7
add-long/2addr v7, v0
iput-wide v7, p2, Lcom/google/android/exoplayer2/extractor/w;->a:J
const/4 p1, 0x1
.line 33
:goto_59
invoke-direct {p0, v2, v3}, Lcom/google/android/exoplayer2/extractor/mp4/m;->d(J)V
if-eqz p1, :cond_64
.line 34
iget p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->h:I
const/4 p2, 0x2
if-eq p1, p2, :cond_64
goto :goto_65
:cond_64
const/4 v5, 0x0
:goto_65
return v5
.end method
.method static synthetic b()[Lcom/google/android/exoplayer2/extractor/j;
.registers 3
const/4 v0, 0x1
.line 1
new-array v0, v0, [Lcom/google/android/exoplayer2/extractor/j;
new-instance v1, Lcom/google/android/exoplayer2/extractor/mp4/m;
invoke-direct {v1}, Lcom/google/android/exoplayer2/extractor/mp4/m;-><init>()V
const/4 v2, 0x0
aput-object v1, v0, v2
return-object v0
.end method
.method private c(J)I
.registers 23
move-object/from16 v0, p0
const/4 v2, -0x1
const/4 v2, 0x0
const-wide v6, 0x7fffffffffffffffL
const/4 v8, 0x1
const-wide v9, 0x7fffffffffffffffL
const/4 v11, -0x1
const/4 v12, -0x1
const/4 v13, 0x1
const-wide v14, 0x7fffffffffffffffL
.line 86
:goto_17
iget-object v1, v0, Lcom/google/android/exoplayer2/extractor/mp4/m;->r:[Lcom/google/android/exoplayer2/extractor/mp4/m$a;
invoke-static {v1}, Lcom/google/android/exoplayer2/util/L;->a(Ljava/lang/Object;)Ljava/lang/Object;
check-cast v1, [Lcom/google/android/exoplayer2/extractor/mp4/m$a;
array-length v1, v1
if-ge v2, v1, :cond_6a
.line 87
iget-object v1, v0, Lcom/google/android/exoplayer2/extractor/mp4/m;->r:[Lcom/google/android/exoplayer2/extractor/mp4/m$a;
aget-object v1, v1, v2
.line 88
iget v3, v1, Lcom/google/android/exoplayer2/extractor/mp4/m$a;->d:I
.line 89
iget-object v1, v1, Lcom/google/android/exoplayer2/extractor/mp4/m$a;->b:Lcom/google/android/exoplayer2/extractor/mp4/s;
iget v4, v1, Lcom/google/android/exoplayer2/extractor/mp4/s;->b:I
if-ne v3, v4, :cond_2e
goto :goto_67
.line 90
:cond_2e
iget-object v1, v1, Lcom/google/android/exoplayer2/extractor/mp4/s;->c:[J
aget-wide v4, v1, v3
.line 91
iget-object v1, v0, Lcom/google/android/exoplayer2/extractor/mp4/m;->s:[[J
invoke-static {v1}, Lcom/google/android/exoplayer2/util/L;->a(Ljava/lang/Object;)Ljava/lang/Object;
check-cast v1, [[J
aget-object v1, v1, v2
aget-wide v16, v1, v3
sub-long v4, v4, p1
const-wide/16 v18, 0x0
cmp-long v1, v4, v18
if-ltz v1, :cond_4f
const-wide/32 v18, 0x40000
cmp-long v1, v4, v18
if-ltz v1, :cond_4d
goto :goto_4f
:cond_4d
const/4 v1, 0x0
goto :goto_50
:cond_4f
:goto_4f
const/4 v1, 0x1
:goto_50
if-nez v1, :cond_54
if-nez v13, :cond_5a
:cond_54
if-ne v1, v13, :cond_5f
cmp-long v3, v4, v14
if-gez v3, :cond_5f
:cond_5a
move v13, v1
move v12, v2
move-wide v14, v4
move-wide/from16 v9, v16
:cond_5f
cmp-long v3, v16, v6
if-gez v3, :cond_67
move v8, v1
move v11, v2
move-wide/from16 v6, v16
:cond_67
:goto_67
add-int/lit8 v2, v2, 0x1
goto :goto_17
:cond_6a
const-wide v1, 0x7fffffffffffffffL
cmp-long v3, v6, v1
if-eqz v3, :cond_7d
if-eqz v8, :cond_7d
const-wide/32 v1, 0xa00000
add-long/2addr v6, v1
cmp-long v1, v9, v6
if-gez v1, :cond_7e
:cond_7d
move v11, v12
:cond_7e
return v11
.end method
.method private c(Lcom/google/android/exoplayer2/extractor/k;Lcom/google/android/exoplayer2/extractor/w;)I
.registers 16
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 36
invoke-interface {p1}, Lcom/google/android/exoplayer2/extractor/k;->getPosition()J
move-result-wide v0
.line 37
iget v2, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->m:I
const/4 v3, -0x1
if-ne v2, v3, :cond_14
.line 38
invoke-direct {p0, v0, v1}, Lcom/google/android/exoplayer2/extractor/mp4/m;->c(J)I
move-result v2
iput v2, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->m:I
.line 39
iget v2, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->m:I
if-ne v2, v3, :cond_14
return v3
.line 40
:cond_14
iget-object v2, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->r:[Lcom/google/android/exoplayer2/extractor/mp4/m$a;
invoke-static {v2}, Lcom/google/android/exoplayer2/util/L;->a(Ljava/lang/Object;)Ljava/lang/Object;
check-cast v2, [Lcom/google/android/exoplayer2/extractor/mp4/m$a;
iget v4, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->m:I
aget-object v2, v2, v4
.line 41
iget-object v4, v2, Lcom/google/android/exoplayer2/extractor/mp4/m$a;->c:Lcom/google/android/exoplayer2/extractor/A;
.line 42
iget v5, v2, Lcom/google/android/exoplayer2/extractor/mp4/m$a;->d:I
.line 43
iget-object v6, v2, Lcom/google/android/exoplayer2/extractor/mp4/m$a;->b:Lcom/google/android/exoplayer2/extractor/mp4/s;
iget-object v7, v6, Lcom/google/android/exoplayer2/extractor/mp4/s;->c:[J
aget-wide v8, v7, v5
.line 44
iget-object v6, v6, Lcom/google/android/exoplayer2/extractor/mp4/s;->d:[I
aget v6, v6, v5
sub-long v0, v8, v0
.line 45
iget v7, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->n:I
int-to-long v10, v7
add-long/2addr v0, v10
const-wide/16 v10, 0x0
const/4 v12, 0x1
cmp-long v7, v0, v10
if-ltz v7, :cond_115
const-wide/32 v10, 0x40000
cmp-long v7, v0, v10
if-ltz v7, :cond_43
goto/16 :goto_115
.line 46
:cond_43
iget-object p2, v2, Lcom/google/android/exoplayer2/extractor/mp4/m$a;->a:Lcom/google/android/exoplayer2/extractor/mp4/p;
iget p2, p2, Lcom/google/android/exoplayer2/extractor/mp4/p;->g:I
if-ne p2, v12, :cond_4e
const-wide/16 v7, 0x8
add-long/2addr v0, v7
add-int/lit8 v6, v6, -0x8
:cond_4e
long-to-int p2, v0
.line 47
invoke-interface {p1, p2}, Lcom/google/android/exoplayer2/extractor/k;->c(I)V
.line 48
iget-object p2, v2, Lcom/google/android/exoplayer2/extractor/mp4/m$a;->a:Lcom/google/android/exoplayer2/extractor/mp4/p;
iget v0, p2, Lcom/google/android/exoplayer2/extractor/mp4/p;->j:I
const/4 v1, 0x0
if-eqz v0, :cond_b9
.line 49
iget-object p2, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->d:Lcom/google/android/exoplayer2/util/x;
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/x;->c()[B
move-result-object p2
.line 50
aput-byte v1, p2, v1
.line 51
aput-byte v1, p2, v12
const/4 v0, 0x2
.line 52
aput-byte v1, p2, v0
.line 53
iget-object v0, v2, Lcom/google/android/exoplayer2/extractor/mp4/m$a;->a:Lcom/google/android/exoplayer2/extractor/mp4/p;
iget v0, v0, Lcom/google/android/exoplayer2/extractor/mp4/p;->j:I
const/4 v7, 0x4
rsub-int/lit8 v8, v0, 0x4
.line 54
:goto_6d
iget v9, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->o:I
if-ge v9, v6, :cond_f5
.line 55
iget v9, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->p:I
if-nez v9, :cond_a5
.line 56
invoke-interface {p1, p2, v8, v0}, Lcom/google/android/exoplayer2/extractor/k;->readFully([BII)V
.line 57
iget v9, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->n:I
add-int/2addr v9, v0
iput v9, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->n:I
.line 58
iget-object v9, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->d:Lcom/google/android/exoplayer2/util/x;
invoke-virtual {v9, v1}, Lcom/google/android/exoplayer2/util/x;->e(I)V
.line 59
iget-object v9, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->d:Lcom/google/android/exoplayer2/util/x;
invoke-virtual {v9}, Lcom/google/android/exoplayer2/util/x;->j()I
move-result v9
if-ltz v9, :cond_9d
.line 60
iput v9, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->p:I
.line 61
iget-object v9, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->c:Lcom/google/android/exoplayer2/util/x;
invoke-virtual {v9, v1}, Lcom/google/android/exoplayer2/util/x;->e(I)V
.line 62
iget-object v9, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->c:Lcom/google/android/exoplayer2/util/x;
invoke-interface {v4, v9, v7}, Lcom/google/android/exoplayer2/extractor/A;->a(Lcom/google/android/exoplayer2/util/x;I)V
.line 63
iget v9, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->o:I
add-int/2addr v9, v7
iput v9, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->o:I
add-int/2addr v6, v8
goto :goto_6d
.line 64
:cond_9d
new-instance p1, Lcom/google/android/exoplayer2/ParserException;
const-string p2, "Invalid NAL length"
invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p1
.line 65
:cond_a5
invoke-interface {v4, p1, v9, v1}, Lcom/google/android/exoplayer2/extractor/A;->a(Lcom/google/android/exoplayer2/upstream/h;IZ)I
move-result v9
.line 66
iget v10, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->n:I
add-int/2addr v10, v9
iput v10, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->n:I
.line 67
iget v10, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->o:I
add-int/2addr v10, v9
iput v10, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->o:I
.line 68
iget v10, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->p:I
sub-int/2addr v10, v9
iput v10, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->p:I
goto :goto_6d
.line 69
:cond_b9
iget-object p2, p2, Lcom/google/android/exoplayer2/extractor/mp4/p;->f:Lcom/google/android/exoplayer2/Format;
iget-object p2, p2, Lcom/google/android/exoplayer2/Format;->l:Ljava/lang/String;
const-string v0, "audio/ac4"
invoke-virtual {v0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p2
if-eqz p2, :cond_db
.line 70
iget p2, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->o:I
if-nez p2, :cond_d9
.line 71
iget-object p2, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->e:Lcom/google/android/exoplayer2/util/x;
invoke-static {v6, p2}, Lcom/google/android/exoplayer2/audio/o;->a(ILcom/google/android/exoplayer2/util/x;)V
.line 72
iget-object p2, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->e:Lcom/google/android/exoplayer2/util/x;
const/4 v0, 0x7
invoke-interface {v4, p2, v0}, Lcom/google/android/exoplayer2/extractor/A;->a(Lcom/google/android/exoplayer2/util/x;I)V
.line 73
iget p2, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->o:I
add-int/2addr p2, v0
iput p2, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->o:I
:cond_d9
add-int/lit8 v6, v6, 0x7
.line 74
:cond_db
:goto_db
iget p2, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->o:I
if-ge p2, v6, :cond_f5
sub-int p2, v6, p2
.line 75
invoke-interface {v4, p1, p2, v1}, Lcom/google/android/exoplayer2/extractor/A;->a(Lcom/google/android/exoplayer2/upstream/h;IZ)I
move-result p2
.line 76
iget v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->n:I
add-int/2addr v0, p2
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->n:I
.line 77
iget v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->o:I
add-int/2addr v0, p2
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->o:I
.line 78
iget v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->p:I
sub-int/2addr v0, p2
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->p:I
goto :goto_db
:cond_f5
move v8, v6
.line 79
iget-object p1, v2, Lcom/google/android/exoplayer2/extractor/mp4/m$a;->b:Lcom/google/android/exoplayer2/extractor/mp4/s;
iget-object p2, p1, Lcom/google/android/exoplayer2/extractor/mp4/s;->f:[J
aget-wide v6, p2, v5
iget-object p1, p1, Lcom/google/android/exoplayer2/extractor/mp4/s;->g:[I
aget p1, p1, v5
const/4 v9, 0x0
const/4 v10, 0x0
move-wide v5, v6
move v7, p1
invoke-interface/range {v4 .. v10}, Lcom/google/android/exoplayer2/extractor/A;->a(JIIILcom/google/android/exoplayer2/extractor/A$a;)V
.line 80
iget p1, v2, Lcom/google/android/exoplayer2/extractor/mp4/m$a;->d:I
add-int/2addr p1, v12
iput p1, v2, Lcom/google/android/exoplayer2/extractor/mp4/m$a;->d:I
.line 81
iput v3, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->m:I
.line 82
iput v1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->n:I
.line 83
iput v1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->o:I
.line 84
iput v1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->p:I
return v1
.line 85
:cond_115
:goto_115
iput-wide v8, p2, Lcom/google/android/exoplayer2/extractor/w;->a:J
return v12
.end method
.method private c()V
.registers 2
const/4 v0, 0x0
.line 1
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->h:I
.line 2
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->k:I
return-void
.end method
.method private c(Lcom/google/android/exoplayer2/extractor/k;)Z
.registers 10
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 3
iget v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->k:I
const/4 v1, 0x1
const/16 v2, 0x8
const/4 v3, 0x0
if-nez v0, :cond_2c
.line 4
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->f:Lcom/google/android/exoplayer2/util/x;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/x;->c()[B
move-result-object v0
invoke-interface {p1, v0, v3, v2, v1}, Lcom/google/android/exoplayer2/extractor/k;->b([BIIZ)Z
move-result v0
if-nez v0, :cond_15
return v3
.line 5
:cond_15
iput v2, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->k:I
.line 6
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->f:Lcom/google/android/exoplayer2/util/x;
invoke-virtual {v0, v3}, Lcom/google/android/exoplayer2/util/x;->e(I)V
.line 7
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->f:Lcom/google/android/exoplayer2/util/x;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/x;->y()J
move-result-wide v4
iput-wide v4, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->j:J
.line 8
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->f:Lcom/google/android/exoplayer2/util/x;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/x;->j()I
move-result v0
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->i:I
.line 9
:cond_2c
iget-wide v4, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->j:J
const-wide/16 v6, 0x1
cmp-long v0, v4, v6
if-nez v0, :cond_4b
.line 10
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->f:Lcom/google/android/exoplayer2/util/x;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/x;->c()[B
move-result-object v0
invoke-interface {p1, v0, v2, v2}, Lcom/google/android/exoplayer2/extractor/k;->readFully([BII)V
.line 11
iget v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->k:I
add-int/2addr v0, v2
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->k:I
.line 12
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->f:Lcom/google/android/exoplayer2/util/x;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/x;->B()J
move-result-wide v4
iput-wide v4, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->j:J
goto :goto_76
:cond_4b
const-wide/16 v6, 0x0
cmp-long v0, v4, v6
if-nez v0, :cond_76
.line 13
invoke-interface {p1}, Lcom/google/android/exoplayer2/extractor/k;->getLength()J
move-result-wide v4
const-wide/16 v6, -0x1
cmp-long v0, v4, v6
if-nez v0, :cond_67
.line 14
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->g:Ljava/util/ArrayDeque;
invoke-virtual {v0}, Ljava/util/ArrayDeque;->peek()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/extractor/mp4/e$a;
if-eqz v0, :cond_67
.line 15
iget-wide v4, v0, Lcom/google/android/exoplayer2/extractor/mp4/e$a;->b:J
:cond_67
cmp-long v0, v4, v6
if-eqz v0, :cond_76
.line 16
invoke-interface {p1}, Lcom/google/android/exoplayer2/extractor/k;->getPosition()J
move-result-wide v6
sub-long/2addr v4, v6
iget v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->k:I
int-to-long v6, v0
add-long/2addr v4, v6
iput-wide v4, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->j:J
.line 17
:cond_76
:goto_76
iget-wide v4, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->j:J
iget v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->k:I
int-to-long v6, v0
cmp-long v0, v4, v6
if-ltz v0, :cond_ff
.line 18
iget v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->i:I
invoke-static {v0}, Lcom/google/android/exoplayer2/extractor/mp4/m;->a(I)Z
move-result v0
if-eqz v0, :cond_be
.line 19
invoke-interface {p1}, Lcom/google/android/exoplayer2/extractor/k;->getPosition()J
move-result-wide v2
iget-wide v4, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->j:J
add-long/2addr v2, v4
iget v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->k:I
int-to-long v6, v0
sub-long/2addr v2, v6
int-to-long v6, v0
cmp-long v0, v4, v6
if-eqz v0, :cond_a1
.line 20
iget v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->i:I
const v4, 0x6d657461
if-ne v0, v4, :cond_a1
.line 21
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/extractor/mp4/m;->b(Lcom/google/android/exoplayer2/extractor/k;)V
.line 22
:cond_a1
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->g:Ljava/util/ArrayDeque;
new-instance v0, Lcom/google/android/exoplayer2/extractor/mp4/e$a;
iget v4, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->i:I
invoke-direct {v0, v4, v2, v3}, Lcom/google/android/exoplayer2/extractor/mp4/e$a;-><init>(IJ)V
invoke-virtual {p1, v0}, Ljava/util/ArrayDeque;->push(Ljava/lang/Object;)V
.line 23
iget-wide v4, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->j:J
iget p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->k:I
int-to-long v6, p1
cmp-long p1, v4, v6
if-nez p1, :cond_ba
.line 24
invoke-direct {p0, v2, v3}, Lcom/google/android/exoplayer2/extractor/mp4/m;->d(J)V
goto :goto_fe
.line 25
:cond_ba
invoke-direct {p0}, Lcom/google/android/exoplayer2/extractor/mp4/m;->c()V
goto :goto_fe
.line 26
:cond_be
iget p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->i:I
invoke-static {p1}, Lcom/google/android/exoplayer2/extractor/mp4/m;->b(I)Z
move-result p1
if-eqz p1, :cond_f9
.line 27
iget p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->k:I
if-ne p1, v2, :cond_cc
const/4 p1, 0x1
goto :goto_cd
:cond_cc
const/4 p1, 0x0
:goto_cd
invoke-static {p1}, Lcom/google/android/exoplayer2/util/d;->b(Z)V
.line 28
iget-wide v4, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->j:J
const-wide/32 v6, 0x7fffffff
cmp-long p1, v4, v6
if-gtz p1, :cond_db
const/4 p1, 0x1
goto :goto_dc
:cond_db
const/4 p1, 0x0
:goto_dc
invoke-static {p1}, Lcom/google/android/exoplayer2/util/d;->b(Z)V
.line 29
new-instance p1, Lcom/google/android/exoplayer2/util/x;
iget-wide v4, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->j:J
long-to-int v0, v4
invoke-direct {p1, v0}, Lcom/google/android/exoplayer2/util/x;-><init>(I)V
.line 30
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->f:Lcom/google/android/exoplayer2/util/x;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/x;->c()[B
move-result-object v0
invoke-virtual {p1}, Lcom/google/android/exoplayer2/util/x;->c()[B
move-result-object v4
invoke-static {v0, v3, v4, v3, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 31
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->l:Lcom/google/android/exoplayer2/util/x;
.line 32
iput v1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->h:I
goto :goto_fe
:cond_f9
const/4 p1, 0x0
.line 33
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->l:Lcom/google/android/exoplayer2/util/x;
.line 34
iput v1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->h:I
:goto_fe
return v1
.line 35
:cond_ff
new-instance p1, Lcom/google/android/exoplayer2/ParserException;
const-string v0, "Atom size less than header length (unsupported)."
invoke-direct {p1, v0}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method private d(J)V
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
.line 1
:cond_0
:goto_0
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->g:Ljava/util/ArrayDeque;
invoke-virtual {v0}, Ljava/util/ArrayDeque;->isEmpty()Z
move-result v0
const/4 v1, 0x2
if-nez v0, :cond_45
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->g:Ljava/util/ArrayDeque;
invoke-virtual {v0}, Ljava/util/ArrayDeque;->peek()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/extractor/mp4/e$a;
iget-wide v2, v0, Lcom/google/android/exoplayer2/extractor/mp4/e$a;->b:J
cmp-long v0, v2, p1
if-nez v0, :cond_45
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->g:Ljava/util/ArrayDeque;
invoke-virtual {v0}, Ljava/util/ArrayDeque;->pop()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/extractor/mp4/e$a;
.line 3
iget v2, v0, Lcom/google/android/exoplayer2/extractor/mp4/e;->a:I
const v3, 0x6d6f6f76
if-ne v2, v3, :cond_31
.line 4
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/extractor/mp4/m;->a(Lcom/google/android/exoplayer2/extractor/mp4/e$a;)V
.line 5
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->g:Ljava/util/ArrayDeque;
invoke-virtual {v0}, Ljava/util/ArrayDeque;->clear()V
.line 6
iput v1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->h:I
goto :goto_0
.line 7
:cond_31
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->g:Ljava/util/ArrayDeque;
invoke-virtual {v1}, Ljava/util/ArrayDeque;->isEmpty()Z
move-result v1
if-nez v1, :cond_0
.line 8
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->g:Ljava/util/ArrayDeque;
invoke-virtual {v1}, Ljava/util/ArrayDeque;->peek()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/exoplayer2/extractor/mp4/e$a;
invoke-virtual {v1, v0}, Lcom/google/android/exoplayer2/extractor/mp4/e$a;->a(Lcom/google/android/exoplayer2/extractor/mp4/e$a;)V
goto :goto_0
.line 9
:cond_45
iget p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->h:I
if-eq p1, v1, :cond_4c
.line 10
invoke-direct {p0}, Lcom/google/android/exoplayer2/extractor/mp4/m;->c()V
:cond_4c
return-void
.end method
.method private e(J)V
.registers 10
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->r:[Lcom/google/android/exoplayer2/extractor/mp4/m$a;
array-length v1, v0
const/4 v2, 0x0
:goto_4
if-ge v2, v1, :cond_1a
aget-object v3, v0, v2
.line 2
iget-object v4, v3, Lcom/google/android/exoplayer2/extractor/mp4/m$a;->b:Lcom/google/android/exoplayer2/extractor/mp4/s;
.line 3
invoke-virtual {v4, p1, p2}, Lcom/google/android/exoplayer2/extractor/mp4/s;->a(J)I
move-result v5
const/4 v6, -0x1
if-ne v5, v6, :cond_15
.line 4
invoke-virtual {v4, p1, p2}, Lcom/google/android/exoplayer2/extractor/mp4/s;->b(J)I
move-result v5
.line 5
:cond_15
iput v5, v3, Lcom/google/android/exoplayer2/extractor/mp4/m$a;->d:I
add-int/lit8 v2, v2, 0x1
goto :goto_4
:cond_1a
return-void
.end method
# virtual methods
.method public a(Lcom/google/android/exoplayer2/extractor/k;Lcom/google/android/exoplayer2/extractor/w;)I
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 12
:cond_0
iget v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->h:I
if-eqz v0, :cond_1c
const/4 v1, 0x1
if-eq v0, v1, :cond_15
const/4 v1, 0x2
if-ne v0, v1, :cond_f
.line 13
invoke-direct {p0, p1, p2}, Lcom/google/android/exoplayer2/extractor/mp4/m;->c(Lcom/google/android/exoplayer2/extractor/k;Lcom/google/android/exoplayer2/extractor/w;)I
move-result p1
return p1
.line 14
:cond_f
new-instance p1, Ljava/lang/IllegalStateException;
invoke-direct {p1}, Ljava/lang/IllegalStateException;-><init>()V
throw p1
.line 15
:cond_15
invoke-direct {p0, p1, p2}, Lcom/google/android/exoplayer2/extractor/mp4/m;->b(Lcom/google/android/exoplayer2/extractor/k;Lcom/google/android/exoplayer2/extractor/w;)Z
move-result v0
if-eqz v0, :cond_0
return v1
.line 16
:cond_1c
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/extractor/mp4/m;->c(Lcom/google/android/exoplayer2/extractor/k;)Z
move-result v0
if-nez v0, :cond_0
const/4 p1, -0x1
return p1
.end method
.method public a(JJ)V
.registers 8
.line 3
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->g:Ljava/util/ArrayDeque;
invoke-virtual {v0}, Ljava/util/ArrayDeque;->clear()V
const/4 v0, 0x0
.line 4
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->k:I
const/4 v1, -0x1
.line 5
iput v1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->m:I
.line 6
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->n:I
.line 7
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->o:I
.line 8
iput v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->p:I
const-wide/16 v0, 0x0
cmp-long v2, p1, v0
if-nez v2, :cond_1b
.line 9
invoke-direct {p0}, Lcom/google/android/exoplayer2/extractor/mp4/m;->c()V
goto :goto_22
.line 10
:cond_1b
iget-object p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->r:[Lcom/google/android/exoplayer2/extractor/mp4/m$a;
if-eqz p1, :cond_22
.line 11
invoke-direct {p0, p3, p4}, Lcom/google/android/exoplayer2/extractor/mp4/m;->e(J)V
:cond_22
:goto_22
return-void
.end method
.method public a(Lcom/google/android/exoplayer2/extractor/m;)V
.registers 2
.line 2
iput-object p1, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->q:Lcom/google/android/exoplayer2/extractor/m;
return-void
.end method
.method public a(Lcom/google/android/exoplayer2/extractor/k;)Z
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
invoke-static {p1}, Lcom/google/android/exoplayer2/extractor/mp4/o;->b(Lcom/google/android/exoplayer2/extractor/k;)Z
move-result p1
return p1
.end method
.method public b(J)Lcom/google/android/exoplayer2/extractor/x$a;
.registers 15
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->r:[Lcom/google/android/exoplayer2/extractor/mp4/m$a;
invoke-static {v0}, Lcom/google/android/exoplayer2/util/d;->a(Ljava/lang/Object;)Ljava/lang/Object;
check-cast v0, [Lcom/google/android/exoplayer2/extractor/mp4/m$a;
array-length v0, v0
if-nez v0, :cond_12
.line 3
new-instance p1, Lcom/google/android/exoplayer2/extractor/x$a;
sget-object p2, Lcom/google/android/exoplayer2/extractor/y;->a:Lcom/google/android/exoplayer2/extractor/y;
invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/extractor/x$a;-><init>(Lcom/google/android/exoplayer2/extractor/y;)V
return-object p1
:cond_12
const-wide/16 v0, -0x1
.line 4
iget v2, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->t:I
const/4 v3, -0x1
const-wide v4, -0x7fffffffffffffffL # -4.9E-324
if-eq v2, v3, :cond_5a
.line 5
iget-object v6, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->r:[Lcom/google/android/exoplayer2/extractor/mp4/m$a;
aget-object v2, v6, v2
iget-object v2, v2, Lcom/google/android/exoplayer2/extractor/mp4/m$a;->b:Lcom/google/android/exoplayer2/extractor/mp4/s;
.line 6
invoke-static {v2, p1, p2}, Lcom/google/android/exoplayer2/extractor/mp4/m;->a(Lcom/google/android/exoplayer2/extractor/mp4/s;J)I
move-result v6
if-ne v6, v3, :cond_32
.line 7
new-instance p1, Lcom/google/android/exoplayer2/extractor/x$a;
sget-object p2, Lcom/google/android/exoplayer2/extractor/y;->a:Lcom/google/android/exoplayer2/extractor/y;
invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/extractor/x$a;-><init>(Lcom/google/android/exoplayer2/extractor/y;)V
return-object p1
.line 8
:cond_32
iget-object v7, v2, Lcom/google/android/exoplayer2/extractor/mp4/s;->f:[J
aget-wide v8, v7, v6
.line 9
iget-object v7, v2, Lcom/google/android/exoplayer2/extractor/mp4/s;->c:[J
aget-wide v10, v7, v6
cmp-long v7, v8, p1
if-gez v7, :cond_55
.line 10
iget v7, v2, Lcom/google/android/exoplayer2/extractor/mp4/s;->b:I
add-int/lit8 v7, v7, -0x1
if-ge v6, v7, :cond_55
.line 11
invoke-virtual {v2, p1, p2}, Lcom/google/android/exoplayer2/extractor/mp4/s;->b(J)I
move-result p1
if-eq p1, v3, :cond_55
if-eq p1, v6, :cond_55
.line 12
iget-object p2, v2, Lcom/google/android/exoplayer2/extractor/mp4/s;->f:[J
aget-wide v0, p2, p1
.line 13
iget-object p2, v2, Lcom/google/android/exoplayer2/extractor/mp4/s;->c:[J
aget-wide p1, p2, p1
goto :goto_57
:cond_55
move-wide p1, v0
move-wide v0, v4
:goto_57
move-wide v2, p1
move-wide p1, v8
goto :goto_61
:cond_5a
const-wide v10, 0x7fffffffffffffffL
move-wide v2, v0
move-wide v0, v4
:goto_61
const/4 v6, 0x0
.line 14
:goto_62
iget-object v7, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->r:[Lcom/google/android/exoplayer2/extractor/mp4/m$a;
array-length v8, v7
if-ge v6, v8, :cond_7f
.line 15
iget v8, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->t:I
if-eq v6, v8, :cond_7c
.line 16
aget-object v7, v7, v6
iget-object v7, v7, Lcom/google/android/exoplayer2/extractor/mp4/m$a;->b:Lcom/google/android/exoplayer2/extractor/mp4/s;
.line 17
invoke-static {v7, p1, p2, v10, v11}, Lcom/google/android/exoplayer2/extractor/mp4/m;->a(Lcom/google/android/exoplayer2/extractor/mp4/s;JJ)J
move-result-wide v8
cmp-long v10, v0, v4
if-eqz v10, :cond_7b
.line 18
invoke-static {v7, v0, v1, v2, v3}, Lcom/google/android/exoplayer2/extractor/mp4/m;->a(Lcom/google/android/exoplayer2/extractor/mp4/s;JJ)J
move-result-wide v2
:cond_7b
move-wide v10, v8
:cond_7c
add-int/lit8 v6, v6, 0x1
goto :goto_62
.line 19
:cond_7f
new-instance v6, Lcom/google/android/exoplayer2/extractor/y;
invoke-direct {v6, p1, p2, v10, v11}, Lcom/google/android/exoplayer2/extractor/y;-><init>(JJ)V
cmp-long p1, v0, v4
if-nez p1, :cond_8e
.line 20
new-instance p1, Lcom/google/android/exoplayer2/extractor/x$a;
invoke-direct {p1, v6}, Lcom/google/android/exoplayer2/extractor/x$a;-><init>(Lcom/google/android/exoplayer2/extractor/y;)V
return-object p1
.line 21
:cond_8e
new-instance p1, Lcom/google/android/exoplayer2/extractor/y;
invoke-direct {p1, v0, v1, v2, v3}, Lcom/google/android/exoplayer2/extractor/y;-><init>(JJ)V
.line 22
new-instance p2, Lcom/google/android/exoplayer2/extractor/x$a;
invoke-direct {p2, v6, p1}, Lcom/google/android/exoplayer2/extractor/x$a;-><init>(Lcom/google/android/exoplayer2/extractor/y;Lcom/google/android/exoplayer2/extractor/y;)V
return-object p2
.end method
.method public getDurationUs()J
.registers 3
.line 1
iget-wide v0, p0, Lcom/google/android/exoplayer2/extractor/mp4/m;->u:J
return-wide v0
.end method
.method public isSeekable()Z
.registers 2
const/4 v0, 0x1
return v0
.end method
.method public release()V
.registers 1
return-void
.end method