AtomParsers.smali
.class final Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;
.super Ljava/lang/Object;
.source "AtomParsers.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$Stz2SampleSizeBox;,
Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StszSampleSizeBox;,
Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$SampleSizeBox;,
Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;,
Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;,
Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
}
.end annotation
# static fields
.field private static final TAG:Ljava/lang/String; = "AtomParsers"
.field private static final TYPE_cenc:I
.field private static final TYPE_clcp:I
.field private static final TYPE_meta:I
.field private static final TYPE_sbtl:I
.field private static final TYPE_soun:I
.field private static final TYPE_subt:I
.field private static final TYPE_text:I
.field private static final TYPE_vide:I
# direct methods
.method static constructor <clinit>()V
.registers 1
const-string/jumbo v0, "vide"
.line 46
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_vide:I
const-string v0, "soun"
.line 47
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_soun:I
const-string v0, "text"
.line 48
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_text:I
const-string v0, "sbtl"
.line 49
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_sbtl:I
const-string v0, "subt"
.line 50
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_subt:I
const-string v0, "clcp"
.line 51
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_clcp:I
const-string v0, "cenc"
.line 52
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_cenc:I
const-string v0, "meta"
.line 53
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_meta:I
return-void
.end method
.method private constructor <init>()V
.registers 1
.line 1102
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static findEsdsPosition(Lcom/google/android/exoplayer2/util/ParsableByteArray;II)I
.registers 7
.line 905
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v0
:goto_4
sub-int v1, v0, p1
if-ge v1, p2, :cond_24
.line 907
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 908
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
if-lez v1, :cond_13
const/4 v2, 0x1
goto :goto_14
:cond_13
const/4 v2, 0x0
:goto_14
const-string v3, "childAtomSize should be positive"
.line 909
invoke-static {v2, v3}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(ZLjava/lang/Object;)V
.line 910
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v2
.line 911
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_esds:I
if-ne v2, v3, :cond_22
return v0
:cond_22
add-int/2addr v0, v1
goto :goto_4
:cond_24
const/4 p0, -0x1
return p0
.end method
.method private static parseAudioSampleEntry(Lcom/google/android/exoplayer2/util/ParsableByteArray;IIIILjava/lang/String;ZLcom/google/android/exoplayer2/drm/DrmInitData;Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;I)V
.registers 38
move-object/from16 v0, p0
move/from16 v1, p2
move/from16 v2, p3
move-object/from16 v14, p5
move-object/from16 v15, p7
move-object/from16 v13, p8
add-int/lit8 v3, v1, 0x8
.line 780
invoke-virtual {v0, v3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
const/4 v3, 0x6
const/16 v4, 0x10
const/4 v12, 0x0
if-eqz p6, :cond_24
const/16 v5, 0x8
.line 784
invoke-virtual {v0, v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 785
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v5
.line 786
invoke-virtual {v0, v3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
goto :goto_28
.line 788
:cond_24
invoke-virtual {v0, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
const/4 v5, 0x0
:goto_28
const/4 v11, 0x2
const/4 v10, 0x1
if-eqz v5, :cond_48
if-ne v5, v10, :cond_2f
goto :goto_48
:cond_2f
if-ne v5, v11, :cond_47
.line 803
invoke-virtual {v0, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 805
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readDouble()D
move-result-wide v3
invoke-static {v3, v4}, Ljava/lang/Math;->round(D)J
move-result-wide v3
long-to-int v4, v3
.line 806
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v3
const/16 v5, 0x14
.line 810
invoke-virtual {v0, v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
goto :goto_5a
:cond_47
return-void
.line 795
:cond_48
:goto_48
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v6
.line 796
invoke-virtual {v0, v3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 797
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedFixedPoint1616()I
move-result v3
if-ne v5, v10, :cond_58
.line 800
invoke-virtual {v0, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
:cond_58
move v4, v3
move v3, v6
.line 816
:goto_5a
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v5
.line 817
sget v6, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_enca:I
move/from16 v7, p1
if-ne v7, v6, :cond_6e
move/from16 v6, p9
.line 818
invoke-static {v0, v1, v2, v13, v6}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseSampleEntryEncryptionData(Lcom/google/android/exoplayer2/util/ParsableByteArray;IILcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;I)I
move-result v6
.line 819
invoke-virtual {v0, v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
goto :goto_6f
:cond_6e
move v6, v7
.line 824
:goto_6f
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_ac_3:I
const-string v9, "audio/raw"
const/16 v16, 0x0
if-ne v6, v7, :cond_7a
const-string v6, "audio/ac3"
goto :goto_c4
.line 826
:cond_7a
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_ec_3:I
if-ne v6, v7, :cond_81
const-string v6, "audio/eac3"
goto :goto_c4
.line 828
:cond_81
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_dtsc:I
if-ne v6, v7, :cond_88
const-string v6, "audio/vnd.dts"
goto :goto_c4
.line 830
:cond_88
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_dtsh:I
if-eq v6, v7, :cond_c2
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_dtsl:I
if-ne v6, v7, :cond_91
goto :goto_c2
.line 832
:cond_91
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_dtse:I
if-ne v6, v7, :cond_98
const-string v6, "audio/vnd.dts.hd;profile=lbr"
goto :goto_c4
.line 834
:cond_98
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_samr:I
if-ne v6, v7, :cond_9f
const-string v6, "audio/3gpp"
goto :goto_c4
.line 836
:cond_9f
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_sawb:I
if-ne v6, v7, :cond_a6
const-string v6, "audio/amr-wb"
goto :goto_c4
.line 838
:cond_a6
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_lpcm:I
if-eq v6, v7, :cond_c0
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_sowt:I
if-ne v6, v7, :cond_af
goto :goto_c0
.line 840
:cond_af
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE__mp3:I
if-ne v6, v7, :cond_b6
const-string v6, "audio/mpeg"
goto :goto_c4
.line 842
:cond_b6
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_alac:I
if-ne v6, v7, :cond_bd
const-string v6, "audio/alac"
goto :goto_c4
:cond_bd
move-object/from16 v6, v16
goto :goto_c4
:cond_c0
:goto_c0
move-object v6, v9
goto :goto_c4
:cond_c2
:goto_c2
const-string v6, "audio/vnd.dts.hd"
:goto_c4
move/from16 v17, v3
move/from16 v18, v4
move v7, v5
move-object v8, v6
move-object/from16 v19, v16
:goto_cc
sub-int v3, v7, v1
const/4 v4, -0x1
if-ge v3, v2, :cond_1d6
.line 848
invoke-virtual {v0, v7}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 849
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v6
if-lez v6, :cond_dc
const/4 v3, 0x1
goto :goto_dd
:cond_dc
const/4 v3, 0x0
:goto_dd
const-string v5, "childAtomSize should be positive"
.line 850
invoke-static {v3, v5}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(ZLjava/lang/Object;)V
.line 851
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v3
.line 852
sget v5, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_esds:I
if-eq v3, v5, :cond_186
if-eqz p6, :cond_f2
sget v5, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_wave:I
if-ne v3, v5, :cond_f2
goto/16 :goto_186
.line 869
:cond_f2
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_dac3:I
if-ne v3, v4, :cond_113
add-int/lit8 v3, v7, 0x8
.line 870
invoke-virtual {v0, v3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 871
invoke-static/range {p4 .. p4}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v3
invoke-static {v0, v3, v14, v15}, Lcom/google/android/exoplayer2/audio/Ac3Util;->parseAc3AnnexFFormat(Lcom/google/android/exoplayer2/util/ParsableByteArray;Ljava/lang/String;Ljava/lang/String;Lcom/google/android/exoplayer2/drm/DrmInitData;)Lcom/google/android/exoplayer2/Format;
move-result-object v3
iput-object v3, v13, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
:goto_105
move v5, v6
move v6, v7
move-object/from16 v26, v8
move-object/from16 v27, v9
move-object v2, v13
const/4 v7, 0x0
const/16 v20, 0x1
const/16 v21, 0x2
goto/16 :goto_183
.line 873
:cond_113
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_dec3:I
if-ne v3, v4, :cond_127
add-int/lit8 v3, v7, 0x8
.line 874
invoke-virtual {v0, v3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 875
invoke-static/range {p4 .. p4}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v3
invoke-static {v0, v3, v14, v15}, Lcom/google/android/exoplayer2/audio/Ac3Util;->parseEAc3AnnexFFormat(Lcom/google/android/exoplayer2/util/ParsableByteArray;Ljava/lang/String;Ljava/lang/String;Lcom/google/android/exoplayer2/drm/DrmInitData;)Lcom/google/android/exoplayer2/Format;
move-result-object v3
iput-object v3, v13, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
goto :goto_105
.line 877
:cond_127
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_ddts:I
if-ne v3, v4, :cond_15f
.line 878
invoke-static/range {p4 .. p4}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v3
const/4 v5, 0x0
const/16 v20, -0x1
const/16 v21, -0x1
const/16 v22, 0x0
const/16 v23, 0x0
move-object v4, v8
move/from16 v24, v6
move/from16 v6, v20
move/from16 v25, v7
move/from16 v7, v21
move-object/from16 v26, v8
move/from16 v8, v17
move-object/from16 v27, v9
move/from16 v9, v18
const/16 v20, 0x1
move-object/from16 v10, v22
const/16 v21, 0x2
move-object/from16 v11, p7
move/from16 v12, v23
move-object v2, v13
move-object/from16 v13, p5
invoke-static/range {v3 .. v13}, Lcom/google/android/exoplayer2/Format;->createAudioSampleFormat(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIILjava/util/List;Lcom/google/android/exoplayer2/drm/DrmInitData;ILjava/lang/String;)Lcom/google/android/exoplayer2/Format;
move-result-object v3
iput-object v3, v2, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
move/from16 v5, v24
goto :goto_180
:cond_15f
move/from16 v24, v6
move/from16 v25, v7
move-object/from16 v26, v8
move-object/from16 v27, v9
move-object v2, v13
const/16 v20, 0x1
const/16 v21, 0x2
.line 881
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_alac:I
move/from16 v5, v24
if-ne v3, v4, :cond_180
.line 882
new-array v3, v5, [B
move/from16 v6, v25
.line 883
invoke-virtual {v0, v6}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
const/4 v7, 0x0
.line 884
invoke-virtual {v0, v3, v7, v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readBytes([BII)V
move-object/from16 v19, v3
goto :goto_183
:cond_180
:goto_180
move/from16 v6, v25
const/4 v7, 0x0
:cond_183
:goto_183
move-object/from16 v8, v26
goto :goto_1c9
:cond_186
:goto_186
move v5, v6
move v6, v7
move-object/from16 v26, v8
move-object/from16 v27, v9
move-object v2, v13
const/4 v7, 0x0
const/16 v20, 0x1
const/16 v21, 0x2
.line 853
sget v8, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_esds:I
if-ne v3, v8, :cond_198
move v3, v6
goto :goto_19c
.line 854
:cond_198
invoke-static {v0, v6, v5}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->findEsdsPosition(Lcom/google/android/exoplayer2/util/ParsableByteArray;II)I
move-result v3
:goto_19c
if-eq v3, v4, :cond_183
.line 857
invoke-static {v0, v3}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseEsdsFromParent(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)Landroid/util/Pair;
move-result-object v3
.line 858
iget-object v4, v3, Landroid/util/Pair;->first:Ljava/lang/Object;
move-object v8, v4
check-cast v8, Ljava/lang/String;
.line 859
iget-object v3, v3, Landroid/util/Pair;->second:Ljava/lang/Object;
move-object/from16 v19, v3
check-cast v19, [B
const-string v3, "audio/mp4a-latm"
.line 860
invoke-virtual {v3, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_1c9
.line 864
invoke-static/range {v19 .. v19}, Lcom/google/android/exoplayer2/util/CodecSpecificDataUtil;->parseAacAudioSpecificConfig([B)Landroid/util/Pair;
move-result-object v3
.line 865
iget-object v4, v3, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast v4, Ljava/lang/Integer;
invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I
move-result v18
.line 866
iget-object v3, v3, Landroid/util/Pair;->second:Ljava/lang/Object;
check-cast v3, Ljava/lang/Integer;
invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I
move-result v17
:cond_1c9
:goto_1c9
add-int v3, v6, v5
move-object v13, v2
move v7, v3
move-object/from16 v9, v27
const/4 v10, 0x1
const/4 v11, 0x2
const/4 v12, 0x0
move/from16 v2, p3
goto/16 :goto_cc
:cond_1d6
move-object/from16 v26, v8
move-object/from16 v27, v9
move-object v2, v13
const/16 v21, 0x2
.line 889
iget-object v0, v2, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
if-nez v0, :cond_215
move-object/from16 v6, v26
if-eqz v6, :cond_215
move-object/from16 v0, v27
.line 892
invoke-virtual {v0, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_1ef
const/4 v7, 0x2
goto :goto_1f0
:cond_1ef
const/4 v7, -0x1
.line 893
:goto_1f0
invoke-static/range {p4 .. p4}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v0
const/4 v3, 0x0
const/4 v4, -0x1
const/4 v5, -0x1
if-nez v19, :cond_1fc
move-object/from16 v8, v16
goto :goto_201
.line 895
:cond_1fc
invoke-static/range {v19 .. v19}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
move-result-object v1
move-object v8, v1
:goto_201
const/4 v10, 0x0
move-object v1, v6
move-object v12, v2
move-object v2, v3
move v3, v4
move v4, v5
move/from16 v5, v17
move/from16 v6, v18
move-object/from16 v9, p7
move-object/from16 v11, p5
.line 893
invoke-static/range {v0 .. v11}, Lcom/google/android/exoplayer2/Format;->createAudioSampleFormat(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIIILjava/util/List;Lcom/google/android/exoplayer2/drm/DrmInitData;ILjava/lang/String;)Lcom/google/android/exoplayer2/Format;
move-result-object v0
iput-object v0, v12, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
:cond_215
return-void
.end method
.method private static parseEdts(Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;)Landroid/util/Pair;
.registers 9
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;",
")",
"Landroid/util/Pair<",
"[J[J>;"
}
.end annotation
if-eqz p0, :cond_5b
.line 746
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_elst:I
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object p0
if-nez p0, :cond_b
goto :goto_5b
.line 749
:cond_b
iget-object p0, p0, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
const/16 v0, 0x8
.line 750
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 751
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v0
.line 752
invoke-static {v0}, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->parseFullAtomVersion(I)I
move-result v0
.line 753
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v1
.line 754
new-array v2, v1, [J
.line 755
new-array v3, v1, [J
const/4 v4, 0x0
:goto_23
if-ge v4, v1, :cond_56
const/4 v5, 0x1
if-ne v0, v5, :cond_2d
.line 758
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedLongToLong()J
move-result-wide v6
goto :goto_31
:cond_2d
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedInt()J
move-result-wide v6
:goto_31
aput-wide v6, v2, v4
if-ne v0, v5, :cond_3a
.line 759
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readLong()J
move-result-wide v6
goto :goto_3f
:cond_3a
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v6
int-to-long v6, v6
:goto_3f
aput-wide v6, v3, v4
.line 760
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readShort()S
move-result v6
if-ne v6, v5, :cond_4e
const/4 v5, 0x2
.line 765
invoke-virtual {p0, v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
add-int/lit8 v4, v4, 0x1
goto :goto_23
.line 763
:cond_4e
new-instance p0, Ljava/lang/IllegalArgumentException;
const-string v0, "Unsupported media rate."
invoke-direct {p0, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p0
.line 767
:cond_56
invoke-static {v2, v3}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object p0
return-object p0
:cond_5b
:goto_5b
const/4 p0, 0x0
.line 747
invoke-static {p0, p0}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object p0
return-object p0
.end method
.method private static parseEsdsFromParent(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)Landroid/util/Pair;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/util/ParsableByteArray;",
"I)",
"Landroid/util/Pair<",
"Ljava/lang/String;",
"[B>;"
}
.end annotation
add-int/lit8 p1, p1, 0x8
add-int/lit8 p1, p1, 0x4
.line 923
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
const/4 p1, 0x1
.line 925
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 926
invoke-static {p0}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseExpandableClassSize(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
const/4 v0, 0x2
.line 927
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 929
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v1
and-int/lit16 v2, v1, 0x80
if-eqz v2, :cond_1d
.line 931
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
:cond_1d
and-int/lit8 v2, v1, 0x40
if-eqz v2, :cond_28
.line 934
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v2
invoke-virtual {p0, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
:cond_28
const/16 v2, 0x20
and-int/2addr v1, v2
if-eqz v1, :cond_30
.line 937
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 941
:cond_30
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 942
invoke-static {p0}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseExpandableClassSize(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
.line 945
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v0
const/4 v1, 0x0
if-eq v0, v2, :cond_82
const/16 v2, 0x21
if-eq v0, v2, :cond_7e
const/16 v2, 0x23
if-eq v0, v2, :cond_7a
const/16 v2, 0x40
if-eq v0, v2, :cond_77
const/16 v2, 0x6b
if-eq v0, v2, :cond_70
const/16 v2, 0xa5
if-eq v0, v2, :cond_6d
const/16 v2, 0xa6
if-eq v0, v2, :cond_6a
packed-switch v0, :pswitch_data_9c
packed-switch v0, :pswitch_data_a6
goto :goto_85
:pswitch_5c
const-string p0, "audio/vnd.dts.hd"
.line 979
invoke-static {p0, v1}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object p0
return-object p0
:pswitch_63
const-string p0, "audio/vnd.dts"
.line 975
invoke-static {p0, v1}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object p0
return-object p0
:cond_6a
const-string v1, "audio/eac3"
goto :goto_85
:cond_6d
const-string v1, "audio/ac3"
goto :goto_85
:cond_70
const-string p0, "audio/mpeg"
.line 950
invoke-static {p0, v1}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object p0
return-object p0
:cond_77
:pswitch_77
const-string v1, "audio/mp4a-latm"
goto :goto_85
:cond_7a
const-string/jumbo v1, "video/hevc"
goto :goto_85
:cond_7e
const-string/jumbo v1, "video/avc"
goto :goto_85
:cond_82
const-string/jumbo v1, "video/mp4v-es"
:goto_85
const/16 v0, 0xc
.line 985
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 988
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 989
invoke-static {p0}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseExpandableClassSize(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
move-result p1
.line 990
new-array v0, p1, [B
const/4 v2, 0x0
.line 991
invoke-virtual {p0, v0, v2, p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readBytes([BII)V
.line 992
invoke-static {v1, v0}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object p0
return-object p0
:pswitch_data_9c
.packed-switch 0x66
:pswitch_77
:pswitch_77
:pswitch_77
.end packed-switch
:pswitch_data_a6
.packed-switch 0xa9
:pswitch_63
:pswitch_5c
:pswitch_5c
:pswitch_63
.end packed-switch
.end method
.method private static parseExpandableClassSize(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
.registers 4
.line 1093
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v0
and-int/lit8 v1, v0, 0x7f
:goto_6
const/16 v2, 0x80
and-int/2addr v0, v2
if-ne v0, v2, :cond_15
.line 1096
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v0
shl-int/lit8 v1, v1, 0x7
and-int/lit8 v2, v0, 0x7f
or-int/2addr v1, v2
goto :goto_6
:cond_15
return v1
.end method
.method private static parseHdlr(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
.registers 2
const/16 v0, 0x10
.line 536
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 537
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result p0
.line 538
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_soun:I
if-ne p0, v0, :cond_f
const/4 p0, 0x1
return p0
.line 540
:cond_f
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_vide:I
if-ne p0, v0, :cond_15
const/4 p0, 0x2
return p0
.line 542
:cond_15
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_text:I
if-eq p0, v0, :cond_2e
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_sbtl:I
if-eq p0, v0, :cond_2e
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_subt:I
if-eq p0, v0, :cond_2e
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_clcp:I
if-ne p0, v0, :cond_26
goto :goto_2e
.line 545
:cond_26
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_meta:I
if-ne p0, v0, :cond_2c
const/4 p0, 0x4
return p0
:cond_2c
const/4 p0, -0x1
return p0
:cond_2e
:goto_2e
const/4 p0, 0x3
return p0
.end method
.method private static parseIlst(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)Lcom/google/android/exoplayer2/metadata/Metadata;
.registers 4
const/16 v0, 0x8
.line 445
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 446
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 447
:cond_a
:goto_a
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v1
if-ge v1, p1, :cond_1a
.line 448
invoke-static {p0}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseIlstElement(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/metadata/Metadata$Entry;
move-result-object v1
if-eqz v1, :cond_a
.line 450
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_a
.line 453
:cond_1a
invoke-virtual {v0}, Ljava/util/ArrayList;->isEmpty()Z
move-result p0
if-eqz p0, :cond_22
const/4 p0, 0x0
goto :goto_27
:cond_22
new-instance p0, Lcom/google/android/exoplayer2/metadata/Metadata;
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/metadata/Metadata;-><init>(Ljava/util/List;)V
:goto_27
return-object p0
.end method
.method private static parseMdhd(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Landroid/util/Pair;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/util/ParsableByteArray;",
")",
"Landroid/util/Pair<",
"Ljava/lang/Long;",
"Ljava/lang/String;",
">;"
}
.end annotation
const/16 v0, 0x8
.line 560
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 561
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 562
invoke-static {v1}, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->parseFullAtomVersion(I)I
move-result v1
if-nez v1, :cond_12
const/16 v2, 0x8
goto :goto_14
:cond_12
const/16 v2, 0x10
.line 563
:goto_14
invoke-virtual {p0, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 564
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedInt()J
move-result-wide v2
if-nez v1, :cond_1e
const/4 v0, 0x4
.line 565
:cond_1e
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 566
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result p0
.line 567
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, ""
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
shr-int/lit8 v1, p0, 0xa
and-int/lit8 v1, v1, 0x1f
add-int/lit8 v1, v1, 0x60
int-to-char v1, v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
shr-int/lit8 v1, p0, 0x5
and-int/lit8 v1, v1, 0x1f
add-int/lit8 v1, v1, 0x60
int-to-char v1, v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
and-int/lit8 p0, p0, 0x1f
add-int/lit8 p0, p0, 0x60
int-to-char p0, p0
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
.line 570
invoke-static {v2, v3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v0
invoke-static {v0, p0}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object p0
return-object p0
.end method
.method private static parseMetaAtom(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)Lcom/google/android/exoplayer2/metadata/Metadata;
.registers 6
const/16 v0, 0xc
.line 430
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 431
:goto_5
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v0
if-ge v0, p1, :cond_2a
.line 432
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v0
.line 433
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 434
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v2
.line 435
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_ilst:I
if-ne v2, v3, :cond_24
.line 436
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
add-int/2addr v0, v1
.line 437
invoke-static {p0, v0}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseIlst(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)Lcom/google/android/exoplayer2/metadata/Metadata;
move-result-object p0
return-object p0
:cond_24
add-int/lit8 v1, v1, -0x8
.line 439
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
goto :goto_5
:cond_2a
const/4 p0, 0x0
return-object p0
.end method
.method private static parseMvhd(Lcom/google/android/exoplayer2/util/ParsableByteArray;)J
.registers 3
const/16 v0, 0x8
.line 463
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 464
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 465
invoke-static {v1}, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->parseFullAtomVersion(I)I
move-result v1
if-nez v1, :cond_10
goto :goto_12
:cond_10
const/16 v0, 0x10
.line 466
:goto_12
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 467
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedInt()J
move-result-wide v0
return-wide v0
.end method
.method private static parsePaspFromParent(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)F
.registers 2
add-int/lit8 p1, p1, 0x8
.line 771
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 772
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result p1
.line 773
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result p0
int-to-float p1, p1
int-to-float p0, p0
div-float/2addr p1, p0
return p1
.end method
.method private static parseProjFromParent(Lcom/google/android/exoplayer2/util/ParsableByteArray;II)[B
.registers 7
add-int/lit8 v0, p1, 0x8
:goto_2
sub-int v1, v0, p1
if-ge v1, p2, :cond_1f
.line 1078
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1079
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 1080
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v2
.line 1081
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_proj:I
if-ne v2, v3, :cond_1d
.line 1082
iget-object p0, p0, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
add-int/2addr v1, v0
invoke-static {p0, v0, v1}, Ljava/util/Arrays;->copyOfRange([BII)[B
move-result-object p0
return-object p0
:cond_1d
add-int/2addr v0, v1
goto :goto_2
:cond_1f
const/4 p0, 0x0
return-object p0
.end method
.method private static parseSampleEntryEncryptionData(Lcom/google/android/exoplayer2/util/ParsableByteArray;IILcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;I)I
.registers 9
.line 1001
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v0
:goto_4
sub-int v1, v0, p1
const/4 v2, 0x0
if-ge v1, p2, :cond_39
.line 1003
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1004
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
if-lez v1, :cond_13
const/4 v2, 0x1
:cond_13
const-string v3, "childAtomSize should be positive"
.line 1005
invoke-static {v2, v3}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(ZLjava/lang/Object;)V
.line 1006
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v2
.line 1007
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_sinf:I
if-ne v2, v3, :cond_37
.line 1008
invoke-static {p0, v0, v1}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseSinfFromParent(Lcom/google/android/exoplayer2/util/ParsableByteArray;II)Landroid/util/Pair;
move-result-object v2
if-eqz v2, :cond_37
.line 1011
iget-object p0, p3, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->trackEncryptionBoxes:[Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;
iget-object p1, v2, Landroid/util/Pair;->second:Ljava/lang/Object;
check-cast p1, Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;
aput-object p1, p0, p4
.line 1012
iget-object p0, v2, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast p0, Ljava/lang/Integer;
invoke-virtual {p0}, Ljava/lang/Integer;->intValue()I
move-result p0
return p0
:cond_37
add-int/2addr v0, v1
goto :goto_4
:cond_39
return v2
.end method
.method private static parseSchiFromParent(Lcom/google/android/exoplayer2/util/ParsableByteArray;II)Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;
.registers 7
add-int/lit8 v0, p1, 0x8
:goto_2
sub-int v1, v0, p1
if-ge v1, p2, :cond_36
.line 1056
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1057
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 1058
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v2
.line 1059
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_tenc:I
if-ne v2, v3, :cond_34
const/4 p1, 0x6
.line 1060
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 1061
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result p1
const/4 p2, 0x0
const/4 v0, 0x1
if-ne p1, v0, :cond_22
goto :goto_23
:cond_22
const/4 v0, 0x0
.line 1062
:goto_23
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result p1
const/16 v1, 0x10
new-array v2, v1, [B
.line 1064
invoke-virtual {p0, v2, p2, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readBytes([BII)V
.line 1065
new-instance p0, Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;
invoke-direct {p0, v0, p1, v2}, Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;-><init>(ZI[B)V
return-object p0
:cond_34
add-int/2addr v0, v1
goto :goto_2
:cond_36
const/4 p0, 0x0
return-object p0
.end method
.method private static parseSinfFromParent(Lcom/google/android/exoplayer2/util/ParsableByteArray;II)Landroid/util/Pair;
.registers 13
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/util/ParsableByteArray;",
"II)",
"Landroid/util/Pair<",
"Ljava/lang/Integer;",
"Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;",
">;"
}
.end annotation
add-int/lit8 v0, p1, 0x8
const/4 v1, 0x0
const/4 v2, 0x0
move-object v4, v1
move-object v5, v4
const/4 v3, 0x0
:goto_7
sub-int v6, v0, p1
const/4 v7, 0x1
if-ge v6, p2, :cond_42
.line 1029
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1030
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v6
.line 1031
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v8
.line 1032
sget v9, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_frma:I
if-ne v8, v9, :cond_24
.line 1033
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v4
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
goto :goto_40
.line 1034
:cond_24
sget v9, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_schm:I
if-ne v8, v9, :cond_38
const/4 v3, 0x4
.line 1035
invoke-virtual {p0, v3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 1036
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v3
sget v8, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_cenc:I
if-ne v3, v8, :cond_36
const/4 v3, 0x1
goto :goto_40
:cond_36
const/4 v3, 0x0
goto :goto_40
.line 1037
:cond_38
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_schi:I
if-ne v8, v7, :cond_40
.line 1038
invoke-static {p0, v0, v6}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseSchiFromParent(Lcom/google/android/exoplayer2/util/ParsableByteArray;II)Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;
move-result-object v5
:cond_40
:goto_40
add-int/2addr v0, v6
goto :goto_7
:cond_42
if-eqz v3, :cond_5b
if-eqz v4, :cond_48
const/4 p0, 0x1
goto :goto_49
:cond_48
const/4 p0, 0x0
:goto_49
const-string p1, "frma atom is mandatory"
.line 1044
invoke-static {p0, p1}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(ZLjava/lang/Object;)V
if-eqz v5, :cond_51
const/4 v2, 0x1
:cond_51
const-string p0, "schi->tenc atom is mandatory"
.line 1045
invoke-static {v2, p0}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(ZLjava/lang/Object;)V
.line 1046
invoke-static {v4, v5}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object p0
return-object p0
:cond_5b
return-object v1
.end method
.method public static parseStbl(Lcom/google/android/exoplayer2/extractor/mp4/Track;Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;Lcom/google/android/exoplayer2/extractor/GaplessInfoHolder;)Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;
.registers 41
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
move-object/from16 v0, p0
move-object/from16 v1, p1
move-object/from16 v2, p2
.line 110
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_stsz:I
invoke-virtual {v1, v3}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v3
if-eqz v3, :cond_14
.line 112
new-instance v4, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StszSampleSizeBox;
invoke-direct {v4, v3}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StszSampleSizeBox;-><init>(Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;)V
goto :goto_21
.line 114
:cond_14
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_stz2:I
invoke-virtual {v1, v3}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v3
if-eqz v3, :cond_463
.line 118
new-instance v4, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$Stz2SampleSizeBox;
invoke-direct {v4, v3}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$Stz2SampleSizeBox;-><init>(Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;)V
.line 121
:goto_21
invoke-interface {v4}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$SampleSizeBox;->getSampleCount()I
move-result v3
const/4 v5, 0x0
if-nez v3, :cond_38
.line 123
new-instance v0, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;
new-array v7, v5, [J
new-array v8, v5, [I
const/4 v9, 0x0
new-array v10, v5, [J
new-array v11, v5, [I
move-object v6, v0
invoke-direct/range {v6 .. v11}, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;-><init>([J[II[J[I)V
return-object v0
.line 128
:cond_38
sget v6, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_stco:I
invoke-virtual {v1, v6}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v6
const/4 v7, 0x1
if-nez v6, :cond_49
.line 131
sget v6, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_co64:I
invoke-virtual {v1, v6}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v6
const/4 v8, 0x1
goto :goto_4a
:cond_49
const/4 v8, 0x0
.line 133
:goto_4a
iget-object v6, v6, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 135
sget v9, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_stsc:I
invoke-virtual {v1, v9}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v9
iget-object v9, v9, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 137
sget v10, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_stts:I
invoke-virtual {v1, v10}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v10
iget-object v10, v10, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 139
sget v11, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_stss:I
invoke-virtual {v1, v11}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v11
const/4 v12, 0x0
if-eqz v11, :cond_68
.line 140
iget-object v11, v11, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
goto :goto_69
:cond_68
move-object v11, v12
.line 142
:goto_69
sget v13, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_ctts:I
invoke-virtual {v1, v13}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v1
if-eqz v1, :cond_74
.line 143
iget-object v1, v1, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
goto :goto_75
:cond_74
move-object v1, v12
.line 146
:goto_75
new-instance v13, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
invoke-direct {v13, v9, v6, v8}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;-><init>(Lcom/google/android/exoplayer2/util/ParsableByteArray;Lcom/google/android/exoplayer2/util/ParsableByteArray;Z)V
const/16 v6, 0xc
.line 149
invoke-virtual {v10, v6}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 150
invoke-virtual {v10}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v8
sub-int/2addr v8, v7
.line 151
invoke-virtual {v10}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v9
.line 152
invoke-virtual {v10}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v14
if-eqz v1, :cond_96
.line 159
invoke-virtual {v1, v6}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 160
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v15
goto :goto_97
:cond_96
const/4 v15, 0x0
:goto_97
const/16 v16, -0x1
if-eqz v11, :cond_ac
.line 166
invoke-virtual {v11, v6}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 167
invoke-virtual {v11}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v6
if-lez v6, :cond_ae
.line 169
invoke-virtual {v11}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v12
add-int/lit8 v16, v12, -0x1
move-object v12, v11
goto :goto_ae
:cond_ac
move-object v12, v11
const/4 v6, 0x0
.line 177
:cond_ae
:goto_ae
invoke-interface {v4}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$SampleSizeBox;->isFixedSampleSize()Z
move-result v11
if-eqz v11, :cond_c8
iget-object v11, v0, Lcom/google/android/exoplayer2/extractor/mp4/Track;->format:Lcom/google/android/exoplayer2/Format;
iget-object v11, v11, Lcom/google/android/exoplayer2/Format;->sampleMimeType:Ljava/lang/String;
const-string v5, "audio/raw"
.line 178
invoke-virtual {v5, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_c8
if-nez v8, :cond_c8
if-nez v15, :cond_c8
if-nez v6, :cond_c8
const/4 v5, 0x1
goto :goto_c9
:cond_c8
const/4 v5, 0x0
:goto_c9
const-wide/16 v18, 0x0
if-nez v5, :cond_1fa
.line 190
new-array v5, v3, [J
.line 191
new-array v11, v3, [I
.line 192
new-array v7, v3, [J
move/from16 p1, v6
.line 193
new-array v6, v3, [I
move-object/from16 v23, v10
move/from16 v2, v16
move-wide/from16 v25, v18
move-wide/from16 v27, v25
const/4 v0, 0x0
const/4 v10, 0x0
const/16 v21, 0x0
const/16 v22, 0x0
const/16 v24, 0x0
move/from16 v16, v15
move v15, v14
move v14, v9
move v9, v8
move/from16 v8, p1
:goto_ee
if-ge v0, v3, :cond_189
:goto_f0
if-nez v22, :cond_10a
.line 200
invoke-virtual {v13}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;->moveNext()Z
move-result v22
invoke-static/range {v22 .. v22}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
move/from16 p1, v14
move/from16 v29, v15
.line 201
iget-wide v14, v13, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;->offset:J
move-wide/from16 v25, v14
.line 202
iget v14, v13, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;->numSamples:I
move/from16 v22, v14
move/from16 v15, v29
move/from16 v14, p1
goto :goto_f0
:cond_10a
move/from16 p1, v14
move/from16 v29, v15
if-eqz v1, :cond_121
:goto_110
if-nez v21, :cond_11f
if-lez v16, :cond_11f
.line 208
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v21
.line 214
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v24
add-int/lit8 v16, v16, -0x1
goto :goto_110
:cond_11f
add-int/lit8 v21, v21, -0x1
:cond_121
move/from16 v14, v24
.line 220
aput-wide v25, v5, v0
.line 221
invoke-interface {v4}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$SampleSizeBox;->readNextSampleSize()I
move-result v15
aput v15, v11, v0
.line 222
aget v15, v11, v0
if-le v15, v10, :cond_131
.line 223
aget v10, v11, v0
:cond_131
move/from16 v24, v3
move-object v15, v4
int-to-long v3, v14
add-long v3, v27, v3
.line 225
aput-wide v3, v7, v0
if-nez v12, :cond_13d
const/4 v3, 0x1
goto :goto_13e
:cond_13d
const/4 v3, 0x0
.line 228
:goto_13e
aput v3, v6, v0
if-ne v0, v2, :cond_14e
const/4 v3, 0x1
.line 230
aput v3, v6, v0
add-int/lit8 v8, v8, -0x1
if-lez v8, :cond_14e
.line 233
invoke-virtual {v12}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v2
sub-int/2addr v2, v3
:cond_14e
move/from16 v3, v29
move-object/from16 v29, v5
int-to-long v4, v3
add-long v27, v27, v4
add-int/lit8 v4, p1, -0x1
if-nez v4, :cond_166
if-lez v9, :cond_166
.line 241
invoke-virtual/range {v23 .. v23}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v3
.line 242
invoke-virtual/range {v23 .. v23}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v4
add-int/lit8 v9, v9, -0x1
goto :goto_16b
:cond_166
move/from16 v37, v4
move v4, v3
move/from16 v3, v37
.line 246
:goto_16b
aget v5, v11, v0
move/from16 v30, v2
move/from16 p1, v3
int-to-long v2, v5
add-long v25, v25, v2
add-int/lit8 v22, v22, -0x1
add-int/lit8 v0, v0, 0x1
move/from16 v3, v24
move-object/from16 v5, v29
move/from16 v2, v30
move/from16 v24, v14
move/from16 v14, p1
move-object/from16 v37, v15
move v15, v4
move-object/from16 v4, v37
goto/16 :goto_ee
:cond_189
move/from16 v24, v3
move-object/from16 v29, v5
move/from16 p1, v14
if-nez v21, :cond_193
const/4 v0, 0x1
goto :goto_194
:cond_193
const/4 v0, 0x0
.line 250
:goto_194
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(Z)V
:goto_197
if-lez v16, :cond_1ab
.line 253
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v0
if-nez v0, :cond_1a1
const/4 v0, 0x1
goto :goto_1a2
:cond_1a1
const/4 v0, 0x0
:goto_1a2
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(Z)V
.line 254
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
add-int/lit8 v16, v16, -0x1
goto :goto_197
:cond_1ab
if-nez v8, :cond_1b9
if-nez p1, :cond_1b9
move/from16 v0, v22
if-nez v0, :cond_1bb
if-eqz v9, :cond_1b6
goto :goto_1bb
:cond_1b6
move-object/from16 v2, p0
goto :goto_1f7
:cond_1b9
move/from16 v0, v22
.line 262
:cond_1bb
:goto_1bb
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Inconsistent stbl box for track "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-object/from16 v2, p0
iget v3, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->id:I
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v3, ": remainingSynchronizationSamples "
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v3, ", remainingSamplesAtTimestampDelta "
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move/from16 v3, p1
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v3, ", remainingSamplesInChunk "
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v0, ", remainingTimestampDeltaChanges "
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v9}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "AtomParsers"
invoke-static {v1, v0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
:goto_1f7
move-object/from16 v5, v29
goto :goto_22e
:cond_1fa
move-object v2, v0
move/from16 v24, v3
move-object v15, v4
.line 269
iget v0, v13, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;->length:I
new-array v0, v0, [J
.line 270
iget v1, v13, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;->length:I
new-array v1, v1, [I
.line 271
:goto_206
invoke-virtual {v13}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;->moveNext()Z
move-result v3
if-eqz v3, :cond_219
.line 272
iget v3, v13, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;->index:I
iget-wide v4, v13, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;->offset:J
aput-wide v4, v0, v3
.line 273
iget v3, v13, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;->index:I
iget v4, v13, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;->numSamples:I
aput v4, v1, v3
goto :goto_206
.line 275
:cond_219
invoke-interface {v15}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$SampleSizeBox;->readNextSampleSize()I
move-result v3
int-to-long v4, v14
.line 276
invoke-static {v3, v0, v1, v4, v5}, Lcom/google/android/exoplayer2/extractor/mp4/FixedSampleSizeRechunker;->rechunk(I[J[IJ)Lcom/google/android/exoplayer2/extractor/mp4/FixedSampleSizeRechunker$Results;
move-result-object v0
.line 278
iget-object v5, v0, Lcom/google/android/exoplayer2/extractor/mp4/FixedSampleSizeRechunker$Results;->offsets:[J
.line 279
iget-object v11, v0, Lcom/google/android/exoplayer2/extractor/mp4/FixedSampleSizeRechunker$Results;->sizes:[I
.line 280
iget v10, v0, Lcom/google/android/exoplayer2/extractor/mp4/FixedSampleSizeRechunker$Results;->maximumSize:I
.line 281
iget-object v7, v0, Lcom/google/android/exoplayer2/extractor/mp4/FixedSampleSizeRechunker$Results;->timestamps:[J
.line 282
iget-object v6, v0, Lcom/google/android/exoplayer2/extractor/mp4/FixedSampleSizeRechunker$Results;->flags:[I
move-wide/from16 v27, v18
.line 285
:goto_22e
iget-object v0, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListDurations:[J
if-eqz v0, :cond_447
invoke-virtual/range {p2 .. p2}, Lcom/google/android/exoplayer2/extractor/GaplessInfoHolder;->hasGaplessInfo()Z
move-result v0
if-eqz v0, :cond_23a
goto/16 :goto_447
.line 298
:cond_23a
iget-object v0, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListDurations:[J
array-length v0, v0
const/4 v1, 0x1
if-ne v0, v1, :cond_2cf
iget v0, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->type:I
if-ne v0, v1, :cond_2cf
array-length v0, v7
const/4 v1, 0x2
if-lt v0, v1, :cond_2cf
.line 303
iget-object v0, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListMediaTimes:[J
const/4 v1, 0x0
aget-wide v8, v0, v1
.line 304
iget-object v0, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListDurations:[J
aget-wide v12, v0, v1
iget-wide v14, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->timescale:J
iget-wide v3, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->movieTimescale:J
move-wide/from16 v16, v3
invoke-static/range {v12 .. v17}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v3
add-long/2addr v3, v8
.line 307
aget-wide v12, v7, v1
cmp-long v0, v12, v8
if-gtz v0, :cond_2cf
const/4 v0, 0x1
aget-wide v12, v7, v0
cmp-long v1, v8, v12
if-gez v1, :cond_2cf
array-length v1, v7
sub-int/2addr v1, v0
aget-wide v0, v7, v1
cmp-long v12, v0, v3
if-gez v12, :cond_2cf
cmp-long v0, v3, v27
if-gtz v0, :cond_2cf
sub-long v29, v27, v3
const/4 v0, 0x0
.line 310
aget-wide v3, v7, v0
sub-long v31, v8, v3
iget-object v0, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->format:Lcom/google/android/exoplayer2/Format;
iget v0, v0, Lcom/google/android/exoplayer2/Format;->sampleRate:I
int-to-long v0, v0
iget-wide v3, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->timescale:J
move-wide/from16 v33, v0
move-wide/from16 v35, v3
invoke-static/range {v31 .. v36}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v0
.line 312
iget-object v3, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->format:Lcom/google/android/exoplayer2/Format;
iget v3, v3, Lcom/google/android/exoplayer2/Format;->sampleRate:I
int-to-long v3, v3
iget-wide v8, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->timescale:J
move-wide/from16 v31, v3
move-wide/from16 v33, v8
invoke-static/range {v29 .. v34}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v3
cmp-long v8, v0, v18
if-nez v8, :cond_2a2
cmp-long v8, v3, v18
if-eqz v8, :cond_2cf
:cond_2a2
const-wide/32 v8, 0x7fffffff
cmp-long v12, v0, v8
if-gtz v12, :cond_2cf
cmp-long v12, v3, v8
if-gtz v12, :cond_2cf
long-to-int v1, v0
move-object/from16 v0, p2
.line 316
iput v1, v0, Lcom/google/android/exoplayer2/extractor/GaplessInfoHolder;->encoderDelay:I
long-to-int v1, v3
.line 317
iput v1, v0, Lcom/google/android/exoplayer2/extractor/GaplessInfoHolder;->encoderPadding:I
.line 318
iget-wide v0, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->timescale:J
const-wide/32 v2, 0xf4240
invoke-static {v7, v2, v3, v0, v1}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestampsInPlace([JJJ)V
.line 319
new-instance v0, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;
move-object/from16 v25, v0
move-object/from16 v26, v5
move-object/from16 v27, v11
move/from16 v28, v10
move-object/from16 v29, v7
move-object/from16 v30, v6
invoke-direct/range {v25 .. v30}, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;-><init>([J[II[J[I)V
return-object v0
.line 324
:cond_2cf
iget-object v0, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListDurations:[J
array-length v0, v0
const/4 v1, 0x1
if-ne v0, v1, :cond_30f
iget-object v0, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListDurations:[J
const/16 v17, 0x0
aget-wide v3, v0, v17
cmp-long v0, v3, v18
if-nez v0, :cond_30f
const/4 v0, 0x0
.line 328
:goto_2e0
array-length v1, v7
if-ge v0, v1, :cond_2fd
.line 329
aget-wide v3, v7, v0
iget-object v1, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListMediaTimes:[J
aget-wide v8, v1, v17
sub-long v18, v3, v8
const-wide/32 v20, 0xf4240
iget-wide v3, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->timescale:J
move-wide/from16 v22, v3
invoke-static/range {v18 .. v23}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v3
aput-wide v3, v7, v0
add-int/lit8 v0, v0, 0x1
const/16 v17, 0x0
goto :goto_2e0
.line 332
:cond_2fd
new-instance v0, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;
move-object/from16 v25, v0
move-object/from16 v26, v5
move-object/from16 v27, v11
move/from16 v28, v10
move-object/from16 v29, v7
move-object/from16 v30, v6
invoke-direct/range {v25 .. v30}, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;-><init>([J[II[J[I)V
return-object v0
:cond_30f
const/4 v0, 0x0
const/4 v1, 0x0
const/4 v3, 0x0
const/4 v4, 0x0
.line 339
:goto_313
iget-object v8, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListDurations:[J
array-length v8, v8
const-wide/16 v12, -0x1
if-ge v1, v8, :cond_34a
.line 340
iget-object v8, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListMediaTimes:[J
aget-wide v14, v8, v1
cmp-long v8, v14, v12
if-eqz v8, :cond_347
.line 342
iget-object v8, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListDurations:[J
aget-wide v25, v8, v1
iget-wide v8, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->timescale:J
iget-wide v12, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->movieTimescale:J
move-wide/from16 v27, v8
move-wide/from16 v29, v12
invoke-static/range {v25 .. v30}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v8
const/4 v12, 0x1
.line 344
invoke-static {v7, v14, v15, v12, v12}, Lcom/google/android/exoplayer2/util/Util;->binarySearchCeil([JJZZ)I
move-result v13
add-long/2addr v14, v8
const/4 v8, 0x0
.line 345
invoke-static {v7, v14, v15, v12, v8}, Lcom/google/android/exoplayer2/util/Util;->binarySearchCeil([JJZZ)I
move-result v9
sub-int v8, v9, v13
add-int/2addr v3, v8
if-eq v4, v13, :cond_344
const/4 v4, 0x1
goto :goto_345
:cond_344
const/4 v4, 0x0
:goto_345
or-int/2addr v0, v4
move v4, v9
:cond_347
add-int/lit8 v1, v1, 0x1
goto :goto_313
:cond_34a
move/from16 v1, v24
if-eq v3, v1, :cond_350
const/4 v1, 0x1
goto :goto_351
:cond_350
const/4 v1, 0x0
:goto_351
or-int/2addr v0, v1
if-eqz v0, :cond_357
.line 354
new-array v1, v3, [J
goto :goto_358
:cond_357
move-object v1, v5
:goto_358
if-eqz v0, :cond_35d
.line 355
new-array v4, v3, [I
goto :goto_35e
:cond_35d
move-object v4, v11
:goto_35e
if-eqz v0, :cond_361
const/4 v10, 0x0
:cond_361
if-eqz v0, :cond_366
.line 357
new-array v8, v3, [I
goto :goto_367
:cond_366
move-object v8, v6
.line 358
:goto_367
new-array v3, v3, [J
move/from16 v24, v10
const/4 v9, 0x0
const/4 v10, 0x0
.line 361
:goto_36d
iget-object v14, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListDurations:[J
array-length v14, v14
if-ge v9, v14, :cond_415
.line 362
iget-object v14, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListMediaTimes:[J
aget-wide v12, v14, v9
.line 363
iget-object v14, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListDurations:[J
aget-wide v15, v14, v9
const-wide/16 v31, -0x1
cmp-long v14, v12, v31
if-eqz v14, :cond_3fb
move-object v14, v8
move/from16 v33, v9
.line 365
iget-wide v8, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->timescale:J
move-object/from16 v35, v3
move-object/from16 v34, v4
iget-wide v3, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->movieTimescale:J
move-wide/from16 v25, v15
move-wide/from16 v27, v8
move-wide/from16 v29, v3
invoke-static/range {v25 .. v30}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v3
add-long/2addr v3, v12
const/4 v8, 0x1
.line 367
invoke-static {v7, v12, v13, v8, v8}, Lcom/google/android/exoplayer2/util/Util;->binarySearchCeil([JJZZ)I
move-result v9
move-object/from16 p1, v14
const/4 v14, 0x0
.line 368
invoke-static {v7, v3, v4, v8, v14}, Lcom/google/android/exoplayer2/util/Util;->binarySearchCeil([JJZZ)I
move-result v3
if-eqz v0, :cond_3b4
sub-int v4, v3, v9
.line 371
invoke-static {v5, v9, v1, v10, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
move-object/from16 v8, v34
.line 372
invoke-static {v11, v9, v8, v10, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
move-object/from16 v14, p1
.line 373
invoke-static {v6, v9, v14, v10, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
goto :goto_3b8
:cond_3b4
move-object/from16 v14, p1
move-object/from16 v8, v34
:goto_3b8
move/from16 v4, v24
:goto_3ba
if-ge v9, v3, :cond_3f4
const-wide/32 v23, 0xf4240
move-object/from16 p1, v5
move-object/from16 v30, v6
.line 376
iget-wide v5, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->movieTimescale:J
move-wide/from16 v21, v18
move-wide/from16 v25, v5
invoke-static/range {v21 .. v26}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v5
.line 377
aget-wide v21, v7, v9
sub-long v23, v21, v12
const-wide/32 v25, 0xf4240
move-wide/from16 v21, v12
iget-wide v12, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->timescale:J
move-wide/from16 v27, v12
invoke-static/range {v23 .. v28}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v12
add-long/2addr v5, v12
.line 379
aput-wide v5, v35, v10
if-eqz v0, :cond_3e9
.line 380
aget v5, v8, v10
if-le v5, v4, :cond_3e9
.line 381
aget v4, v11, v9
:cond_3e9
add-int/lit8 v10, v10, 0x1
add-int/lit8 v9, v9, 0x1
move-object/from16 v5, p1
move-wide/from16 v12, v21
move-object/from16 v6, v30
goto :goto_3ba
:cond_3f4
move-object/from16 p1, v5
move-object/from16 v30, v6
move/from16 v24, v4
goto :goto_405
:cond_3fb
move-object/from16 v35, v3
move-object/from16 p1, v5
move-object/from16 v30, v6
move-object v14, v8
move/from16 v33, v9
move-object v8, v4
:goto_405
add-long v18, v18, v15
add-int/lit8 v9, v33, 0x1
move-object/from16 v5, p1
move-object v4, v8
move-object v8, v14
move-object/from16 v6, v30
move-wide/from16 v12, v31
move-object/from16 v3, v35
goto/16 :goto_36d
:cond_415
move-object/from16 v35, v3
move-object v14, v8
move-object v8, v4
const/4 v0, 0x0
const/4 v2, 0x0
.line 390
:goto_41b
array-length v3, v14
if-ge v0, v3, :cond_42d
if-nez v2, :cond_42d
.line 391
aget v3, v14, v0
const/4 v4, 0x1
and-int/2addr v3, v4
if-eqz v3, :cond_428
const/4 v3, 0x1
goto :goto_429
:cond_428
const/4 v3, 0x0
:goto_429
or-int/2addr v2, v3
add-int/lit8 v0, v0, 0x1
goto :goto_41b
:cond_42d
if-eqz v2, :cond_43f
.line 397
new-instance v0, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;
move-object/from16 v21, v0
move-object/from16 v22, v1
move-object/from16 v23, v8
move-object/from16 v25, v35
move-object/from16 v26, v14
invoke-direct/range {v21 .. v26}, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;-><init>([J[II[J[I)V
return-object v0
.line 394
:cond_43f
new-instance v0, Lcom/google/android/exoplayer2/ParserException;
const-string v1, "The edited sample sequence does not contain a sync sample."
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v0
:cond_447
:goto_447
move-object/from16 p1, v5
move-object/from16 v30, v6
.line 288
iget-wide v0, v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;->timescale:J
const-wide/32 v2, 0xf4240
invoke-static {v7, v2, v3, v0, v1}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestampsInPlace([JJJ)V
.line 289
new-instance v0, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;
move-object/from16 v25, v0
move-object/from16 v26, p1
move-object/from16 v27, v11
move/from16 v28, v10
move-object/from16 v29, v7
invoke-direct/range {v25 .. v30}, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;-><init>([J[II[J[I)V
return-object v0
.line 116
:cond_463
new-instance v0, Lcom/google/android/exoplayer2/ParserException;
const-string v1, "Track has no sample table size information"
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method private static parseStsd(Lcom/google/android/exoplayer2/util/ParsableByteArray;IILjava/lang/String;Lcom/google/android/exoplayer2/drm/DrmInitData;Z)Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;
.registers 32
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
move-object/from16 v10, p0
const/16 v0, 0xc
.line 586
invoke-virtual {v10, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 587
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v11
.line 588
new-instance v12, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;
invoke-direct {v12, v11}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;-><init>(I)V
const/4 v13, 0x0
const/4 v14, 0x0
:goto_12
if-ge v14, v11, :cond_154
.line 590
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v15
.line 591
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v16
const/4 v0, 0x1
if-lez v16, :cond_21
const/4 v1, 0x1
goto :goto_22
:cond_21
const/4 v1, 0x0
:goto_22
const-string v2, "childAtomSize should be positive"
.line 592
invoke-static {v1, v2}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(ZLjava/lang/Object;)V
.line 593
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 594
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_avc1:I
if-eq v1, v2, :cond_13b
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_avc3:I
if-eq v1, v2, :cond_13b
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_encv:I
if-eq v1, v2, :cond_13b
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_mp4v:I
if-eq v1, v2, :cond_13b
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_hvc1:I
if-eq v1, v2, :cond_13b
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_hev1:I
if-eq v1, v2, :cond_13b
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_s263:I
if-eq v1, v2, :cond_13b
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_vp08:I
if-eq v1, v2, :cond_13b
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_vp09:I
if-ne v1, v2, :cond_51
goto/16 :goto_13b
.line 601
:cond_51
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_mp4a:I
if-eq v1, v2, :cond_126
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_enca:I
if-eq v1, v2, :cond_126
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_ac_3:I
if-eq v1, v2, :cond_126
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_ec_3:I
if-eq v1, v2, :cond_126
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_dtsc:I
if-eq v1, v2, :cond_126
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_dtse:I
if-eq v1, v2, :cond_126
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_dtsh:I
if-eq v1, v2, :cond_126
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_dtsl:I
if-eq v1, v2, :cond_126
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_samr:I
if-eq v1, v2, :cond_126
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_sawb:I
if-eq v1, v2, :cond_126
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_lpcm:I
if-eq v1, v2, :cond_126
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_sowt:I
if-eq v1, v2, :cond_126
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE__mp3:I
if-eq v1, v2, :cond_126
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_alac:I
if-ne v1, v2, :cond_8b
goto/16 :goto_126
.line 610
:cond_8b
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_TTML:I
if-ne v1, v2, :cond_a4
.line 611
invoke-static/range {p1 .. p1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v3
const/4 v5, 0x0
const/4 v6, -0x1
const/4 v7, 0x0
const-string v4, "application/ttml+xml"
move-object/from16 v8, p3
move-object/from16 v9, p4
invoke-static/range {v3 .. v9}, Lcom/google/android/exoplayer2/Format;->createTextSampleFormat(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;Lcom/google/android/exoplayer2/drm/DrmInitData;)Lcom/google/android/exoplayer2/Format;
move-result-object v0
iput-object v0, v12, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
goto/16 :goto_14b
.line 613
:cond_a4
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_tx3g:I
if-ne v1, v2, :cond_bd
.line 614
invoke-static/range {p1 .. p1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v3
const/4 v5, 0x0
const/4 v6, -0x1
const/4 v7, 0x0
const-string v4, "application/x-quicktime-tx3g"
move-object/from16 v8, p3
move-object/from16 v9, p4
invoke-static/range {v3 .. v9}, Lcom/google/android/exoplayer2/Format;->createTextSampleFormat(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;Lcom/google/android/exoplayer2/drm/DrmInitData;)Lcom/google/android/exoplayer2/Format;
move-result-object v0
iput-object v0, v12, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
goto/16 :goto_14b
.line 616
:cond_bd
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_wvtt:I
if-ne v1, v2, :cond_d6
.line 617
invoke-static/range {p1 .. p1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v3
const/4 v5, 0x0
const/4 v6, -0x1
const/4 v7, 0x0
const-string v4, "application/x-mp4-vtt"
move-object/from16 v8, p3
move-object/from16 v9, p4
invoke-static/range {v3 .. v9}, Lcom/google/android/exoplayer2/Format;->createTextSampleFormat(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;Lcom/google/android/exoplayer2/drm/DrmInitData;)Lcom/google/android/exoplayer2/Format;
move-result-object v0
iput-object v0, v12, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
goto/16 :goto_14b
.line 619
:cond_d6
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_stpp:I
if-ne v1, v2, :cond_f4
.line 620
invoke-static/range {p1 .. p1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v17
const/16 v19, 0x0
const/16 v20, -0x1
const/16 v21, 0x0
const-wide/16 v24, 0x0
const-string v18, "application/ttml+xml"
move-object/from16 v22, p3
move-object/from16 v23, p4
invoke-static/range {v17 .. v25}, Lcom/google/android/exoplayer2/Format;->createTextSampleFormat(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;Lcom/google/android/exoplayer2/drm/DrmInitData;J)Lcom/google/android/exoplayer2/Format;
move-result-object v0
iput-object v0, v12, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
goto/16 :goto_14b
.line 623
:cond_f4
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_c608:I
if-ne v1, v2, :cond_10e
.line 625
invoke-static/range {p1 .. p1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v3
const/4 v5, 0x0
const/4 v6, -0x1
const/4 v7, 0x0
const-string v4, "application/x-mp4-cea-608"
move-object/from16 v8, p3
move-object/from16 v9, p4
invoke-static/range {v3 .. v9}, Lcom/google/android/exoplayer2/Format;->createTextSampleFormat(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;Lcom/google/android/exoplayer2/drm/DrmInitData;)Lcom/google/android/exoplayer2/Format;
move-result-object v1
iput-object v1, v12, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
.line 627
iput v0, v12, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->requiredSampleTransformation:I
goto :goto_14b
.line 628
:cond_10e
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_camm:I
if-ne v1, v0, :cond_123
.line 629
invoke-static/range {p1 .. p1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v0
const/4 v1, 0x0
const/4 v2, -0x1
const-string v3, "application/x-camera-motion"
move-object/from16 v9, p4
invoke-static {v0, v3, v1, v2, v9}, Lcom/google/android/exoplayer2/Format;->createSampleFormat(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILcom/google/android/exoplayer2/drm/DrmInitData;)Lcom/google/android/exoplayer2/Format;
move-result-object v0
iput-object v0, v12, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
goto :goto_14b
:cond_123
move-object/from16 v9, p4
goto :goto_14b
:cond_126
:goto_126
move-object/from16 v9, p4
move-object/from16 v0, p0
move v2, v15
move/from16 v3, v16
move/from16 v4, p1
move-object/from16 v5, p3
move/from16 v6, p5
move-object/from16 v7, p4
move-object v8, v12
move v9, v14
.line 608
invoke-static/range {v0 .. v9}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseAudioSampleEntry(Lcom/google/android/exoplayer2/util/ParsableByteArray;IIIILjava/lang/String;ZLcom/google/android/exoplayer2/drm/DrmInitData;Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;I)V
goto :goto_14b
:cond_13b
:goto_13b
move-object/from16 v0, p0
move v2, v15
move/from16 v3, v16
move/from16 v4, p1
move/from16 v5, p2
move-object/from16 v6, p4
move-object v7, v12
move v8, v14
.line 599
invoke-static/range {v0 .. v8}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseVideoSampleEntry(Lcom/google/android/exoplayer2/util/ParsableByteArray;IIIIILcom/google/android/exoplayer2/drm/DrmInitData;Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;I)V
:goto_14b
add-int v15, v15, v16
.line 632
invoke-virtual {v10, v15}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
add-int/lit8 v14, v14, 0x1
goto/16 :goto_12
:cond_154
return-object v12
.end method
.method private static parseTkhd(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;
.registers 12
const/16 v0, 0x8
.line 476
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 477
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 478
invoke-static {v1}, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->parseFullAtomVersion(I)I
move-result v1
const/16 v2, 0x10
if-nez v1, :cond_14
const/16 v3, 0x8
goto :goto_16
:cond_14
const/16 v3, 0x10
.line 480
:goto_16
invoke-virtual {p0, v3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 481
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v3
const/4 v4, 0x4
.line 483
invoke-virtual {p0, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 485
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v5
if-nez v1, :cond_28
const/4 v0, 0x4
:cond_28
const/4 v6, 0x0
const/4 v7, 0x0
:goto_2a
if-ge v7, v0, :cond_3a
.line 488
iget-object v8, p0, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
add-int v9, v5, v7
aget-byte v8, v8, v9
const/4 v9, -0x1
if-eq v8, v9, :cond_37
const/4 v5, 0x0
goto :goto_3b
:cond_37
add-int/lit8 v7, v7, 0x1
goto :goto_2a
:cond_3a
const/4 v5, 0x1
:goto_3b
const-wide v7, -0x7fffffffffffffffL # -4.9E-324
if-eqz v5, :cond_46
.line 495
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
goto :goto_59
:cond_46
if-nez v1, :cond_4d
.line 498
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedInt()J
move-result-wide v0
goto :goto_51
:cond_4d
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedLongToLong()J
move-result-wide v0
:goto_51
const-wide/16 v9, 0x0
cmp-long v5, v0, v9
if-nez v5, :cond_58
goto :goto_59
:cond_58
move-wide v7, v0
.line 506
:goto_59
invoke-virtual {p0, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 507
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v0
.line 508
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 509
invoke-virtual {p0, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 510
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v2
.line 511
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result p0
const/high16 v4, 0x10000
const/high16 v5, -0x10000
if-nez v0, :cond_7e
if-ne v1, v4, :cond_7e
if-ne v2, v5, :cond_7e
if-nez p0, :cond_7e
const/16 v6, 0x5a
goto :goto_93
:cond_7e
if-nez v0, :cond_89
if-ne v1, v5, :cond_89
if-ne v2, v4, :cond_89
if-nez p0, :cond_89
const/16 v6, 0x10e
goto :goto_93
:cond_89
if-ne v0, v5, :cond_93
if-nez v1, :cond_93
if-nez v2, :cond_93
if-ne p0, v5, :cond_93
const/16 v6, 0xb4
.line 526
:cond_93
:goto_93
new-instance p0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;
invoke-direct {p0, v3, v7, v8, v6}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;-><init>(IJI)V
return-object p0
.end method
.method public static parseTrak(Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;JLcom/google/android/exoplayer2/drm/DrmInitData;Z)Lcom/google/android/exoplayer2/extractor/mp4/Track;
.registers 24
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
move-object/from16 v0, p0
.line 68
sget v1, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_mdia:I
invoke-virtual {v0, v1}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getContainerAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;
move-result-object v1
.line 69
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_hdlr:I
invoke-virtual {v1, v2}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v2
iget-object v2, v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-static {v2}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseHdlr(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
move-result v5
const/4 v2, 0x0
const/4 v3, -0x1
if-ne v5, v3, :cond_19
return-object v2
.line 74
:cond_19
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_tkhd:I
invoke-virtual {v0, v3}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v3
iget-object v3, v3, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-static {v3}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseTkhd(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;
move-result-object v3
const-wide v6, -0x7fffffffffffffffL # -4.9E-324
cmp-long v4, p2, v6
if-nez v4, :cond_36
.line 76
# getter for: Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;->duration:J
invoke-static {v3}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;->access$000(Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;)J
move-result-wide v8
move-object/from16 v4, p1
move-wide v10, v8
goto :goto_3a
:cond_36
move-object/from16 v4, p1
move-wide/from16 v10, p2
.line 78
:goto_3a
iget-object v4, v4, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-static {v4}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseMvhd(Lcom/google/android/exoplayer2/util/ParsableByteArray;)J
move-result-wide v8
cmp-long v4, v10, v6
if-nez v4, :cond_45
goto :goto_4d
:cond_45
const-wide/32 v12, 0xf4240
move-wide v14, v8
.line 83
invoke-static/range {v10 .. v15}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v6
:goto_4d
move-wide v10, v6
.line 85
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_minf:I
invoke-virtual {v1, v4}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getContainerAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;
move-result-object v4
sget v6, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_stbl:I
.line 86
invoke-virtual {v4, v6}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getContainerAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;
move-result-object v4
.line 88
sget v6, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_mdhd:I
invoke-virtual {v1, v6}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v1
iget-object v1, v1, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-static {v1}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseMdhd(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Landroid/util/Pair;
move-result-object v1
.line 89
sget v6, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_stsd:I
invoke-virtual {v4, v6}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v4
iget-object v12, v4, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
# getter for: Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;->id:I
invoke-static {v3}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;->access$100(Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;)I
move-result v13
.line 90
# getter for: Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;->rotationDegrees:I
invoke-static {v3}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;->access$200(Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;)I
move-result v14
iget-object v4, v1, Landroid/util/Pair;->second:Ljava/lang/Object;
move-object v15, v4
check-cast v15, Ljava/lang/String;
move-object/from16 v16, p4
move/from16 v17, p5
.line 89
invoke-static/range {v12 .. v17}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseStsd(Lcom/google/android/exoplayer2/util/ParsableByteArray;IILjava/lang/String;Lcom/google/android/exoplayer2/drm/DrmInitData;Z)Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;
move-result-object v4
.line 91
sget v6, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_edts:I
invoke-virtual {v0, v6}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getContainerAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;
move-result-object v0
invoke-static {v0}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseEdts(Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;)Landroid/util/Pair;
move-result-object v0
.line 92
iget-object v6, v4, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
if-nez v6, :cond_92
goto :goto_bf
:cond_92
new-instance v2, Lcom/google/android/exoplayer2/extractor/mp4/Track;
.line 93
# getter for: Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;->id:I
invoke-static {v3}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;->access$100(Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;)I
move-result v6
iget-object v1, v1, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast v1, Ljava/lang/Long;
invoke-virtual {v1}, Ljava/lang/Long;->longValue()J
move-result-wide v12
iget-object v1, v4, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
iget v14, v4, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->requiredSampleTransformation:I
iget-object v15, v4, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->trackEncryptionBoxes:[Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;
iget v7, v4, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->nalUnitLengthFieldLength:I
iget-object v3, v0, Landroid/util/Pair;->first:Ljava/lang/Object;
move-object/from16 v16, v3
check-cast v16, [J
iget-object v0, v0, Landroid/util/Pair;->second:Ljava/lang/Object;
move-object/from16 v17, v0
check-cast v17, [J
move-object v3, v2
move v4, v6
move v0, v7
move-wide v6, v12
move-object v12, v1
move v13, v14
move-object v14, v15
move v15, v0
invoke-direct/range {v3 .. v17}, Lcom/google/android/exoplayer2/extractor/mp4/Track;-><init>(IIJJJLcom/google/android/exoplayer2/Format;I[Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;I[J[J)V
:goto_bf
return-object v2
.end method
.method public static parseUdta(Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;Z)Lcom/google/android/exoplayer2/metadata/Metadata;
.registers 7
const/4 v0, 0x0
if-eqz p1, :cond_4
return-object v0
.line 414
:cond_4
iget-object p0, p0, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
const/16 p1, 0x8
.line 415
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 416
:goto_b
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->bytesLeft()I
move-result v1
if-lt v1, p1, :cond_30
.line 417
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v1
.line 418
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v2
.line 419
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v3
.line 420
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_meta:I
if-ne v3, v4, :cond_2a
.line 421
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
add-int/2addr v1, v2
.line 422
invoke-static {p0, v1}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseMetaAtom(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)Lcom/google/android/exoplayer2/metadata/Metadata;
move-result-object p0
return-object p0
:cond_2a
add-int/lit8 v2, v2, -0x8
.line 424
invoke-virtual {p0, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
goto :goto_b
:cond_30
return-object v0
.end method
.method private static parseVideoSampleEntry(Lcom/google/android/exoplayer2/util/ParsableByteArray;IIIIILcom/google/android/exoplayer2/drm/DrmInitData;Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;I)V
.registers 28
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
move-object/from16 v0, p0
move/from16 v1, p2
move/from16 v2, p3
move-object/from16 v3, p7
add-int/lit8 v4, v1, 0x8
.line 640
invoke-virtual {v0, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
const/16 v4, 0x18
.line 642
invoke-virtual {v0, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 643
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v10
.line 644
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v11
const/16 v4, 0x32
.line 647
invoke-virtual {v0, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 649
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v4
.line 650
sget v5, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_encv:I
move/from16 v6, p1
if-ne v6, v5, :cond_33
move/from16 v5, p8
.line 651
invoke-static {v0, v1, v2, v3, v5}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseSampleEntryEncryptionData(Lcom/google/android/exoplayer2/util/ParsableByteArray;IILcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;I)I
move-result v5
.line 652
invoke-virtual {v0, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
goto :goto_34
:cond_33
move v5, v6
:goto_34
const/4 v6, -0x1
const/4 v7, 0x0
const/high16 v9, 0x3f800000 # 1.0f
move-object v6, v7
move-object v13, v6
move-object/from16 v16, v13
const/4 v7, 0x0
const/high16 v15, 0x3f800000 # 1.0f
const/16 v17, -0x1
:goto_41
sub-int v9, v4, v1
if-ge v9, v2, :cond_12c
.line 661
invoke-virtual {v0, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 662
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v9
.line 663
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v12
if-nez v12, :cond_5b
.line 664
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v14
sub-int/2addr v14, v1
if-ne v14, v2, :cond_5b
goto/16 :goto_12c
:cond_5b
if-lez v12, :cond_5f
const/4 v8, 0x1
goto :goto_60
:cond_5f
const/4 v8, 0x0
:goto_60
const-string v14, "childAtomSize should be positive"
.line 668
invoke-static {v8, v14}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(ZLjava/lang/Object;)V
.line 669
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v8
.line 670
sget v14, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_avcC:I
const/4 v1, 0x2
if-ne v8, v14, :cond_8e
if-nez v6, :cond_72
const/4 v14, 0x1
goto :goto_73
:cond_72
const/4 v14, 0x0
.line 671
:goto_73
invoke-static {v14}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
add-int/lit8 v9, v9, 0x8
.line 673
invoke-virtual {v0, v9}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 674
invoke-static/range {p0 .. p0}, Lcom/google/android/exoplayer2/video/AvcConfig;->parse(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/video/AvcConfig;
move-result-object v1
.line 675
iget-object v13, v1, Lcom/google/android/exoplayer2/video/AvcConfig;->initializationData:Ljava/util/List;
.line 676
iget v6, v1, Lcom/google/android/exoplayer2/video/AvcConfig;->nalUnitLengthFieldLength:I
iput v6, v3, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->nalUnitLengthFieldLength:I
if-nez v7, :cond_89
.line 678
iget v15, v1, Lcom/google/android/exoplayer2/video/AvcConfig;->pixelWidthAspectRatio:F
:cond_89
const-string/jumbo v6, "video/avc"
goto/16 :goto_127
.line 680
:cond_8e
sget v14, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_hvcC:I
if-ne v8, v14, :cond_ae
if-nez v6, :cond_96
const/4 v14, 0x1
goto :goto_97
:cond_96
const/4 v14, 0x0
.line 681
:goto_97
invoke-static {v14}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
add-int/lit8 v9, v9, 0x8
.line 683
invoke-virtual {v0, v9}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 684
invoke-static/range {p0 .. p0}, Lcom/google/android/exoplayer2/video/HevcConfig;->parse(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/video/HevcConfig;
move-result-object v1
.line 685
iget-object v13, v1, Lcom/google/android/exoplayer2/video/HevcConfig;->initializationData:Ljava/util/List;
.line 686
iget v1, v1, Lcom/google/android/exoplayer2/video/HevcConfig;->nalUnitLengthFieldLength:I
iput v1, v3, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->nalUnitLengthFieldLength:I
const-string/jumbo v6, "video/hevc"
goto/16 :goto_127
.line 687
:cond_ae
sget v14, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_vpcC:I
if-ne v8, v14, :cond_c7
if-nez v6, :cond_b6
const/4 v14, 0x1
goto :goto_b7
:cond_b6
const/4 v14, 0x0
.line 688
:goto_b7
invoke-static {v14}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 689
sget v1, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_vp08:I
if-ne v5, v1, :cond_c2
const-string/jumbo v1, "video/x-vnd.on2.vp8"
goto :goto_c5
:cond_c2
const-string/jumbo v1, "video/x-vnd.on2.vp9"
:goto_c5
move-object v6, v1
goto :goto_127
.line 690
:cond_c7
sget v14, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_d263:I
if-ne v8, v14, :cond_d7
if-nez v6, :cond_cf
const/4 v14, 0x1
goto :goto_d0
:cond_cf
const/4 v14, 0x0
.line 691
:goto_d0
invoke-static {v14}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
const-string/jumbo v6, "video/3gpp"
goto :goto_127
.line 693
:cond_d7
sget v14, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_esds:I
if-ne v8, v14, :cond_f2
if-nez v6, :cond_df
const/4 v14, 0x1
goto :goto_e0
:cond_df
const/4 v14, 0x0
.line 694
:goto_e0
invoke-static {v14}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 696
invoke-static {v0, v9}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseEsdsFromParent(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)Landroid/util/Pair;
move-result-object v1
.line 697
iget-object v6, v1, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast v6, Ljava/lang/String;
.line 698
iget-object v1, v1, Landroid/util/Pair;->second:Ljava/lang/Object;
invoke-static {v1}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
move-result-object v13
goto :goto_127
.line 699
:cond_f2
sget v14, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_pasp:I
if-ne v8, v14, :cond_fc
.line 700
invoke-static {v0, v9}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parsePaspFromParent(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)F
move-result v15
const/4 v7, 0x1
goto :goto_127
.line 702
:cond_fc
sget v14, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_sv3d:I
if-ne v8, v14, :cond_105
.line 703
invoke-static {v0, v9, v12}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseProjFromParent(Lcom/google/android/exoplayer2/util/ParsableByteArray;II)[B
move-result-object v16
goto :goto_127
.line 704
:cond_105
sget v9, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_st3d:I
if-ne v8, v9, :cond_127
.line 705
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v8
const/4 v9, 0x3
.line 706
invoke-virtual {v0, v9}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
if-nez v8, :cond_127
.line 708
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v8
if-eqz v8, :cond_125
const/4 v9, 0x1
if-eq v8, v9, :cond_122
if-eq v8, v1, :cond_11f
goto :goto_127
:cond_11f
const/16 v17, 0x2
goto :goto_127
:cond_122
const/16 v17, 0x1
goto :goto_127
:cond_125
const/16 v17, 0x0
:cond_127
:goto_127
add-int/2addr v4, v12
move/from16 v1, p2
goto/16 :goto_41
:cond_12c
:goto_12c
if-nez v6, :cond_12f
return-void
.line 732
:cond_12f
invoke-static/range {p4 .. p4}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v5
const/4 v7, 0x0
const/4 v8, -0x1
const/4 v9, -0x1
const/high16 v12, -0x40800000 # -1.0f
move/from16 v14, p5
move-object/from16 v18, p6
invoke-static/range {v5 .. v18}, Lcom/google/android/exoplayer2/Format;->createVideoSampleFormat(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIIFLjava/util/List;IF[BILcom/google/android/exoplayer2/drm/DrmInitData;)Lcom/google/android/exoplayer2/Format;
move-result-object v0
iput-object v0, v3, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
return-void
.end method