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 MAX_GAPLESS_TRIM_SIZE_SAMPLES:I = 0x3
.field private static final TAG:Ljava/lang/String; = "AtomParsers"
.field private static final TYPE_clcp:I
.field private static final TYPE_mdta: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
.field private static final opusMagic:[B
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 48
const-string/jumbo v0, "vide"
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
.line 49
const-string/jumbo v0, "soun"
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
.line 50
const-string/jumbo v0, "text"
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
.line 51
const-string v0, "sbtl"
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
.line 52
const-string/jumbo v0, "subt"
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
.line 53
const-string v0, "clcp"
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
.line 54
const-string v0, "meta"
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
.line 55
const-string v0, "mdta"
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_mdta:I
.line 64
const-string v0, "OpusHead"
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getUtf8Bytes(Ljava/lang/String;)[B
move-result-object v0
sput-object v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->opusMagic:[B
return-void
.end method
.method private constructor <init>()V
.registers 1
.line 1339
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 1341
return-void
.end method
.method private static canApplyEditWithGaplessInfo([JJJJ)Z
.registers 15
.param p0, "timestamps" # [J
.param p1, "duration" # J
.param p3, "editStartTime" # J
.param p5, "editEndTime" # J
.line 1329
array-length v0, p0
const/4 v1, 0x1
sub-int/2addr v0, v1
.line 1330
.local v0, "lastIndex":I
const/4 v2, 0x3
const/4 v3, 0x0
invoke-static {v2, v3, v0}, Lcom/google/android/exoplayer2/util/Util;->constrainValue(III)I
move-result v4
.line 1331
.local v4, "latestDelayIndex":I
array-length v5, p0
sub-int/2addr v5, v2
.line 1332
invoke-static {v5, v3, v0}, Lcom/google/android/exoplayer2/util/Util;->constrainValue(III)I
move-result v2
.line 1333
.local v2, "earliestPaddingIndex":I
aget-wide v5, p0, v3
cmp-long v7, v5, p3
if-gtz v7, :cond_26
aget-wide v5, p0, v4
cmp-long v7, p3, v5
if-gez v7, :cond_26
aget-wide v5, p0, v2
cmp-long v7, v5, p5
if-gez v7, :cond_26
cmp-long v5, p5, p1
if-gtz v5, :cond_26
goto :goto_27
:cond_26
const/4 v1, 0x0
:goto_27
return v1
.end method
.method private static findEsdsPosition(Lcom/google/android/exoplayer2/util/ParsableByteArray;II)I
.registers 7
.param p0, "parent" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.param p1, "position" # I
.param p2, "size" # I
.line 1137
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v0
.line 1138
.local v0, "childAtomPosition":I
:goto_4
sub-int v1, v0, p1
if-ge v1, p2, :cond_24
.line 1139
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1140
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 1141
.local v1, "childAtomSize":I
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"
invoke-static {v2, v3}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(ZLjava/lang/Object;)V
.line 1142
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v2
.line 1143
.local v2, "childType":I
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_esds:I
if-ne v2, v3, :cond_22
.line 1144
return v0
.line 1146
:cond_22
add-int/2addr v0, v1
.line 1147
.end local v1 # "childAtomSize":I
.end local v2 # "childType":I
goto :goto_4
.line 1148
:cond_24
const/4 v1, -0x1
return v1
.end method
.method private static getTrackTypeForHdlr(I)I
.registers 2
.param p0, "hdlr" # I
.line 681
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_soun:I
if-ne p0, v0, :cond_6
.line 682
const/4 v0, 0x1
return v0
.line 683
:cond_6
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_vide:I
if-ne p0, v0, :cond_c
.line 684
const/4 v0, 0x2
return v0
.line 685
:cond_c
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_text:I
if-eq p0, v0, :cond_25
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_sbtl:I
if-eq p0, v0, :cond_25
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_subt:I
if-eq p0, v0, :cond_25
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_clcp:I
if-ne p0, v0, :cond_1d
goto :goto_25
.line 687
:cond_1d
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_meta:I
if-ne p0, v0, :cond_23
.line 688
const/4 v0, 0x4
return v0
.line 690
:cond_23
const/4 v0, -0x1
return v0
.line 686
:cond_25
:goto_25
const/4 v0, 0x3
return v0
.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 39
.param p0, "parent" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.param p1, "atomType" # I
.param p2, "position" # I
.param p3, "size" # I
.param p4, "trackId" # I
.param p5, "language" # Ljava/lang/String;
.param p6, "isQuickTime" # Z
.param p7, "drmInitData" # Lcom/google/android/exoplayer2/drm/DrmInitData;
.param p8, "out" # Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;
.param p9, "entryIndex" # I
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
.line 981
move-object/from16 v0, p0
move/from16 v1, p2
move/from16 v2, p3
move-object/from16 v15, p5
move-object/from16 v3, p7
move-object/from16 v14, p8
add-int/lit8 v4, v1, 0x8
const/16 v5, 0x8
add-int/2addr v4, v5
invoke-virtual {v0, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 983
const/4 v4, 0x0
.line 984
.local v4, "quickTimeSoundDescriptionVersion":I
const/4 v6, 0x6
if-eqz p6, :cond_21
.line 985
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v4
.line 986
invoke-virtual {v0, v6}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
move v13, v4
goto :goto_25
.line 988
:cond_21
invoke-virtual {v0, v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
move v13, v4
.line 994
.end local v4 # "quickTimeSoundDescriptionVersion":I
.local v13, "quickTimeSoundDescriptionVersion":I
:goto_25
const/4 v12, 0x2
const/16 v4, 0x10
const/4 v11, 0x1
if-eqz v13, :cond_47
if-ne v13, v11, :cond_2e
goto :goto_47
.line 1002
:cond_2e
if-ne v13, v12, :cond_46
.line 1003
invoke-virtual {v0, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 1005
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readDouble()D
move-result-wide v4
invoke-static {v4, v5}, Ljava/lang/Math;->round(D)J
move-result-wide v4
long-to-int v5, v4
.line 1006
.local v5, "sampleRate":I
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v4
.line 1010
.local v4, "channelCount":I
const/16 v6, 0x14
invoke-virtual {v0, v6}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
goto :goto_59
.line 1013
.end local v4 # "channelCount":I
.end local v5 # "sampleRate":I
:cond_46
return-void
.line 995
:cond_47
:goto_47
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v5
.line 996
.local v5, "channelCount":I
invoke-virtual {v0, v6}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 997
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedFixedPoint1616()I
move-result v6
.line 999
.local v6, "sampleRate":I
if-ne v13, v11, :cond_57
.line 1000
invoke-virtual {v0, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 1016
:cond_57
move v4, v5
move v5, v6
.end local v6 # "sampleRate":I
.restart local v4 # "channelCount":I
.local v5, "sampleRate":I
:goto_59
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v6
.line 1017
.local v6, "childPosition":I
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_enca:I
const/16 v16, 0x0
move/from16 v8, p1
if-ne v8, v7, :cond_91
.line 1018
invoke-static {v0, v1, v2}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseSampleEntryEncryptionData(Lcom/google/android/exoplayer2/util/ParsableByteArray;II)Landroid/util/Pair;
move-result-object v7
.line 1020
.local v7, "sampleEntryEncryptionData":Landroid/util/Pair;, "Landroid/util/Pair<Ljava/lang/Integer;Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;>;"
if-eqz v7, :cond_8b
.line 1021
iget-object v9, v7, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast v9, Ljava/lang/Integer;
invoke-virtual {v9}, Ljava/lang/Integer;->intValue()I
move-result v8
.line 1022
.end local p1 # "atomType":I
.local v8, "atomType":I
if-nez v3, :cond_78
move-object/from16 v9, v16
goto :goto_82
:cond_78
iget-object v9, v7, Landroid/util/Pair;->second:Ljava/lang/Object;
check-cast v9, Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;
iget-object v9, v9, Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;->schemeType:Ljava/lang/String;
.line 1023
invoke-virtual {v3, v9}, Lcom/google/android/exoplayer2/drm/DrmInitData;->copyWithSchemeType(Ljava/lang/String;)Lcom/google/android/exoplayer2/drm/DrmInitData;
move-result-object v9
:goto_82
move-object v3, v9
.line 1024
.end local p7 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.local v3, "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
iget-object v9, v14, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->trackEncryptionBoxes:[Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;
iget-object v10, v7, Landroid/util/Pair;->second:Ljava/lang/Object;
check-cast v10, Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;
aput-object v10, v9, p9
.line 1026
:cond_8b
invoke-virtual {v0, v6}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
move-object v9, v3
move v10, v8
goto :goto_93
.line 1017
.end local v3 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.end local v7 # "sampleEntryEncryptionData":Landroid/util/Pair;, "Landroid/util/Pair<Ljava/lang/Integer;Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;>;"
.end local v8 # "atomType":I
.restart local p1 # "atomType":I
.restart local p7 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
:cond_91
move-object v9, v3
move v10, v8
.line 1034
.end local p1 # "atomType":I
.end local p7 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.local v9, "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.local v10, "atomType":I
:goto_93
const/4 v3, 0x0
.line 1035
.local v3, "mimeType":Ljava/lang/String;
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_ac_3:I
if-ne v10, v7, :cond_9c
.line 1036
const-string v3, "audio/ac3"
goto/16 :goto_101
.line 1037
:cond_9c
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_ec_3:I
if-ne v10, v7, :cond_a4
.line 1038
const-string v3, "audio/eac3"
goto/16 :goto_101
.line 1039
:cond_a4
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_dtsc:I
if-ne v10, v7, :cond_ab
.line 1040
const-string v3, "audio/vnd.dts"
goto :goto_101
.line 1041
:cond_ab
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_dtsh:I
if-eq v10, v7, :cond_ff
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_dtsl:I
if-ne v10, v7, :cond_b4
goto :goto_ff
.line 1043
:cond_b4
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_dtse:I
if-ne v10, v7, :cond_bb
.line 1044
const-string v3, "audio/vnd.dts.hd;profile=lbr"
goto :goto_101
.line 1045
:cond_bb
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_samr:I
if-ne v10, v7, :cond_c2
.line 1046
const-string v3, "audio/3gpp"
goto :goto_101
.line 1047
:cond_c2
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_sawb:I
if-ne v10, v7, :cond_c9
.line 1048
const-string v3, "audio/amr-wb"
goto :goto_101
.line 1049
:cond_c9
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_lpcm:I
if-eq v10, v7, :cond_fc
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_sowt:I
if-ne v10, v7, :cond_d2
goto :goto_fc
.line 1051
:cond_d2
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE__mp3:I
if-ne v10, v7, :cond_d9
.line 1052
const-string v3, "audio/mpeg"
goto :goto_101
.line 1053
:cond_d9
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_alac:I
if-ne v10, v7, :cond_e0
.line 1054
const-string v3, "audio/alac"
goto :goto_101
.line 1055
:cond_e0
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_alaw:I
if-ne v10, v7, :cond_e7
.line 1056
const-string v3, "audio/g711-alaw"
goto :goto_101
.line 1057
:cond_e7
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_ulaw:I
if-ne v10, v7, :cond_ee
.line 1058
const-string v3, "audio/g711-mlaw"
goto :goto_101
.line 1059
:cond_ee
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_Opus:I
if-ne v10, v7, :cond_f5
.line 1060
const-string v3, "audio/opus"
goto :goto_101
.line 1061
:cond_f5
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_fLaC:I
if-ne v10, v7, :cond_101
.line 1062
const-string v3, "audio/flac"
goto :goto_101
.line 1050
:cond_fc
:goto_fc
const-string v3, "audio/raw"
goto :goto_101
.line 1042
:cond_ff
:goto_ff
const-string v3, "audio/vnd.dts.hd"
.line 1065
:cond_101
:goto_101
const/4 v7, 0x0
move-object v8, v3
move/from16 v17, v4
move/from16 v18, v5
move-object/from16 v19, v7
move v7, v6
.line 1066
.end local v3 # "mimeType":Ljava/lang/String;
.end local v4 # "channelCount":I
.end local v5 # "sampleRate":I
.end local v6 # "childPosition":I
.local v7, "childPosition":I
.local v8, "mimeType":Ljava/lang/String;
.local v17, "channelCount":I
.local v18, "sampleRate":I
.local v19, "initializationData":[B
:goto_10a
sub-int v3, v7, v1
const/4 v4, -0x1
if-ge v3, v2, :cond_286
.line 1067
invoke-virtual {v0, v7}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1068
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v6
.line 1069
.local v6, "childAtomSize":I
const/4 v3, 0x0
if-lez v6, :cond_11b
const/4 v5, 0x1
goto :goto_11c
:cond_11b
const/4 v5, 0x0
:goto_11c
const-string v11, "childAtomSize should be positive"
invoke-static {v5, v11}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(ZLjava/lang/Object;)V
.line 1070
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v11
.line 1071
.local v11, "childAtomType":I
sget v5, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_esds:I
if-eq v11, v5, :cond_22e
if-eqz p6, :cond_13f
sget v5, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_wave:I
if-ne v11, v5, :cond_13f
move-object/from16 v27, v8
move-object/from16 v21, v9
move/from16 v22, v10
move v5, v11
move/from16 v24, v13
const/16 v20, 0x1
const/16 v23, 0x2
move v13, v7
goto/16 :goto_23c
.line 1088
:cond_13f
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_dac3:I
if-ne v11, v4, :cond_162
.line 1089
add-int/lit8 v3, v7, 0x8
invoke-virtual {v0, v3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1090
invoke-static/range {p4 .. p4}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v3
invoke-static {v0, v3, v15, v9}, 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, v14, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
move-object/from16 v27, v8
move-object/from16 v21, v9
move/from16 v22, v10
move v5, v11
move/from16 v24, v13
const/16 v20, 0x1
const/16 v23, 0x2
move v13, v7
goto/16 :goto_22b
.line 1092
:cond_162
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_dec3:I
if-ne v11, v4, :cond_185
.line 1093
add-int/lit8 v3, v7, 0x8
invoke-virtual {v0, v3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1094
invoke-static/range {p4 .. p4}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v3
invoke-static {v0, v3, v15, v9}, 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, v14, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
move-object/from16 v27, v8
move-object/from16 v21, v9
move/from16 v22, v10
move v5, v11
move/from16 v24, v13
const/16 v20, 0x1
const/16 v23, 0x2
move v13, v7
goto/16 :goto_22b
.line 1096
:cond_185
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_ddts:I
if-ne v11, v4, :cond_1c7
.line 1097
invoke-static/range {p4 .. p4}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v3
const/4 v5, 0x0
const/16 v21, -0x1
const/16 v22, -0x1
const/16 v23, 0x0
const/16 v24, 0x0
move-object v4, v8
move/from16 v25, v6
.end local v6 # "childAtomSize":I
.local v25, "childAtomSize":I
move/from16 v6, v21
move/from16 v26, v7
.end local v7 # "childPosition":I
.local v26, "childPosition":I
move/from16 v7, v22
move-object/from16 v27, v8
.end local v8 # "mimeType":Ljava/lang/String;
.local v27, "mimeType":Ljava/lang/String;
move/from16 v8, v17
move-object/from16 v21, v9
.end local v9 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.local v21, "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
move/from16 v9, v18
move/from16 v22, v10
.end local v10 # "atomType":I
.local v22, "atomType":I
move-object/from16 v10, v23
move/from16 v28, v11
const/16 v20, 0x1
.end local v11 # "childAtomType":I
.local v28, "childAtomType":I
move-object/from16 v11, v21
const/16 v23, 0x2
move/from16 v12, v24
move/from16 v24, v13
.end local v13 # "quickTimeSoundDescriptionVersion":I
.local v24, "quickTimeSoundDescriptionVersion":I
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, v14, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
move/from16 v6, v25
move/from16 v13, v26
move/from16 v5, v28
goto/16 :goto_22b
.line 1100
.end local v21 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.end local v22 # "atomType":I
.end local v24 # "quickTimeSoundDescriptionVersion":I
.end local v25 # "childAtomSize":I
.end local v26 # "childPosition":I
.end local v27 # "mimeType":Ljava/lang/String;
.end local v28 # "childAtomType":I
.restart local v6 # "childAtomSize":I
.restart local v7 # "childPosition":I
.restart local v8 # "mimeType":Ljava/lang/String;
.restart local v9 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.restart local v10 # "atomType":I
.restart local v11 # "childAtomType":I
.restart local v13 # "quickTimeSoundDescriptionVersion":I
:cond_1c7
move/from16 v25, v6
move/from16 v26, v7
move-object/from16 v27, v8
move-object/from16 v21, v9
move/from16 v22, v10
move/from16 v28, v11
move/from16 v24, v13
const/16 v20, 0x1
const/16 v23, 0x2
.end local v6 # "childAtomSize":I
.end local v7 # "childPosition":I
.end local v8 # "mimeType":Ljava/lang/String;
.end local v9 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.end local v10 # "atomType":I
.end local v11 # "childAtomType":I
.end local v13 # "quickTimeSoundDescriptionVersion":I
.restart local v21 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.restart local v22 # "atomType":I
.restart local v24 # "quickTimeSoundDescriptionVersion":I
.restart local v25 # "childAtomSize":I
.restart local v26 # "childPosition":I
.restart local v27 # "mimeType":Ljava/lang/String;
.restart local v28 # "childAtomType":I
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_alac:I
move/from16 v5, v28
.end local v28 # "childAtomType":I
.local v5, "childAtomType":I
if-ne v5, v4, :cond_1f1
.line 1101
move/from16 v6, v25
.end local v25 # "childAtomSize":I
.restart local v6 # "childAtomSize":I
new-array v4, v6, [B
.line 1102
.end local v19 # "initializationData":[B
.local v4, "initializationData":[B
move/from16 v13, v26
.end local v26 # "childPosition":I
.local v13, "childPosition":I
invoke-virtual {v0, v13}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1103
invoke-virtual {v0, v4, v3, v6}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readBytes([BII)V
move-object/from16 v19, v4
move-object/from16 v8, v27
goto/16 :goto_27a
.line 1104
.end local v4 # "initializationData":[B
.end local v6 # "childAtomSize":I
.end local v13 # "childPosition":I
.restart local v19 # "initializationData":[B
.restart local v25 # "childAtomSize":I
.restart local v26 # "childPosition":I
:cond_1f1
move/from16 v6, v25
move/from16 v13, v26
.end local v25 # "childAtomSize":I
.end local v26 # "childPosition":I
.restart local v6 # "childAtomSize":I
.restart local v13 # "childPosition":I
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_dOps:I
if-ne v5, v4, :cond_216
.line 1107
add-int/lit8 v4, v6, -0x8
.line 1108
.local v4, "childAtomBodySize":I
sget-object v7, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->opusMagic:[B
array-length v8, v7
add-int/2addr v8, v4
new-array v8, v8, [B
.line 1109
.end local v19 # "initializationData":[B
.local v8, "initializationData":[B
array-length v9, v7
invoke-static {v7, v3, v8, v3, v9}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1110
add-int/lit8 v7, v13, 0x8
invoke-virtual {v0, v7}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1111
sget-object v3, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->opusMagic:[B
array-length v3, v3
invoke-virtual {v0, v8, v3, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readBytes([BII)V
.line 1112
.end local v4 # "childAtomBodySize":I
move-object/from16 v19, v8
move-object/from16 v8, v27
goto/16 :goto_27a
.end local v8 # "initializationData":[B
.restart local v19 # "initializationData":[B
:cond_216
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_dfLa:I
if-ne v6, v4, :cond_22b
.line 1113
add-int/lit8 v4, v6, -0xc
.line 1114
.restart local v4 # "childAtomBodySize":I
new-array v7, v4, [B
.line 1115
.end local v19 # "initializationData":[B
.local v7, "initializationData":[B
add-int/lit8 v8, v13, 0xc
invoke-virtual {v0, v8}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1116
invoke-virtual {v0, v7, v3, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readBytes([BII)V
move-object/from16 v19, v7
move-object/from16 v8, v27
goto :goto_27a
.line 1118
.end local v4 # "childAtomBodySize":I
.end local v5 # "childAtomType":I
.end local v21 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.end local v22 # "atomType":I
.end local v24 # "quickTimeSoundDescriptionVersion":I
.end local v27 # "mimeType":Ljava/lang/String;
.local v7, "childPosition":I
.local v8, "mimeType":Ljava/lang/String;
.restart local v9 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.restart local v10 # "atomType":I
.restart local v11 # "childAtomType":I
.local v13, "quickTimeSoundDescriptionVersion":I
.restart local v19 # "initializationData":[B
:cond_22b
:goto_22b
move-object/from16 v8, v27
.end local v7 # "childPosition":I
.end local v8 # "mimeType":Ljava/lang/String;
.end local v9 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.end local v10 # "atomType":I
.end local v11 # "childAtomType":I
.restart local v5 # "childAtomType":I
.local v13, "childPosition":I
.restart local v21 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.restart local v22 # "atomType":I
.restart local v24 # "quickTimeSoundDescriptionVersion":I
.restart local v27 # "mimeType":Ljava/lang/String;
goto :goto_27a
.line 1071
.end local v5 # "childAtomType":I
.end local v21 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.end local v22 # "atomType":I
.end local v24 # "quickTimeSoundDescriptionVersion":I
.end local v27 # "mimeType":Ljava/lang/String;
.restart local v7 # "childPosition":I
.restart local v8 # "mimeType":Ljava/lang/String;
.restart local v9 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.restart local v10 # "atomType":I
.restart local v11 # "childAtomType":I
.local v13, "quickTimeSoundDescriptionVersion":I
:cond_22e
move-object/from16 v27, v8
move-object/from16 v21, v9
move/from16 v22, v10
move v5, v11
move/from16 v24, v13
const/16 v20, 0x1
const/16 v23, 0x2
move v13, v7
.line 1072
.end local v7 # "childPosition":I
.end local v8 # "mimeType":Ljava/lang/String;
.end local v9 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.end local v10 # "atomType":I
.end local v11 # "childAtomType":I
.restart local v5 # "childAtomType":I
.local v13, "childPosition":I
.restart local v21 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.restart local v22 # "atomType":I
.restart local v24 # "quickTimeSoundDescriptionVersion":I
.restart local v27 # "mimeType":Ljava/lang/String;
:goto_23c
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_esds:I
if-ne v5, v3, :cond_242
move v7, v13
goto :goto_246
.line 1073
:cond_242
invoke-static {v0, v13, v6}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->findEsdsPosition(Lcom/google/android/exoplayer2/util/ParsableByteArray;II)I
move-result v7
:goto_246
move v3, v7
.line 1074
.local v3, "esdsAtomPosition":I
if-eq v3, v4, :cond_277
.line 1075
nop
.line 1076
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 v4
.line 1077
.local v4, "mimeTypeAndInitializationData":Landroid/util/Pair;, "Landroid/util/Pair<Ljava/lang/String;[B>;"
iget-object v7, v4, Landroid/util/Pair;->first:Ljava/lang/Object;
move-object v8, v7
check-cast v8, Ljava/lang/String;
.line 1078
.end local v27 # "mimeType":Ljava/lang/String;
.restart local v8 # "mimeType":Ljava/lang/String;
iget-object v7, v4, Landroid/util/Pair;->second:Ljava/lang/Object;
move-object/from16 v19, v7
check-cast v19, [B
.line 1079
const-string v7, "audio/mp4a-latm"
invoke-virtual {v7, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v7
if-eqz v7, :cond_279
.line 1082
nop
.line 1083
invoke-static/range {v19 .. v19}, Lcom/google/android/exoplayer2/util/CodecSpecificDataUtil;->parseAacAudioSpecificConfig([B)Landroid/util/Pair;
move-result-object v7
.line 1084
.local v7, "audioSpecificConfig":Landroid/util/Pair;, "Landroid/util/Pair<Ljava/lang/Integer;Ljava/lang/Integer;>;"
iget-object v9, v7, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast v9, Ljava/lang/Integer;
invoke-virtual {v9}, Ljava/lang/Integer;->intValue()I
move-result v18
.line 1085
iget-object v9, v7, Landroid/util/Pair;->second:Ljava/lang/Object;
check-cast v9, Ljava/lang/Integer;
invoke-virtual {v9}, Ljava/lang/Integer;->intValue()I
move-result v17
goto :goto_279
.line 1074
.end local v4 # "mimeTypeAndInitializationData":Landroid/util/Pair;, "Landroid/util/Pair<Ljava/lang/String;[B>;"
.end local v7 # "audioSpecificConfig":Landroid/util/Pair;, "Landroid/util/Pair<Ljava/lang/Integer;Ljava/lang/Integer;>;"
.end local v8 # "mimeType":Ljava/lang/String;
.restart local v27 # "mimeType":Ljava/lang/String;
:cond_277
move-object/from16 v8, v27
.line 1088
.end local v3 # "esdsAtomPosition":I
.end local v27 # "mimeType":Ljava/lang/String;
.restart local v8 # "mimeType":Ljava/lang/String;
:cond_279
:goto_279
nop
.line 1118
:goto_27a
add-int v7, v13, v6
.line 1119
.end local v5 # "childAtomType":I
.end local v6 # "childAtomSize":I
.end local v13 # "childPosition":I
.local v7, "childPosition":I
move-object/from16 v9, v21
move/from16 v10, v22
move/from16 v13, v24
const/4 v11, 0x1
const/4 v12, 0x2
goto/16 :goto_10a
.line 1121
.end local v21 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.end local v22 # "atomType":I
.end local v24 # "quickTimeSoundDescriptionVersion":I
.restart local v9 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.restart local v10 # "atomType":I
.local v13, "quickTimeSoundDescriptionVersion":I
:cond_286
move-object/from16 v27, v8
move-object/from16 v21, v9
move/from16 v22, v10
move/from16 v24, v13
const/16 v23, 0x2
move v13, v7
.end local v7 # "childPosition":I
.end local v8 # "mimeType":Ljava/lang/String;
.end local v9 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.end local v10 # "atomType":I
.local v13, "childPosition":I
.restart local v21 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.restart local v22 # "atomType":I
.restart local v24 # "quickTimeSoundDescriptionVersion":I
.restart local v27 # "mimeType":Ljava/lang/String;
iget-object v3, v14, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
if-nez v3, :cond_2d5
move-object/from16 v12, v27
.end local v27 # "mimeType":Ljava/lang/String;
.local v12, "mimeType":Ljava/lang/String;
if-eqz v12, :cond_2cf
.line 1123
nop
.line 1124
const-string v3, "audio/raw"
invoke-virtual {v3, v12}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_2a4
const/4 v10, 0x2
goto :goto_2a5
:cond_2a4
const/4 v10, -0x1
.line 1125
.local v10, "pcmEncoding":I
:goto_2a5
invoke-static/range {p4 .. p4}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v3
const/4 v5, 0x0
const/4 v6, -0x1
const/4 v7, -0x1
if-nez v19, :cond_2b1
move-object/from16 v11, v16
goto :goto_2b6
.line 1127
:cond_2b1
invoke-static/range {v19 .. v19}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
move-result-object v4
move-object v11, v4
:goto_2b6
const/16 v16, 0x0
.line 1125
move-object v4, v12
move/from16 v8, v17
move/from16 v9, v18
move-object/from16 v20, v12
.end local v12 # "mimeType":Ljava/lang/String;
.local v20, "mimeType":Ljava/lang/String;
move-object/from16 v12, v21
move/from16 v23, v13
.end local v13 # "childPosition":I
.local v23, "childPosition":I
move/from16 v13, v16
move-object v0, v14
move-object/from16 v14, p5
invoke-static/range {v3 .. v14}, 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 v3
iput-object v3, v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
goto :goto_2da
.line 1121
.end local v10 # "pcmEncoding":I
.end local v20 # "mimeType":Ljava/lang/String;
.end local v23 # "childPosition":I
.restart local v12 # "mimeType":Ljava/lang/String;
.restart local v13 # "childPosition":I
:cond_2cf
move-object/from16 v20, v12
move/from16 v23, v13
move-object v0, v14
.end local v12 # "mimeType":Ljava/lang/String;
.end local v13 # "childPosition":I
.restart local v20 # "mimeType":Ljava/lang/String;
.restart local v23 # "childPosition":I
goto :goto_2da
.end local v20 # "mimeType":Ljava/lang/String;
.end local v23 # "childPosition":I
.restart local v13 # "childPosition":I
.restart local v27 # "mimeType":Ljava/lang/String;
:cond_2d5
move/from16 v23, v13
move-object v0, v14
move-object/from16 v20, v27
.line 1130
.end local v13 # "childPosition":I
.end local v27 # "mimeType":Ljava/lang/String;
.restart local v20 # "mimeType":Ljava/lang/String;
.restart local v23 # "childPosition":I
:goto_2da
return-void
.end method
.method static parseCommonEncryptionSinfFromParent(Lcom/google/android/exoplayer2/util/ParsableByteArray;II)Landroid/util/Pair;
.registers 12
.param p0, "parent" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.param p1, "position" # I
.param p2, "size" # I
.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
.line 1222
add-int/lit8 v0, p1, 0x8
.line 1223
.local v0, "childPosition":I
const/4 v1, -0x1
.line 1224
.local v1, "schemeInformationBoxPosition":I
const/4 v2, 0x0
.line 1225
.local v2, "schemeInformationBoxSize":I
const/4 v3, 0x0
.line 1226
.local v3, "schemeType":Ljava/lang/String;
const/4 v4, 0x0
.line 1227
.local v4, "dataFormat":Ljava/lang/Integer;
:goto_6
sub-int v5, v0, p1
if-ge v5, p2, :cond_37
.line 1228
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1229
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v5
.line 1230
.local v5, "childAtomSize":I
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v6
.line 1231
.local v6, "childAtomType":I
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_frma:I
if-ne v6, v7, :cond_22
.line 1232
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v7
invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
goto :goto_35
.line 1233
:cond_22
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_schm:I
if-ne v6, v7, :cond_2f
.line 1234
const/4 v7, 0x4
invoke-virtual {p0, v7}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 1236
invoke-virtual {p0, v7}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readString(I)Ljava/lang/String;
move-result-object v3
goto :goto_35
.line 1237
:cond_2f
sget v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_schi:I
if-ne v6, v7, :cond_35
.line 1238
move v1, v0
.line 1239
move v2, v5
.line 1241
:cond_35
:goto_35
add-int/2addr v0, v5
.line 1242
.end local v5 # "childAtomSize":I
.end local v6 # "childAtomType":I
goto :goto_6
.line 1244
:cond_37
const-string v5, "cenc"
invoke-virtual {v5, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_5a
const-string v5, "cbc1"
invoke-virtual {v5, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_5a
.line 1245
const-string v5, "cens"
invoke-virtual {v5, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_5a
const-string v5, "cbcs"
invoke-virtual {v5, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_58
goto :goto_5a
.line 1254
:cond_58
const/4 v5, 0x0
return-object v5
.line 1246
:cond_5a
:goto_5a
const/4 v5, 0x1
const/4 v6, 0x0
if-eqz v4, :cond_60
const/4 v7, 0x1
goto :goto_61
:cond_60
const/4 v7, 0x0
:goto_61
const-string v8, "frma atom is mandatory"
invoke-static {v7, v8}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(ZLjava/lang/Object;)V
.line 1247
const/4 v7, -0x1
if-eq v1, v7, :cond_6b
const/4 v7, 0x1
goto :goto_6c
:cond_6b
const/4 v7, 0x0
:goto_6c
const-string v8, "schi atom is mandatory"
invoke-static {v7, v8}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(ZLjava/lang/Object;)V
.line 1249
invoke-static {p0, v1, v2, v3}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseSchiFromParent(Lcom/google/android/exoplayer2/util/ParsableByteArray;IILjava/lang/String;)Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;
move-result-object v7
.line 1251
.local v7, "encryptionBox":Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;
if-eqz v7, :cond_78
goto :goto_79
:cond_78
const/4 v5, 0x0
:goto_79
const-string/jumbo v6, "tenc atom is mandatory"
invoke-static {v5, v6}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(ZLjava/lang/Object;)V
.line 1252
invoke-static {v4, v7}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object v5
return-object v5
.end method
.method private static parseEdts(Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;)Landroid/util/Pair;
.registers 12
.param p0, "edtsAtom" # Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;",
")",
"Landroid/util/Pair<",
"[J[J>;"
}
.end annotation
.line 947
if-eqz p0, :cond_5c
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 v0
move-object v1, v0
.local v1, "elst":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
if-nez v0, :cond_c
goto :goto_5c
.line 950
:cond_c
iget-object v0, v1, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 951
.local v0, "elstData":Lcom/google/android/exoplayer2/util/ParsableByteArray;
const/16 v2, 0x8
invoke-virtual {v0, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 952
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v2
.line 953
.local v2, "fullAtom":I
invoke-static {v2}, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->parseFullAtomVersion(I)I
move-result v3
.line 954
.local v3, "version":I
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v4
.line 955
.local v4, "entryCount":I
new-array v5, v4, [J
.line 956
.local v5, "editListDurations":[J
new-array v6, v4, [J
.line 957
.local v6, "editListMediaTimes":[J
const/4 v7, 0x0
.local v7, "i":I
:goto_24
if-ge v7, v4, :cond_57
.line 958
const/4 v8, 0x1
if-ne v3, v8, :cond_2e
.line 959
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedLongToLong()J
move-result-wide v9
goto :goto_32
:cond_2e
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedInt()J
move-result-wide v9
:goto_32
aput-wide v9, v5, v7
.line 960
if-ne v3, v8, :cond_3b
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readLong()J
move-result-wide v9
goto :goto_40
:cond_3b
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v9
int-to-long v9, v9
:goto_40
aput-wide v9, v6, v7
.line 961
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readShort()S
move-result v9
.line 962
.local v9, "mediaRateInteger":I
if-ne v9, v8, :cond_4f
.line 966
const/4 v8, 0x2
invoke-virtual {v0, v8}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 957
.end local v9 # "mediaRateInteger":I
add-int/lit8 v7, v7, 0x1
goto :goto_24
.line 964
.restart local v9 # "mediaRateInteger":I
:cond_4f
new-instance v8, Ljava/lang/IllegalArgumentException;
const-string v10, "Unsupported media rate."
invoke-direct {v8, v10}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v8
.line 968
.end local v7 # "i":I
.end local v9 # "mediaRateInteger":I
:cond_57
invoke-static {v5, v6}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object v7
return-object v7
.line 948
.end local v0 # "elstData":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.end local v1 # "elst":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.end local v2 # "fullAtom":I
.end local v3 # "version":I
.end local v4 # "entryCount":I
.end local v5 # "editListDurations":[J
.end local v6 # "editListMediaTimes":[J
:cond_5c
:goto_5c
const/4 v0, 0x0
invoke-static {v0, v0}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object v0
return-object v0
.end method
.method private static parseEsdsFromParent(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)Landroid/util/Pair;
.registers 8
.param p0, "parent" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.param p1, "position" # I
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/util/ParsableByteArray;",
"I)",
"Landroid/util/Pair<",
"Ljava/lang/String;",
"[B>;"
}
.end annotation
.line 1155
add-int/lit8 v0, p1, 0x8
add-int/lit8 v0, v0, 0x4
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1157
const/4 v0, 0x1
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 1158
invoke-static {p0}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseExpandableClassSize(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
.line 1159
const/4 v1, 0x2
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 1161
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v2
.line 1162
.local v2, "flags":I
and-int/lit16 v3, v2, 0x80
if-eqz v3, :cond_1d
.line 1163
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 1165
:cond_1d
and-int/lit8 v3, v2, 0x40
if-eqz v3, :cond_28
.line 1166
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v3
invoke-virtual {p0, v3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 1168
:cond_28
and-int/lit8 v3, v2, 0x20
if-eqz v3, :cond_2f
.line 1169
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 1173
:cond_2f
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 1174
invoke-static {p0}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseExpandableClassSize(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
.line 1177
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v1
.line 1178
.local v1, "objectTypeIndication":I
invoke-static {v1}, Lcom/google/android/exoplayer2/util/MimeTypes;->getMimeTypeFromMp4ObjectType(I)Ljava/lang/String;
move-result-object v3
.line 1179
.local v3, "mimeType":Ljava/lang/String;
const-string v4, "audio/mpeg"
invoke-virtual {v4, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-nez v4, :cond_6d
.line 1180
const-string v4, "audio/vnd.dts"
invoke-virtual {v4, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-nez v4, :cond_6d
.line 1181
const-string v4, "audio/vnd.dts.hd"
invoke-virtual {v4, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_56
goto :goto_6d
.line 1185
:cond_56
const/16 v4, 0xc
invoke-virtual {p0, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 1188
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 1189
invoke-static {p0}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseExpandableClassSize(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
move-result v0
.line 1190
.local v0, "initializationDataSize":I
new-array v4, v0, [B
.line 1191
.local v4, "initializationData":[B
const/4 v5, 0x0
invoke-virtual {p0, v4, v5, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readBytes([BII)V
.line 1192
invoke-static {v3, v4}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object v5
return-object v5
.line 1182
.end local v0 # "initializationDataSize":I
.end local v4 # "initializationData":[B
:cond_6d
:goto_6d
const/4 v0, 0x0
invoke-static {v3, v0}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object v0
return-object v0
.end method
.method private static parseExpandableClassSize(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
.registers 5
.param p0, "data" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 1317
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v0
.line 1318
.local v0, "currentByte":I
and-int/lit8 v1, v0, 0x7f
.line 1319
.local v1, "size":I
:goto_6
and-int/lit16 v2, v0, 0x80
const/16 v3, 0x80
if-ne v2, v3, :cond_17
.line 1320
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v0
.line 1321
shl-int/lit8 v2, v1, 0x7
and-int/lit8 v3, v0, 0x7f
or-int v1, v2, v3
goto :goto_6
.line 1323
:cond_17
return v1
.end method
.method private static parseHdlr(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
.registers 2
.param p0, "hdlr" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 675
const/16 v0, 0x10
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 676
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v0
return v0
.end method
.method private static parseIlst(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)Lcom/google/android/exoplayer2/metadata/Metadata;
.registers 4
.param p0, "ilst" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.param p1, "limit" # I
.line 584
const/16 v0, 0x8
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 585
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 586
.local v0, "entries":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Lcom/google/android/exoplayer2/metadata/Metadata$Entry;>;"
:goto_a
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v1
if-ge v1, p1, :cond_1a
.line 587
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
.line 588
.local v1, "entry":Lcom/google/android/exoplayer2/metadata/Metadata$Entry;
if-eqz v1, :cond_19
.line 589
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 591
.end local v1 # "entry":Lcom/google/android/exoplayer2/metadata/Metadata$Entry;
:cond_19
goto :goto_a
.line 592
:cond_1a
invoke-virtual {v0}, Ljava/util/ArrayList;->isEmpty()Z
move-result v1
if-eqz v1, :cond_22
const/4 v1, 0x0
goto :goto_27
:cond_22
new-instance v1, Lcom/google/android/exoplayer2/metadata/Metadata;
invoke-direct {v1, v0}, Lcom/google/android/exoplayer2/metadata/Metadata;-><init>(Ljava/util/List;)V
:goto_27
return-object v1
.end method
.method private static parseMdhd(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Landroid/util/Pair;
.registers 8
.param p0, "mdhd" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/util/ParsableByteArray;",
")",
"Landroid/util/Pair<",
"Ljava/lang/Long;",
"Ljava/lang/String;",
">;"
}
.end annotation
.line 702
const/16 v0, 0x8
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 703
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 704
.local v1, "fullAtom":I
invoke-static {v1}, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->parseFullAtomVersion(I)I
move-result v2
.line 705
.local v2, "version":I
if-nez v2, :cond_12
const/16 v3, 0x8
goto :goto_14
:cond_12
const/16 v3, 0x10
:goto_14
invoke-virtual {p0, v3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 706
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedInt()J
move-result-wide v3
.line 707
.local v3, "timescale":J
if-nez v2, :cond_1e
const/4 v0, 0x4
:cond_1e
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 708
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v0
.line 709
.local v0, "languageCode":I
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, ""
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
shr-int/lit8 v6, v0, 0xa
and-int/lit8 v6, v6, 0x1f
add-int/lit8 v6, v6, 0x60
int-to-char v6, v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
shr-int/lit8 v6, v0, 0x5
and-int/lit8 v6, v6, 0x1f
add-int/lit8 v6, v6, 0x60
int-to-char v6, v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
and-int/lit8 v6, v0, 0x1f
add-int/lit8 v6, v6, 0x60
int-to-char v6, v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
.line 714
.local v5, "language":Ljava/lang/String;
invoke-static {v3, v4}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v6
invoke-static {v6, v5}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object v6
return-object v6
.end method
.method public static parseMdtaFromMeta(Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;)Lcom/google/android/exoplayer2/metadata/Metadata;
.registers 16
.param p0, "meta" # Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;
.line 520
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_hdlr: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 v0
.line 521
.local v0, "hdlrAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
sget v1, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_keys:I
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v1
.line 522
.local v1, "keysAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_ilst:I
invoke-virtual {p0, v2}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v2
.line 523
.local v2, "ilstAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
const/4 v3, 0x0
if-eqz v0, :cond_a4
if-eqz v1, :cond_a4
if-eqz v2, :cond_a4
iget-object v4, v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 526
invoke-static {v4}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseHdlr(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
move-result v4
sget v5, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->TYPE_mdta:I
if-eq v4, v5, :cond_25
goto/16 :goto_a4
.line 532
:cond_25
iget-object v4, v1, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 533
.local v4, "keys":Lcom/google/android/exoplayer2/util/ParsableByteArray;
const/16 v5, 0xc
invoke-virtual {v4, v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 534
invoke-virtual {v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v5
.line 535
.local v5, "entryCount":I
new-array v6, v5, [Ljava/lang/String;
.line 536
.local v6, "keyNames":[Ljava/lang/String;
const/4 v7, 0x0
.local v7, "i":I
:goto_33
if-ge v7, v5, :cond_48
.line 537
invoke-virtual {v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v8
.line 538
.local v8, "entrySize":I
const/4 v9, 0x4
invoke-virtual {v4, v9}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 539
add-int/lit8 v9, v8, -0x8
.line 540
.local v9, "keySize":I
invoke-virtual {v4, v9}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readString(I)Ljava/lang/String;
move-result-object v10
aput-object v10, v6, v7
.line 536
.end local v8 # "entrySize":I
.end local v9 # "keySize":I
add-int/lit8 v7, v7, 0x1
goto :goto_33
.line 544
.end local v7 # "i":I
:cond_48
iget-object v7, v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 545
.local v7, "ilst":Lcom/google/android/exoplayer2/util/ParsableByteArray;
const/16 v8, 0x8
invoke-virtual {v7, v8}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 546
new-instance v9, Ljava/util/ArrayList;
invoke-direct {v9}, Ljava/util/ArrayList;-><init>()V
.line 547
.local v9, "entries":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Lcom/google/android/exoplayer2/metadata/Metadata$Entry;>;"
:goto_54
invoke-virtual {v7}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->bytesLeft()I
move-result v10
if-le v10, v8, :cond_97
.line 548
invoke-virtual {v7}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v10
.line 549
.local v10, "atomPosition":I
invoke-virtual {v7}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v11
.line 550
.local v11, "atomSize":I
invoke-virtual {v7}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v12
add-int/lit8 v12, v12, -0x1
.line 551
.local v12, "keyIndex":I
if-ltz v12, :cond_7b
array-length v13, v6
if-ge v12, v13, :cond_7b
.line 552
aget-object v13, v6, v12
.line 553
.local v13, "key":Ljava/lang/String;
add-int v14, v10, v11
.line 554
invoke-static {v7, v14, v13}, Lcom/google/android/exoplayer2/extractor/mp4/MetadataUtil;->parseMdtaMetadataEntryFromIlst(Lcom/google/android/exoplayer2/util/ParsableByteArray;ILjava/lang/String;)Lcom/google/android/exoplayer2/extractor/mp4/MdtaMetadataEntry;
move-result-object v14
.line 555
.local v14, "entry":Lcom/google/android/exoplayer2/metadata/Metadata$Entry;
if-eqz v14, :cond_7a
.line 556
invoke-virtual {v9, v14}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 558
.end local v13 # "key":Ljava/lang/String;
.end local v14 # "entry":Lcom/google/android/exoplayer2/metadata/Metadata$Entry;
:cond_7a
goto :goto_91
.line 559
:cond_7b
new-instance v13, Ljava/lang/StringBuilder;
invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
const-string v14, "Skipped metadata with unknown key index: "
invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v13, v12}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v13
const-string v14, "AtomParsers"
invoke-static {v14, v13}, Lcom/google/android/exoplayer2/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 561
:goto_91
add-int v13, v10, v11
invoke-virtual {v7, v13}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 562
.end local v10 # "atomPosition":I
.end local v11 # "atomSize":I
.end local v12 # "keyIndex":I
goto :goto_54
.line 563
:cond_97
invoke-virtual {v9}, Ljava/util/ArrayList;->isEmpty()Z
move-result v8
if-eqz v8, :cond_9e
goto :goto_a3
:cond_9e
new-instance v3, Lcom/google/android/exoplayer2/metadata/Metadata;
invoke-direct {v3, v9}, Lcom/google/android/exoplayer2/metadata/Metadata;-><init>(Ljava/util/List;)V
:goto_a3
return-object v3
.line 528
.end local v4 # "keys":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.end local v5 # "entryCount":I
.end local v6 # "keyNames":[Ljava/lang/String;
.end local v7 # "ilst":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.end local v9 # "entries":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Lcom/google/android/exoplayer2/metadata/Metadata$Entry;>;"
:cond_a4
:goto_a4
return-object v3
.end method
.method private static parseMvhd(Lcom/google/android/exoplayer2/util/ParsableByteArray;)J
.registers 6
.param p0, "mvhd" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 602
const/16 v0, 0x8
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 603
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 604
.local v1, "fullAtom":I
invoke-static {v1}, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->parseFullAtomVersion(I)I
move-result v2
.line 605
.local v2, "version":I
if-nez v2, :cond_10
goto :goto_12
:cond_10
const/16 v0, 0x10
:goto_12
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 606
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedInt()J
move-result-wide v3
return-wide v3
.end method
.method private static parsePaspFromParent(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)F
.registers 6
.param p0, "parent" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.param p1, "position" # I
.line 972
add-int/lit8 v0, p1, 0x8
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 973
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v0
.line 974
.local v0, "hSpacing":I
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v1
.line 975
.local v1, "vSpacing":I
int-to-float v2, v0
int-to-float v3, v1
div-float/2addr v2, v3
return v2
.end method
.method private static parseProjFromParent(Lcom/google/android/exoplayer2/util/ParsableByteArray;II)[B
.registers 8
.param p0, "parent" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.param p1, "position" # I
.param p2, "size" # I
.line 1300
add-int/lit8 v0, p1, 0x8
.line 1301
.local v0, "childPosition":I
:goto_2
sub-int v1, v0, p1
if-ge v1, p2, :cond_20
.line 1302
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1303
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 1304
.local v1, "childAtomSize":I
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v2
.line 1305
.local v2, "childAtomType":I
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_proj:I
if-ne v2, v3, :cond_1e
.line 1306
iget-object v3, p0, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
add-int v4, v0, v1
invoke-static {v3, v0, v4}, Ljava/util/Arrays;->copyOfRange([BII)[B
move-result-object v3
return-object v3
.line 1308
:cond_1e
add-int/2addr v0, v1
.line 1309
.end local v1 # "childAtomSize":I
.end local v2 # "childAtomType":I
goto :goto_2
.line 1310
:cond_20
const/4 v1, 0x0
return-object v1
.end method
.method private static parseSampleEntryEncryptionData(Lcom/google/android/exoplayer2/util/ParsableByteArray;II)Landroid/util/Pair;
.registers 7
.param p0, "parent" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.param p1, "position" # I
.param p2, "size" # I
.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
.line 1202
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v0
.line 1203
.local v0, "childPosition":I
:goto_4
sub-int v1, v0, p1
if-ge v1, p2, :cond_2a
.line 1204
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1205
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 1206
.local v1, "childAtomSize":I
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"
invoke-static {v2, v3}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(ZLjava/lang/Object;)V
.line 1207
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v2
.line 1208
.local v2, "childAtomType":I
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_sinf:I
if-ne v2, v3, :cond_28
.line 1209
invoke-static {p0, v0, v1}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseCommonEncryptionSinfFromParent(Lcom/google/android/exoplayer2/util/ParsableByteArray;II)Landroid/util/Pair;
move-result-object v3
.line 1211
.local v3, "result":Landroid/util/Pair;, "Landroid/util/Pair<Ljava/lang/Integer;Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;>;"
if-eqz v3, :cond_28
.line 1212
return-object v3
.line 1215
.end local v3 # "result":Landroid/util/Pair;, "Landroid/util/Pair<Ljava/lang/Integer;Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;>;"
:cond_28
add-int/2addr v0, v1
.line 1216
.end local v1 # "childAtomSize":I
.end local v2 # "childAtomType":I
goto :goto_4
.line 1217
:cond_2a
const/4 v1, 0x0
return-object v1
.end method
.method private static parseSchiFromParent(Lcom/google/android/exoplayer2/util/ParsableByteArray;IILjava/lang/String;)Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;
.registers 26
.param p0, "parent" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.param p1, "position" # I
.param p2, "size" # I
.param p3, "schemeType" # Ljava/lang/String;
.line 1260
move-object/from16 v0, p0
add-int/lit8 v1, p1, 0x8
.line 1261
.local v1, "childPosition":I
:goto_4
sub-int v2, v1, p1
move/from16 v3, p2
if-ge v2, v3, :cond_75
.line 1262
invoke-virtual {v0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 1263
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v2
.line 1264
.local v2, "childAtomSize":I
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v4
.line 1265
.local v4, "childAtomType":I
sget v5, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_tenc:I
if-ne v4, v5, :cond_73
.line 1266
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v5
.line 1267
.local v5, "fullAtom":I
invoke-static {v5}, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->parseFullAtomVersion(I)I
move-result v6
.line 1268
.local v6, "version":I
const/4 v7, 0x1
invoke-virtual {v0, v7}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 1269
const/4 v8, 0x0
.line 1270
.local v8, "defaultCryptByteBlock":I
const/4 v9, 0x0
.line 1271
.local v9, "defaultSkipByteBlock":I
if-nez v6, :cond_2d
.line 1272
invoke-virtual {v0, v7}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
goto :goto_37
.line 1274
:cond_2d
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v10
.line 1275
.local v10, "patternByte":I
and-int/lit16 v11, v10, 0xf0
shr-int/lit8 v8, v11, 0x4
.line 1276
and-int/lit8 v9, v10, 0xf
.line 1278
.end local v10 # "patternByte":I
:goto_37
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v10
const/4 v11, 0x0
if-ne v10, v7, :cond_3f
goto :goto_40
:cond_3f
const/4 v7, 0x0
.line 1279
.local v7, "defaultIsProtected":Z
:goto_40
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v10
.line 1280
.local v10, "defaultPerSampleIvSize":I
const/16 v12, 0x10
new-array v15, v12, [B
.line 1281
.local v15, "defaultKeyId":[B
array-length v12, v15
invoke-virtual {v0, v15, v11, v12}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readBytes([BII)V
.line 1282
const/4 v12, 0x0
.line 1283
.local v12, "constantIv":[B
if-eqz v7, :cond_5d
if-nez v10, :cond_5d
.line 1284
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v13
.line 1285
.local v13, "constantIvSize":I
new-array v12, v13, [B
.line 1286
invoke-virtual {v0, v12, v11, v13}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readBytes([BII)V
move-object/from16 v19, v12
goto :goto_5f
.line 1288
.end local v13 # "constantIvSize":I
:cond_5d
move-object/from16 v19, v12
.end local v12 # "constantIv":[B
.local v19, "constantIv":[B
:goto_5f
new-instance v20, Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;
move-object/from16 v11, v20
move v12, v7
move-object/from16 v13, p3
move v14, v10
move-object/from16 v21, v15
.end local v15 # "defaultKeyId":[B
.local v21, "defaultKeyId":[B
move/from16 v16, v8
move/from16 v17, v9
move-object/from16 v18, v19
invoke-direct/range {v11 .. v18}, Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;-><init>(ZLjava/lang/String;I[BII[B)V
return-object v20
.line 1291
.end local v5 # "fullAtom":I
.end local v6 # "version":I
.end local v7 # "defaultIsProtected":Z
.end local v8 # "defaultCryptByteBlock":I
.end local v9 # "defaultSkipByteBlock":I
.end local v10 # "defaultPerSampleIvSize":I
.end local v19 # "constantIv":[B
.end local v21 # "defaultKeyId":[B
:cond_73
add-int/2addr v1, v2
.line 1292
.end local v2 # "childAtomSize":I
.end local v4 # "childAtomType":I
goto :goto_4
.line 1293
:cond_75
const/4 v2, 0x0
return-object v2
.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 75
.param p0, "track" # Lcom/google/android/exoplayer2/extractor/mp4/Track;
.param p1, "stblAtom" # Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;
.param p2, "gaplessInfoHolder" # Lcom/google/android/exoplayer2/extractor/GaplessInfoHolder;
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
.line 130
move-object/from16 v9, p0
move-object/from16 v10, p1
move-object/from16 v11, p2
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_stsz:I
invoke-virtual {v10, v0}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v12
.line 131
.local v12, "stszAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
if-eqz v12, :cond_15
.line 132
new-instance v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StszSampleSizeBox;
invoke-direct {v0, v12}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StszSampleSizeBox;-><init>(Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;)V
move-object v13, v0
.local v0, "sampleSizeBox":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$SampleSizeBox;
goto :goto_23
.line 134
.end local v0 # "sampleSizeBox":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$SampleSizeBox;
:cond_15
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_stz2:I
invoke-virtual {v10, v0}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v0
.line 135
.local v0, "stz2Atom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
if-eqz v0, :cond_5f9
.line 138
new-instance v1, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$Stz2SampleSizeBox;
invoke-direct {v1, v0}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$Stz2SampleSizeBox;-><init>(Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;)V
move-object v13, v1
.line 141
.end local v0 # "stz2Atom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.local v13, "sampleSizeBox":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$SampleSizeBox;
:goto_23
invoke-interface {v13}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$SampleSizeBox;->getSampleCount()I
move-result v14
.line 142
.local v14, "sampleCount":I
const/4 v0, 0x0
if-nez v14, :cond_41
.line 143
new-instance v15, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;
new-array v2, v0, [J
new-array v3, v0, [I
const/4 v4, 0x0
new-array v5, v0, [J
new-array v6, v0, [I
const-wide v7, -0x7fffffffffffffffL # -4.9E-324
move-object v0, v15
move-object/from16 v1, p0
invoke-direct/range {v0 .. v8}, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;-><init>(Lcom/google/android/exoplayer2/extractor/mp4/Track;[J[II[J[IJ)V
return-object v15
.line 154
:cond_41
const/4 v1, 0x0
.line 155
.local v1, "chunkOffsetsAreLongs":Z
sget v2, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_stco:I
invoke-virtual {v10, v2}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v2
.line 156
.local v2, "chunkOffsetsAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
if-nez v2, :cond_54
.line 157
const/4 v1, 0x1
.line 158
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_co64:I
invoke-virtual {v10, v3}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v2
move v15, v1
move-object v7, v2
goto :goto_56
.line 156
:cond_54
move v15, v1
move-object v7, v2
.line 160
.end local v1 # "chunkOffsetsAreLongs":Z
.end local v2 # "chunkOffsetsAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.local v7, "chunkOffsetsAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.local v15, "chunkOffsetsAreLongs":Z
:goto_56
iget-object v8, v7, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 162
.local v8, "chunkOffsets":Lcom/google/android/exoplayer2/util/ParsableByteArray;
sget v1, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_stsc:I
invoke-virtual {v10, v1}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v1
iget-object v6, v1, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 164
.local v6, "stsc":Lcom/google/android/exoplayer2/util/ParsableByteArray;
sget v1, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_stts:I
invoke-virtual {v10, v1}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v1
iget-object v5, v1, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 166
.local v5, "stts":Lcom/google/android/exoplayer2/util/ParsableByteArray;
sget v1, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_stss:I
invoke-virtual {v10, v1}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v4
.line 167
.local v4, "stssAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
const/4 v1, 0x0
if-eqz v4, :cond_74
iget-object v2, v4, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
goto :goto_75
:cond_74
move-object v2, v1
.line 169
.local v2, "stss":Lcom/google/android/exoplayer2/util/ParsableByteArray;
:goto_75
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_ctts:I
invoke-virtual {v10, v3}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v3
.line 170
.local v3, "cttsAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
if-eqz v3, :cond_7f
iget-object v1, v3, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 173
.local v1, "ctts":Lcom/google/android/exoplayer2/util/ParsableByteArray;
:cond_7f
new-instance v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
invoke-direct {v0, v6, v8, v15}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;-><init>(Lcom/google/android/exoplayer2/util/ParsableByteArray;Lcom/google/android/exoplayer2/util/ParsableByteArray;Z)V
.line 176
.local v0, "chunkIterator":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
move-object/from16 v17, v3
.end local v3 # "cttsAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.local v17, "cttsAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
const/16 v3, 0xc
invoke-virtual {v5, v3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 177
invoke-virtual {v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v18
const/4 v3, 0x1
add-int/lit8 v18, v18, -0x1
.line 178
.local v18, "remainingTimestampDeltaChanges":I
invoke-virtual {v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v20
.line 179
.local v20, "remainingSamplesAtTimestampDelta":I
invoke-virtual {v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v3
.line 182
.local v3, "timestampDeltaInTimeUnits":I
const/16 v22, 0x0
.line 183
.local v22, "remainingSamplesAtTimestampOffset":I
const/16 v23, 0x0
.line 184
.local v23, "remainingTimestampOffsetChanges":I
const/16 v24, 0x0
.line 185
.local v24, "timestampOffset":I
if-eqz v1, :cond_ae
.line 186
move-object/from16 v25, v4
const/16 v4, 0xc
.end local v4 # "stssAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.local v25, "stssAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
invoke-virtual {v1, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 187
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v23
goto :goto_b0
.line 185
.end local v25 # "stssAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.restart local v4 # "stssAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
:cond_ae
move-object/from16 v25, v4
.line 190
.end local v4 # "stssAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.restart local v25 # "stssAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
:goto_b0
const/4 v4, -0x1
.line 191
.local v4, "nextSynchronizationSampleIndex":I
const/16 v26, 0x0
.line 192
.local v26, "remainingSynchronizationSamples":I
if-eqz v2, :cond_d3
.line 193
move/from16 v27, v4
const/16 v4, 0xc
.end local v4 # "nextSynchronizationSampleIndex":I
.local v27, "nextSynchronizationSampleIndex":I
invoke-virtual {v2, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 194
invoke-virtual {v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v26
.line 195
if-lez v26, :cond_cd
.line 196
invoke-virtual {v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v4
const/16 v19, 0x1
add-int/lit8 v4, v4, -0x1
move-object/from16 v19, v2
.end local v27 # "nextSynchronizationSampleIndex":I
.restart local v4 # "nextSynchronizationSampleIndex":I
goto :goto_d7
.line 199
.end local v4 # "nextSynchronizationSampleIndex":I
.restart local v27 # "nextSynchronizationSampleIndex":I
:cond_cd
const/4 v2, 0x0
move-object/from16 v19, v2
move/from16 v4, v27
goto :goto_d7
.line 192
.end local v27 # "nextSynchronizationSampleIndex":I
.restart local v4 # "nextSynchronizationSampleIndex":I
:cond_d3
move/from16 v27, v4
.end local v4 # "nextSynchronizationSampleIndex":I
.restart local v27 # "nextSynchronizationSampleIndex":I
move-object/from16 v19, v2
.line 204
.end local v2 # "stss":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.end local v27 # "nextSynchronizationSampleIndex":I
.restart local v4 # "nextSynchronizationSampleIndex":I
.local v19, "stss":Lcom/google/android/exoplayer2/util/ParsableByteArray;
:goto_d7
nop
.line 205
invoke-interface {v13}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$SampleSizeBox;->isFixedSampleSize()Z
move-result v2
if-eqz v2, :cond_f4
iget-object v2, v9, Lcom/google/android/exoplayer2/extractor/mp4/Track;->format:Lcom/google/android/exoplayer2/Format;
iget-object v2, v2, Lcom/google/android/exoplayer2/Format;->sampleMimeType:Ljava/lang/String;
.line 206
move/from16 v27, v4
.end local v4 # "nextSynchronizationSampleIndex":I
.restart local v27 # "nextSynchronizationSampleIndex":I
const-string v4, "audio/raw"
invoke-virtual {v4, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_f6
if-nez v18, :cond_f6
if-nez v23, :cond_f6
if-nez v26, :cond_f6
const/4 v2, 0x1
goto :goto_f7
.line 205
.end local v27 # "nextSynchronizationSampleIndex":I
.restart local v4 # "nextSynchronizationSampleIndex":I
:cond_f4
move/from16 v27, v4
.line 206
.end local v4 # "nextSynchronizationSampleIndex":I
.restart local v27 # "nextSynchronizationSampleIndex":I
:cond_f6
const/4 v2, 0x0
:goto_f7
move/from16 v28, v2
.line 213
.local v28, "isFixedSampleSizeRawAudio":Z
const/4 v2, 0x0
.line 216
.local v2, "maximumSize":I
const-wide/16 v29, 0x0
.line 219
.local v29, "timestampTimeUnits":J
if-nez v28, :cond_28e
.line 220
new-array v4, v14, [J
.line 221
.local v4, "offsets":[J
move/from16 v31, v2
.end local v2 # "maximumSize":I
.local v31, "maximumSize":I
new-array v2, v14, [I
.line 222
.local v2, "sizes":[I
move-object/from16 v32, v6
.end local v6 # "stsc":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.local v32, "stsc":Lcom/google/android/exoplayer2/util/ParsableByteArray;
new-array v6, v14, [J
.line 223
.local v6, "timestamps":[J
move-object/from16 v33, v7
.end local v7 # "chunkOffsetsAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.local v33, "chunkOffsetsAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
new-array v7, v14, [I
.line 224
.local v7, "flags":[I
const-wide/16 v34, 0x0
.line 225
.local v34, "offset":J
const/16 v36, 0x0
.line 227
.local v36, "remainingSamplesInChunk":I
const/16 v37, 0x0
move/from16 v11, v26
move/from16 v10, v27
move-wide/from16 v26, v34
move/from16 v9, v37
move-object/from16 v34, v8
move-object/from16 v35, v12
move/from16 v12, v18
move/from16 v18, v22
move/from16 v22, v24
move v8, v3
move/from16 v3, v31
move/from16 v71, v36
move/from16 v36, v15
move/from16 v15, v20
move/from16 v20, v71
.end local v24 # "timestampOffset":I
.end local v27 # "nextSynchronizationSampleIndex":I
.end local v31 # "maximumSize":I
.local v3, "maximumSize":I
.local v8, "timestampDeltaInTimeUnits":I
.local v9, "i":I
.local v10, "nextSynchronizationSampleIndex":I
.local v11, "remainingSynchronizationSamples":I
.local v12, "remainingTimestampDeltaChanges":I
.local v15, "remainingSamplesAtTimestampDelta":I
.local v18, "remainingSamplesAtTimestampOffset":I
.local v20, "remainingSamplesInChunk":I
.local v22, "timestampOffset":I
.local v26, "offset":J
.local v34, "chunkOffsets":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.local v35, "stszAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.local v36, "chunkOffsetsAreLongs":Z
:goto_12f
move-object/from16 v37, v5
.end local v5 # "stts":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.local v37, "stts":Lcom/google/android/exoplayer2/util/ParsableByteArray;
const-string v5, "AtomParsers"
if-ge v9, v14, :cond_1e3
.line 229
const/16 v24, 0x1
.line 230
.local v24, "chunkDataComplete":Z
:goto_137
if-nez v20, :cond_152
invoke-virtual {v0}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;->moveNext()Z
move-result v31
move/from16 v24, v31
if-eqz v31, :cond_152
.line 231
move/from16 v38, v14
move/from16 v31, v15
.end local v14 # "sampleCount":I
.end local v15 # "remainingSamplesAtTimestampDelta":I
.local v31, "remainingSamplesAtTimestampDelta":I
.local v38, "sampleCount":I
iget-wide v14, v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;->offset:J
.line 232
.end local v26 # "offset":J
.local v14, "offset":J
move-wide/from16 v26, v14
.end local v14 # "offset":J
.restart local v26 # "offset":J
iget v14, v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;->numSamples:I
move/from16 v20, v14
move/from16 v15, v31
move/from16 v14, v38
.end local v20 # "remainingSamplesInChunk":I
.local v14, "remainingSamplesInChunk":I
goto :goto_137
.line 230
.end local v31 # "remainingSamplesAtTimestampDelta":I
.end local v38 # "sampleCount":I
.local v14, "sampleCount":I
.restart local v15 # "remainingSamplesAtTimestampDelta":I
.restart local v20 # "remainingSamplesInChunk":I
:cond_152
move/from16 v38, v14
move/from16 v31, v15
.line 234
.end local v14 # "sampleCount":I
.end local v15 # "remainingSamplesAtTimestampDelta":I
.restart local v31 # "remainingSamplesAtTimestampDelta":I
.restart local v38 # "sampleCount":I
if-nez v24, :cond_172
.line 235
const-string v14, "Unexpected end of chunk data"
invoke-static {v5, v14}, Lcom/google/android/exoplayer2/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 236
move v14, v9
.line 237
.end local v38 # "sampleCount":I
.restart local v14 # "sampleCount":I
invoke-static {v4, v14}, Ljava/util/Arrays;->copyOf([JI)[J
move-result-object v4
.line 238
invoke-static {v2, v14}, Ljava/util/Arrays;->copyOf([II)[I
move-result-object v2
.line 239
invoke-static {v6, v14}, Ljava/util/Arrays;->copyOf([JI)[J
move-result-object v6
.line 240
invoke-static {v7, v14}, Ljava/util/Arrays;->copyOf([II)[I
move-result-object v7
.line 241
move/from16 v9, v20
goto/16 :goto_1eb
.line 245
.end local v14 # "sampleCount":I
.restart local v38 # "sampleCount":I
:cond_172
if-eqz v1, :cond_18a
.line 246
:goto_174
if-nez v18, :cond_183
if-lez v23, :cond_183
.line 247
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v18
.line 253
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v22
.line 254
add-int/lit8 v23, v23, -0x1
goto :goto_174
.line 256
:cond_183
add-int/lit8 v5, v18, -0x1
move/from16 v18, v5
move/from16 v5, v22
.end local v18 # "remainingSamplesAtTimestampOffset":I
.local v5, "remainingSamplesAtTimestampOffset":I
goto :goto_18c
.line 245
.end local v5 # "remainingSamplesAtTimestampOffset":I
.restart local v18 # "remainingSamplesAtTimestampOffset":I
:cond_18a
move/from16 v5, v22
.line 259
.end local v22 # "timestampOffset":I
.local v5, "timestampOffset":I
:goto_18c
aput-wide v26, v4, v9
.line 260
invoke-interface {v13}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$SampleSizeBox;->readNextSampleSize()I
move-result v14
aput v14, v2, v9
.line 261
aget v14, v2, v9
if-le v14, v3, :cond_19a
.line 262
aget v3, v2, v9
.line 264
:cond_19a
int-to-long v14, v5
add-long v14, v29, v14
aput-wide v14, v6, v9
.line 267
if-nez v19, :cond_1a3
const/4 v14, 0x1
goto :goto_1a4
:cond_1a3
const/4 v14, 0x0
:goto_1a4
aput v14, v7, v9
.line 268
if-ne v9, v10, :cond_1b5
.line 269
const/4 v14, 0x1
aput v14, v7, v9
.line 270
add-int/lit8 v11, v11, -0x1
.line 271
if-lez v11, :cond_1b5
.line 272
invoke-virtual/range {v19 .. v19}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v15
add-int/lit8 v10, v15, -0x1
.line 277
:cond_1b5
int-to-long v14, v8
add-long v29, v29, v14
.line 278
add-int/lit8 v15, v31, -0x1
.line 279
.end local v31 # "remainingSamplesAtTimestampDelta":I
.restart local v15 # "remainingSamplesAtTimestampDelta":I
if-nez v15, :cond_1c9
if-lez v12, :cond_1c9
.line 280
invoke-virtual/range {v37 .. v37}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v14
.line 287
.end local v15 # "remainingSamplesAtTimestampDelta":I
.local v14, "remainingSamplesAtTimestampDelta":I
invoke-virtual/range {v37 .. v37}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v8
.line 288
add-int/lit8 v12, v12, -0x1
move v15, v14
.line 291
.end local v14 # "remainingSamplesAtTimestampDelta":I
.restart local v15 # "remainingSamplesAtTimestampDelta":I
:cond_1c9
aget v14, v2, v9
move-object/from16 v39, v2
move/from16 v22, v3
.end local v2 # "sizes":[I
.end local v3 # "maximumSize":I
.local v22, "maximumSize":I
.local v39, "sizes":[I
int-to-long v2, v14
add-long v26, v26, v2
.line 292
nop
.end local v24 # "chunkDataComplete":Z
add-int/lit8 v20, v20, -0x1
.line 227
add-int/lit8 v9, v9, 0x1
move/from16 v3, v22
move/from16 v14, v38
move-object/from16 v2, v39
move/from16 v22, v5
move-object/from16 v5, v37
goto/16 :goto_12f
.end local v5 # "timestampOffset":I
.end local v38 # "sampleCount":I
.end local v39 # "sizes":[I
.restart local v2 # "sizes":[I
.restart local v3 # "maximumSize":I
.local v14, "sampleCount":I
.local v22, "timestampOffset":I
:cond_1e3
move-object/from16 v39, v2
move/from16 v38, v14
move/from16 v31, v15
.end local v2 # "sizes":[I
.end local v14 # "sampleCount":I
.end local v15 # "remainingSamplesAtTimestampDelta":I
.restart local v31 # "remainingSamplesAtTimestampDelta":I
.restart local v38 # "sampleCount":I
.restart local v39 # "sizes":[I
move/from16 v9, v20
.line 294
.end local v20 # "remainingSamplesInChunk":I
.end local v38 # "sampleCount":I
.end local v39 # "sizes":[I
.restart local v2 # "sizes":[I
.local v9, "remainingSamplesInChunk":I
.restart local v14 # "sampleCount":I
:goto_1eb
move/from16 v20, v3
move/from16 v15, v22
move-object/from16 v22, v2
.end local v2 # "sizes":[I
.end local v3 # "maximumSize":I
.local v15, "timestampOffset":I
.local v20, "maximumSize":I
.local v22, "sizes":[I
int-to-long v2, v15
add-long v2, v29, v2
.line 298
.local v2, "duration":J
const/16 v24, 0x1
.line 299
.local v24, "isCttsValid":Z
:goto_1f6
if-lez v23, :cond_207
.line 300
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedIntToInt()I
move-result v38
if-eqz v38, :cond_201
.line 301
const/16 v24, 0x0
.line 302
goto :goto_207
.line 304
:cond_201
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
.line 305
add-int/lit8 v23, v23, -0x1
goto :goto_1f6
.line 307
:cond_207
:goto_207
if-nez v11, :cond_221
if-nez v31, :cond_221
if-nez v9, :cond_221
if-nez v12, :cond_221
if-nez v18, :cond_221
if-nez v24, :cond_214
goto :goto_221
:cond_214
move-object/from16 v39, v1
move-wide/from16 v40, v2
move/from16 v38, v18
move/from16 v3, v31
move/from16 v31, v15
move-object/from16 v15, p0
goto :goto_27a
.line 313
:cond_221
:goto_221
move-object/from16 v39, v1
.end local v1 # "ctts":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.local v39, "ctts":Lcom/google/android/exoplayer2/util/ParsableByteArray;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
move-wide/from16 v40, v2
.end local v2 # "duration":J
.local v40, "duration":J
const-string v2, "Inconsistent stbl box for track "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move v2, v15
move-object/from16 v15, p0
.end local v15 # "timestampOffset":I
.local v2, "timestampOffset":I
iget v3, v15, 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, v11}, 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, v31
.end local v31 # "remainingSamplesAtTimestampDelta":I
.local v3, "remainingSamplesAtTimestampDelta":I
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move/from16 v31, v2
.end local v2 # "timestampOffset":I
.local v31, "timestampOffset":I
const-string v2, ", remainingSamplesInChunk "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v9}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, ", remainingTimestampDeltaChanges "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v12}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, ", remainingSamplesAtTimestampOffset "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move/from16 v2, v18
.end local v18 # "remainingSamplesAtTimestampOffset":I
.local v2, "remainingSamplesAtTimestampOffset":I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
if-nez v24, :cond_26a
const-string v18, ", ctts invalid"
goto :goto_26c
:cond_26a
const-string v18, ""
:goto_26c
move/from16 v38, v2
move-object/from16 v2, v18
.end local v2 # "remainingSamplesAtTimestampOffset":I
.local v38, "remainingSamplesAtTimestampOffset":I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v5, v1}, Lcom/google/android/exoplayer2/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 329
.end local v9 # "remainingSamplesInChunk":I
.end local v24 # "isCttsValid":Z
.end local v26 # "offset":J
:goto_27a
move/from16 v27, v10
move/from16 v26, v11
move/from16 v18, v12
move-object/from16 v9, v22
move/from16 v24, v31
move-wide/from16 v11, v40
move/from16 v22, v3
move v10, v8
move-object v8, v7
move-object v7, v6
move v6, v14
move-object v14, v4
goto :goto_2e9
.line 330
.end local v4 # "offsets":[J
.end local v10 # "nextSynchronizationSampleIndex":I
.end local v11 # "remainingSynchronizationSamples":I
.end local v31 # "timestampOffset":I
.end local v32 # "stsc":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.end local v33 # "chunkOffsetsAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.end local v34 # "chunkOffsets":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.end local v35 # "stszAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.end local v36 # "chunkOffsetsAreLongs":Z
.end local v37 # "stts":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.end local v38 # "remainingSamplesAtTimestampOffset":I
.end local v39 # "ctts":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.end local v40 # "duration":J
.restart local v1 # "ctts":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.local v2, "maximumSize":I
.local v3, "timestampDeltaInTimeUnits":I
.local v5, "stts":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.local v6, "stsc":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.local v7, "chunkOffsetsAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.local v8, "chunkOffsets":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.local v12, "stszAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.local v15, "chunkOffsetsAreLongs":Z
.local v18, "remainingTimestampDeltaChanges":I
.local v20, "remainingSamplesAtTimestampDelta":I
.local v22, "remainingSamplesAtTimestampOffset":I
.local v24, "timestampOffset":I
.local v26, "remainingSynchronizationSamples":I
.restart local v27 # "nextSynchronizationSampleIndex":I
:cond_28e
move-object/from16 v39, v1
move/from16 v31, v2
move-object/from16 v37, v5
move-object/from16 v32, v6
move-object/from16 v33, v7
move-object/from16 v34, v8
move-object/from16 v35, v12
move/from16 v38, v14
move/from16 v36, v15
move-object v15, v9
.end local v1 # "ctts":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.end local v2 # "maximumSize":I
.end local v5 # "stts":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.end local v6 # "stsc":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.end local v7 # "chunkOffsetsAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.end local v8 # "chunkOffsets":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.end local v12 # "stszAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.end local v14 # "sampleCount":I
.end local v15 # "chunkOffsetsAreLongs":Z
.local v31, "maximumSize":I
.restart local v32 # "stsc":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.restart local v33 # "chunkOffsetsAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.restart local v34 # "chunkOffsets":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.restart local v35 # "stszAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.restart local v36 # "chunkOffsetsAreLongs":Z
.restart local v37 # "stts":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.local v38, "sampleCount":I
.restart local v39 # "ctts":Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget v1, v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;->length:I
new-array v1, v1, [J
.line 331
.local v1, "chunkOffsetsBytes":[J
iget v2, v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;->length:I
new-array v2, v2, [I
.line 332
.local v2, "chunkSampleCounts":[I
:goto_2a9
invoke-virtual {v0}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;->moveNext()Z
move-result v4
if-eqz v4, :cond_2bc
.line 333
iget v4, v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;->index:I
iget-wide v5, v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;->offset:J
aput-wide v5, v1, v4
.line 334
iget v4, v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;->index:I
iget v5, v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;->numSamples:I
aput v5, v2, v4
goto :goto_2a9
.line 336
:cond_2bc
iget-object v4, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->format:Lcom/google/android/exoplayer2/Format;
iget v4, v4, Lcom/google/android/exoplayer2/Format;->pcmEncoding:I
iget-object v5, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->format:Lcom/google/android/exoplayer2/Format;
iget v5, v5, Lcom/google/android/exoplayer2/Format;->channelCount:I
.line 337
invoke-static {v4, v5}, Lcom/google/android/exoplayer2/util/Util;->getPcmFrameSize(II)I
move-result v4
.line 338
.local v4, "fixedSampleSize":I
int-to-long v5, v3
invoke-static {v4, v1, v2, v5, v6}, Lcom/google/android/exoplayer2/extractor/mp4/FixedSampleSizeRechunker;->rechunk(I[J[IJ)Lcom/google/android/exoplayer2/extractor/mp4/FixedSampleSizeRechunker$Results;
move-result-object v5
.line 340
.local v5, "rechunkedResults":Lcom/google/android/exoplayer2/extractor/mp4/FixedSampleSizeRechunker$Results;
iget-object v6, v5, Lcom/google/android/exoplayer2/extractor/mp4/FixedSampleSizeRechunker$Results;->offsets:[J
.line 341
.local v6, "offsets":[J
iget-object v7, v5, Lcom/google/android/exoplayer2/extractor/mp4/FixedSampleSizeRechunker$Results;->sizes:[I
.line 342
.local v7, "sizes":[I
iget v8, v5, Lcom/google/android/exoplayer2/extractor/mp4/FixedSampleSizeRechunker$Results;->maximumSize:I
.line 343
.end local v31 # "maximumSize":I
.local v8, "maximumSize":I
iget-object v9, v5, Lcom/google/android/exoplayer2/extractor/mp4/FixedSampleSizeRechunker$Results;->timestamps:[J
.line 344
.local v9, "timestamps":[J
iget-object v10, v5, Lcom/google/android/exoplayer2/extractor/mp4/FixedSampleSizeRechunker$Results;->flags:[I
.line 345
.local v10, "flags":[I
iget-wide v11, v5, Lcom/google/android/exoplayer2/extractor/mp4/FixedSampleSizeRechunker$Results;->duration:J
move-object v14, v6
move/from16 v6, v38
move/from16 v38, v22
move/from16 v22, v20
move/from16 v20, v8
move-object v8, v10
move v10, v3
move-object/from16 v71, v9
move-object v9, v7
move-object/from16 v7, v71
.line 347
.end local v1 # "chunkOffsetsBytes":[J
.end local v2 # "chunkSampleCounts":[I
.end local v3 # "timestampDeltaInTimeUnits":I
.end local v4 # "fixedSampleSize":I
.end local v5 # "rechunkedResults":Lcom/google/android/exoplayer2/extractor/mp4/FixedSampleSizeRechunker$Results;
.local v6, "sampleCount":I
.local v7, "timestamps":[J
.local v8, "flags":[I
.local v9, "sizes":[I
.local v10, "timestampDeltaInTimeUnits":I
.local v11, "duration":J
.local v14, "offsets":[J
.local v20, "maximumSize":I
.local v22, "remainingSamplesAtTimestampDelta":I
.local v38, "remainingSamplesAtTimestampOffset":I
:goto_2e9
const-wide/32 v42, 0xf4240
iget-wide v1, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->timescale:J
move-wide/from16 v40, v11
move-wide/from16 v44, v1
invoke-static/range {v40 .. v45}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v47
.line 349
.local v47, "durationUs":J
iget-object v1, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListDurations:[J
if-eqz v1, :cond_5d0
invoke-virtual/range {p2 .. p2}, Lcom/google/android/exoplayer2/extractor/GaplessInfoHolder;->hasGaplessInfo()Z
move-result v1
if-eqz v1, :cond_311
move-object/from16 v31, v0
move/from16 v58, v6
move/from16 v46, v10
move-wide/from16 v59, v11
move-object/from16 v40, v13
move-object/from16 v41, v14
move-object v12, v7
move-object v11, v8
move-object v14, v9
goto/16 :goto_5df
.line 364
:cond_311
iget-object v1, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListDurations:[J
array-length v1, v1
const/4 v2, 0x1
if-ne v1, v2, :cond_3e0
iget v1, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->type:I
if-ne v1, v2, :cond_3e0
array-length v1, v7
const/4 v2, 0x2
if-lt v1, v2, :cond_3e0
.line 367
iget-object v1, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListMediaTimes:[J
const/4 v2, 0x0
aget-wide v51, v1, v2
.line 368
.local v51, "editStartTime":J
iget-object v1, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListDurations:[J
aget-wide v40, v1, v2
iget-wide v1, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->timescale:J
iget-wide v4, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->movieTimescale:J
move-wide/from16 v42, v1
move-wide/from16 v44, v4
invoke-static/range {v40 .. v45}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v1
add-long v55, v51, v1
.line 370
.local v55, "editEndTime":J
move-object/from16 v40, v7
move-wide/from16 v41, v11
move-wide/from16 v43, v51
move-wide/from16 v45, v55
invoke-static/range {v40 .. v46}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->canApplyEditWithGaplessInfo([JJJJ)Z
move-result v1
if-eqz v1, :cond_3d6
.line 371
sub-long v57, v11, v55
.line 372
.local v57, "paddingTimeUnits":J
const/4 v1, 0x0
aget-wide v2, v7, v1
sub-long v40, v51, v2
iget-object v1, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->format:Lcom/google/android/exoplayer2/Format;
iget v1, v1, Lcom/google/android/exoplayer2/Format;->sampleRate:I
int-to-long v1, v1
iget-wide v3, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->timescale:J
move-wide/from16 v42, v1
move-wide/from16 v44, v3
invoke-static/range {v40 .. v45}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v4
.line 374
.local v4, "encoderDelay":J
iget-object v1, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->format:Lcom/google/android/exoplayer2/Format;
iget v1, v1, Lcom/google/android/exoplayer2/Format;->sampleRate:I
int-to-long v1, v1
move-wide/from16 v59, v11
move v12, v10
.end local v10 # "timestampDeltaInTimeUnits":I
.end local v11 # "duration":J
.local v12, "timestampDeltaInTimeUnits":I
.local v59, "duration":J
iget-wide v10, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->timescale:J
move-wide/from16 v40, v57
move-wide/from16 v42, v1
move-wide/from16 v44, v10
invoke-static/range {v40 .. v45}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v10
.line 376
.local v10, "encoderPadding":J
const-wide/16 v1, 0x0
cmp-long v3, v4, v1
if-nez v3, :cond_382
cmp-long v3, v10, v1
if-eqz v3, :cond_379
goto :goto_382
:cond_379
move-object/from16 v31, v0
move v10, v6
move-object v11, v8
move/from16 v46, v12
move-object v12, v7
goto/16 :goto_3e9
:cond_382
:goto_382
const-wide/32 v1, 0x7fffffff
cmp-long v3, v4, v1
if-gtz v3, :cond_3ca
cmp-long v3, v10, v1
if-gtz v3, :cond_3ca
.line 378
long-to-int v1, v4
move-object/from16 v3, p2
iput v1, v3, Lcom/google/android/exoplayer2/extractor/GaplessInfoHolder;->encoderDelay:I
.line 379
long-to-int v1, v10
iput v1, v3, Lcom/google/android/exoplayer2/extractor/GaplessInfoHolder;->encoderPadding:I
.line 380
iget-wide v1, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->timescale:J
move-wide/from16 v40, v4
const-wide/32 v3, 0xf4240
.end local v4 # "encoderDelay":J
.local v40, "encoderDelay":J
invoke-static {v7, v3, v4, v1, v2}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestampsInPlace([JJJ)V
.line 381
iget-object v1, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListDurations:[J
const/4 v2, 0x0
aget-wide v61, v1, v2
const-wide/32 v63, 0xf4240
iget-wide v1, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->movieTimescale:J
.line 382
move-wide/from16 v65, v1
invoke-static/range {v61 .. v66}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v42
.line 384
.local v42, "editedDurationUs":J
new-instance v16, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;
move-object/from16 v31, v0
.end local v0 # "chunkIterator":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
.local v31, "chunkIterator":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
move-object/from16 v0, v16
move-object/from16 v1, p0
move-object v2, v14
move-object v3, v9
move/from16 v4, v20
move-object v5, v7
move-wide/from16 v44, v10
move v10, v6
.end local v6 # "sampleCount":I
.local v10, "sampleCount":I
.local v44, "encoderPadding":J
move-object v6, v8
move-object v11, v8
move/from16 v46, v12
move-object v12, v7
.end local v7 # "timestamps":[J
.end local v8 # "flags":[I
.local v11, "flags":[I
.local v12, "timestamps":[J
.local v46, "timestampDeltaInTimeUnits":I
move-wide/from16 v7, v42
invoke-direct/range {v0 .. v8}, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;-><init>(Lcom/google/android/exoplayer2/extractor/mp4/Track;[J[II[J[IJ)V
return-object v16
.line 376
.end local v11 # "flags":[I
.end local v31 # "chunkIterator":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
.end local v40 # "encoderDelay":J
.end local v42 # "editedDurationUs":J
.end local v44 # "encoderPadding":J
.end local v46 # "timestampDeltaInTimeUnits":I
.restart local v0 # "chunkIterator":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
.restart local v4 # "encoderDelay":J
.restart local v6 # "sampleCount":I
.restart local v7 # "timestamps":[J
.restart local v8 # "flags":[I
.local v10, "encoderPadding":J
.local v12, "timestampDeltaInTimeUnits":I
:cond_3ca
move-object/from16 v31, v0
move-wide/from16 v40, v4
move-wide/from16 v44, v10
move/from16 v46, v12
move v10, v6
move-object v12, v7
move-object v11, v8
.end local v0 # "chunkIterator":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
.end local v4 # "encoderDelay":J
.end local v6 # "sampleCount":I
.end local v7 # "timestamps":[J
.end local v8 # "flags":[I
.local v10, "sampleCount":I
.restart local v11 # "flags":[I
.local v12, "timestamps":[J
.restart local v31 # "chunkIterator":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
.restart local v40 # "encoderDelay":J
.restart local v44 # "encoderPadding":J
.restart local v46 # "timestampDeltaInTimeUnits":I
goto :goto_3e9
.line 370
.end local v12 # "timestamps":[J
.end local v31 # "chunkIterator":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
.end local v40 # "encoderDelay":J
.end local v44 # "encoderPadding":J
.end local v46 # "timestampDeltaInTimeUnits":I
.end local v57 # "paddingTimeUnits":J
.end local v59 # "duration":J
.restart local v0 # "chunkIterator":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
.restart local v6 # "sampleCount":I
.restart local v7 # "timestamps":[J
.restart local v8 # "flags":[I
.local v10, "timestampDeltaInTimeUnits":I
.local v11, "duration":J
:cond_3d6
move-object/from16 v31, v0
move/from16 v46, v10
move-wide/from16 v59, v11
move v10, v6
move-object v12, v7
move-object v11, v8
.end local v0 # "chunkIterator":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
.end local v6 # "sampleCount":I
.end local v7 # "timestamps":[J
.end local v8 # "flags":[I
.local v10, "sampleCount":I
.local v11, "flags":[I
.restart local v12 # "timestamps":[J
.restart local v31 # "chunkIterator":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
.restart local v46 # "timestampDeltaInTimeUnits":I
.restart local v59 # "duration":J
goto :goto_3e9
.line 364
.end local v12 # "timestamps":[J
.end local v31 # "chunkIterator":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
.end local v46 # "timestampDeltaInTimeUnits":I
.end local v51 # "editStartTime":J
.end local v55 # "editEndTime":J
.end local v59 # "duration":J
.restart local v0 # "chunkIterator":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
.restart local v6 # "sampleCount":I
.restart local v7 # "timestamps":[J
.restart local v8 # "flags":[I
.local v10, "timestampDeltaInTimeUnits":I
.local v11, "duration":J
:cond_3e0
move-object/from16 v31, v0
move/from16 v46, v10
move-wide/from16 v59, v11
move v10, v6
move-object v12, v7
move-object v11, v8
.line 390
.end local v0 # "chunkIterator":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
.end local v6 # "sampleCount":I
.end local v7 # "timestamps":[J
.end local v8 # "flags":[I
.local v10, "sampleCount":I
.local v11, "flags":[I
.restart local v12 # "timestamps":[J
.restart local v31 # "chunkIterator":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
.restart local v46 # "timestampDeltaInTimeUnits":I
.restart local v59 # "duration":J
:goto_3e9
iget-object v0, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListDurations:[J
array-length v0, v0
const/4 v1, 0x1
if-ne v0, v1, :cond_431
iget-object v0, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListDurations:[J
const/4 v1, 0x0
aget-wide v2, v0, v1
const-wide/16 v4, 0x0
cmp-long v0, v2, v4
if-nez v0, :cond_431
.line 394
iget-object v0, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListMediaTimes:[J
aget-wide v40, v0, v1
.line 395
.local v40, "editStartTime":J
const/4 v0, 0x0
.local v0, "i":I
:goto_3ff
array-length v1, v12
if-ge v0, v1, :cond_414
.line 396
aget-wide v1, v12, v0
sub-long v3, v1, v40
const-wide/32 v5, 0xf4240
iget-wide v7, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->timescale:J
.line 397
invoke-static/range {v3 .. v8}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v1
aput-wide v1, v12, v0
.line 395
add-int/lit8 v0, v0, 0x1
goto :goto_3ff
.line 400
.end local v0 # "i":I
:cond_414
sub-long v1, v59, v40
const-wide/32 v3, 0xf4240
iget-wide v5, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->timescale:J
.line 401
invoke-static/range {v1 .. v6}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v42
.line 402
.end local v47 # "durationUs":J
.local v42, "durationUs":J
new-instance v16, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;
move-object/from16 v0, v16
move-object/from16 v1, p0
move-object v2, v14
move-object v3, v9
move/from16 v4, v20
move-object v5, v12
move-object v6, v11
move-wide/from16 v7, v42
invoke-direct/range {v0 .. v8}, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;-><init>(Lcom/google/android/exoplayer2/extractor/mp4/Track;[J[II[J[IJ)V
return-object v16
.line 407
.end local v40 # "editStartTime":J
.end local v42 # "durationUs":J
.restart local v47 # "durationUs":J
:cond_431
iget v0, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->type:I
const/4 v1, 0x1
if-ne v0, v1, :cond_438
const/4 v0, 0x1
goto :goto_439
:cond_438
const/4 v0, 0x0
:goto_439
move v7, v0
.line 410
.local v7, "omitClippedSample":Z
const/4 v0, 0x0
.line 411
.local v0, "editedSampleCount":I
const/4 v1, 0x0
.line 412
.local v1, "nextSampleIndex":I
const/4 v2, 0x0
.line 413
.local v2, "copyMetadata":Z
iget-object v3, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListDurations:[J
array-length v3, v3
new-array v8, v3, [I
.line 414
.local v8, "startIndices":[I
iget-object v3, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListDurations:[J
array-length v3, v3
new-array v6, v3, [I
.line 415
.local v6, "endIndices":[I
const/4 v3, 0x0
move v5, v0
move v4, v1
.end local v0 # "editedSampleCount":I
.end local v1 # "nextSampleIndex":I
.local v3, "i":I
.local v4, "nextSampleIndex":I
.local v5, "editedSampleCount":I
:goto_44a
iget-object v0, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListDurations:[J
array-length v0, v0
if-ge v3, v0, :cond_4bc
.line 416
iget-object v0, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListMediaTimes:[J
move-object/from16 v40, v13
move-object/from16 v41, v14
.end local v13 # "sampleSizeBox":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$SampleSizeBox;
.end local v14 # "offsets":[J
.local v40, "sampleSizeBox":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$SampleSizeBox;
.local v41, "offsets":[J
aget-wide v13, v0, v3
.line 417
.local v13, "editMediaTime":J
const-wide/16 v0, -0x1
cmp-long v42, v13, v0
if-eqz v42, :cond_4ab
.line 418
iget-object v0, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListDurations:[J
aget-wide v49, v0, v3
iget-wide v0, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->timescale:J
move-object/from16 v42, v9
move/from16 v43, v10
.end local v9 # "sizes":[I
.end local v10 # "sampleCount":I
.local v42, "sizes":[I
.local v43, "sampleCount":I
iget-wide v9, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->movieTimescale:J
.line 419
move-wide/from16 v51, v0
move-wide/from16 v53, v9
invoke-static/range {v49 .. v54}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v0
.line 421
.local v0, "editDuration":J
const/4 v9, 0x1
invoke-static {v12, v13, v14, v9, v9}, Lcom/google/android/exoplayer2/util/Util;->binarySearchCeil([JJZZ)I
move-result v10
aput v10, v8, v3
.line 422
add-long v9, v13, v0
.line 423
move-wide/from16 v44, v0
const/4 v0, 0x0
.end local v0 # "editDuration":J
.local v44, "editDuration":J
invoke-static {v12, v9, v10, v7, v0}, Lcom/google/android/exoplayer2/util/Util;->binarySearchCeil([JJZZ)I
move-result v1
aput v1, v6, v3
.line 425
:goto_483
aget v1, v8, v3
aget v9, v6, v3
if-ge v1, v9, :cond_497
aget v1, v8, v3
aget v1, v11, v1
const/4 v9, 0x1
and-int/2addr v1, v9
if-nez v1, :cond_498
.line 431
aget v1, v8, v3
add-int/2addr v1, v9
aput v1, v8, v3
goto :goto_483
.line 425
:cond_497
const/4 v9, 0x1
.line 433
:cond_498
aget v1, v6, v3
aget v10, v8, v3
sub-int/2addr v1, v10
add-int/2addr v5, v1
.line 434
aget v1, v8, v3
if-eq v4, v1, :cond_4a4
const/4 v1, 0x1
goto :goto_4a5
:cond_4a4
const/4 v1, 0x0
:goto_4a5
or-int/2addr v1, v2
.line 435
.end local v2 # "copyMetadata":Z
.local v1, "copyMetadata":Z
aget v2, v6, v3
move v4, v2
move v2, v1
.end local v4 # "nextSampleIndex":I
.local v2, "nextSampleIndex":I
goto :goto_4b1
.line 417
.end local v1 # "copyMetadata":Z
.end local v42 # "sizes":[I
.end local v43 # "sampleCount":I
.end local v44 # "editDuration":J
.local v2, "copyMetadata":Z
.restart local v4 # "nextSampleIndex":I
.restart local v9 # "sizes":[I
.restart local v10 # "sampleCount":I
:cond_4ab
move-object/from16 v42, v9
move/from16 v43, v10
const/4 v0, 0x0
const/4 v9, 0x1
.line 415
.end local v9 # "sizes":[I
.end local v10 # "sampleCount":I
.end local v13 # "editMediaTime":J
.restart local v42 # "sizes":[I
.restart local v43 # "sampleCount":I
:goto_4b1
add-int/lit8 v3, v3, 0x1
move-object/from16 v13, v40
move-object/from16 v14, v41
move-object/from16 v9, v42
move/from16 v10, v43
goto :goto_44a
.end local v40 # "sampleSizeBox":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$SampleSizeBox;
.end local v41 # "offsets":[J
.end local v42 # "sizes":[I
.end local v43 # "sampleCount":I
.restart local v9 # "sizes":[I
.restart local v10 # "sampleCount":I
.local v13, "sampleSizeBox":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$SampleSizeBox;
.restart local v14 # "offsets":[J
:cond_4bc
move-object/from16 v42, v9
move/from16 v43, v10
move-object/from16 v40, v13
move-object/from16 v41, v14
const/4 v0, 0x0
const/4 v9, 0x1
.line 438
.end local v3 # "i":I
.end local v9 # "sizes":[I
.end local v10 # "sampleCount":I
.end local v13 # "sampleSizeBox":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$SampleSizeBox;
.end local v14 # "offsets":[J
.restart local v40 # "sampleSizeBox":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$SampleSizeBox;
.restart local v41 # "offsets":[J
.restart local v42 # "sizes":[I
.restart local v43 # "sampleCount":I
move/from16 v14, v43
.end local v43 # "sampleCount":I
.local v14, "sampleCount":I
if-eq v5, v14, :cond_4cc
const/4 v3, 0x1
goto :goto_4cd
:cond_4cc
const/4 v3, 0x0
:goto_4cd
or-int v9, v2, v3
.line 441
.end local v2 # "copyMetadata":Z
.local v9, "copyMetadata":Z
if-eqz v9, :cond_4d4
new-array v1, v5, [J
goto :goto_4d6
:cond_4d4
move-object/from16 v1, v41
:goto_4d6
move-object v10, v1
.line 442
.local v10, "editedOffsets":[J
if-eqz v9, :cond_4dc
new-array v1, v5, [I
goto :goto_4de
:cond_4dc
move-object/from16 v1, v42
:goto_4de
move-object v13, v1
.line 443
.local v13, "editedSizes":[I
if-eqz v9, :cond_4e2
goto :goto_4e4
:cond_4e2
move/from16 v0, v20
.line 444
.local v0, "editedMaximumSize":I
:goto_4e4
if-eqz v9, :cond_4e9
new-array v1, v5, [I
goto :goto_4ea
:cond_4e9
move-object v1, v11
:goto_4ea
move-object v3, v1
.line 445
.local v3, "editedFlags":[I
new-array v2, v5, [J
.line 446
.local v2, "editedTimestamps":[J
const-wide/16 v43, 0x0
.line 447
.local v43, "pts":J
const/4 v1, 0x0
.line 448
.local v1, "sampleIndex":I
const/16 v16, 0x0
move/from16 v71, v16
move/from16 v16, v0
move/from16 v0, v71
.local v0, "i":I
.local v16, "editedMaximumSize":I
:goto_4f8
move/from16 v21, v4
.end local v4 # "nextSampleIndex":I
.local v21, "nextSampleIndex":I
iget-object v4, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListDurations:[J
array-length v4, v4
if-ge v0, v4, :cond_595
.line 449
iget-object v4, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListMediaTimes:[J
aget-wide v55, v4, v0
.line 450
.local v55, "editMediaTime":J
aget v4, v8, v0
.line 451
.local v4, "startIndex":I
move/from16 v45, v5
.end local v5 # "editedSampleCount":I
.local v45, "editedSampleCount":I
aget v5, v6, v0
.line 452
.local v5, "endIndex":I
if-eqz v9, :cond_51f
.line 453
move-object/from16 v57, v6
.end local v6 # "endIndices":[I
.local v57, "endIndices":[I
sub-int v6, v5, v4
.line 454
.local v6, "count":I
move/from16 v58, v14
move-object/from16 v14, v41
.end local v41 # "offsets":[J
.local v14, "offsets":[J
.local v58, "sampleCount":I
invoke-static {v14, v4, v10, v1, v6}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 455
move-object/from16 v14, v42
.end local v42 # "sizes":[I
.local v14, "sizes":[I
.restart local v41 # "offsets":[J
invoke-static {v14, v4, v13, v1, v6}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 456
invoke-static {v11, v4, v3, v1, v6}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
goto :goto_525
.line 452
.end local v57 # "endIndices":[I
.end local v58 # "sampleCount":I
.local v6, "endIndices":[I
.local v14, "sampleCount":I
.restart local v42 # "sizes":[I
:cond_51f
move-object/from16 v57, v6
move/from16 v58, v14
move-object/from16 v14, v42
.line 458
.end local v6 # "endIndices":[I
.end local v42 # "sizes":[I
.local v14, "sizes":[I
.restart local v57 # "endIndices":[I
.restart local v58 # "sampleCount":I
:goto_525
move v6, v4
move-object/from16 v42, v3
move/from16 v3, v16
.end local v16 # "editedMaximumSize":I
.local v3, "editedMaximumSize":I
.local v6, "j":I
.local v42, "editedFlags":[I
:goto_52a
if-ge v6, v5, :cond_571
.line 459
const-wide/32 v51, 0xf4240
move/from16 v61, v4
move/from16 v62, v5
.end local v4 # "startIndex":I
.end local v5 # "endIndex":I
.local v61, "startIndex":I
.local v62, "endIndex":I
iget-wide v4, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->movieTimescale:J
move-wide/from16 v49, v43
move-wide/from16 v53, v4
invoke-static/range {v49 .. v54}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v4
.line 460
.local v4, "ptsUs":J
aget-wide v49, v12, v6
sub-long v63, v49, v55
const-wide/32 v65, 0xf4240
move/from16 v69, v7
move-object/from16 v70, v8
.end local v7 # "omitClippedSample":Z
.end local v8 # "startIndices":[I
.local v69, "omitClippedSample":Z
.local v70, "startIndices":[I
iget-wide v7, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->timescale:J
.line 461
move-wide/from16 v67, v7
invoke-static/range {v63 .. v68}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v7
.line 463
.local v7, "timeInSegmentUs":J
add-long v49, v4, v7
aput-wide v49, v2, v1
.line 464
if-eqz v9, :cond_55f
move-object/from16 v63, v2
.end local v2 # "editedTimestamps":[J
.local v63, "editedTimestamps":[J
aget v2, v13, v1
if-le v2, v3, :cond_561
.line 465
aget v3, v14, v6
goto :goto_561
.line 464
.end local v63 # "editedTimestamps":[J
.restart local v2 # "editedTimestamps":[J
:cond_55f
move-object/from16 v63, v2
.line 467
.end local v2 # "editedTimestamps":[J
.restart local v63 # "editedTimestamps":[J
:cond_561
:goto_561
nop
.end local v4 # "ptsUs":J
.end local v7 # "timeInSegmentUs":J
add-int/lit8 v1, v1, 0x1
.line 458
add-int/lit8 v6, v6, 0x1
move/from16 v4, v61
move/from16 v5, v62
move-object/from16 v2, v63
move/from16 v7, v69
move-object/from16 v8, v70
goto :goto_52a
.end local v61 # "startIndex":I
.end local v62 # "endIndex":I
.end local v63 # "editedTimestamps":[J
.end local v69 # "omitClippedSample":Z
.end local v70 # "startIndices":[I
.restart local v2 # "editedTimestamps":[J
.local v4, "startIndex":I
.restart local v5 # "endIndex":I
.local v7, "omitClippedSample":Z
.restart local v8 # "startIndices":[I
:cond_571
move-object/from16 v63, v2
move/from16 v61, v4
move/from16 v62, v5
move/from16 v69, v7
move-object/from16 v70, v8
.line 469
.end local v2 # "editedTimestamps":[J
.end local v4 # "startIndex":I
.end local v5 # "endIndex":I
.end local v6 # "j":I
.end local v7 # "omitClippedSample":Z
.end local v8 # "startIndices":[I
.restart local v61 # "startIndex":I
.restart local v62 # "endIndex":I
.restart local v63 # "editedTimestamps":[J
.restart local v69 # "omitClippedSample":Z
.restart local v70 # "startIndices":[I
iget-object v2, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->editListDurations:[J
aget-wide v4, v2, v0
add-long v43, v43, v4
.line 448
.end local v55 # "editMediaTime":J
.end local v61 # "startIndex":I
.end local v62 # "endIndex":I
add-int/lit8 v0, v0, 0x1
move/from16 v16, v3
move/from16 v4, v21
move-object/from16 v3, v42
move/from16 v5, v45
move-object/from16 v6, v57
move-object/from16 v2, v63
move-object/from16 v42, v14
move/from16 v14, v58
goto/16 :goto_4f8
.end local v45 # "editedSampleCount":I
.end local v57 # "endIndices":[I
.end local v58 # "sampleCount":I
.end local v63 # "editedTimestamps":[J
.end local v69 # "omitClippedSample":Z
.end local v70 # "startIndices":[I
.restart local v2 # "editedTimestamps":[J
.local v3, "editedFlags":[I
.local v5, "editedSampleCount":I
.local v6, "endIndices":[I
.restart local v7 # "omitClippedSample":Z
.restart local v8 # "startIndices":[I
.local v14, "sampleCount":I
.restart local v16 # "editedMaximumSize":I
.local v42, "sizes":[I
:cond_595
move-object/from16 v63, v2
move/from16 v45, v5
move-object/from16 v57, v6
move/from16 v69, v7
move-object/from16 v70, v8
move/from16 v58, v14
move-object/from16 v14, v42
move-object/from16 v42, v3
.line 471
.end local v0 # "i":I
.end local v2 # "editedTimestamps":[J
.end local v3 # "editedFlags":[I
.end local v5 # "editedSampleCount":I
.end local v6 # "endIndices":[I
.end local v7 # "omitClippedSample":Z
.end local v8 # "startIndices":[I
.local v14, "sizes":[I
.local v42, "editedFlags":[I
.restart local v45 # "editedSampleCount":I
.restart local v57 # "endIndices":[I
.restart local v58 # "sampleCount":I
.restart local v63 # "editedTimestamps":[J
.restart local v69 # "omitClippedSample":Z
.restart local v70 # "startIndices":[I
const-wide/32 v51, 0xf4240
iget-wide v2, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->movieTimescale:J
.line 472
move-wide/from16 v49, v43
move-wide/from16 v53, v2
invoke-static/range {v49 .. v54}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v49
.line 473
.local v49, "editedDurationUs":J
new-instance v51, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;
move-object/from16 v0, v51
move/from16 v52, v1
.end local v1 # "sampleIndex":I
.local v52, "sampleIndex":I
move-object/from16 v1, p0
move-object/from16 v53, v63
.end local v63 # "editedTimestamps":[J
.local v53, "editedTimestamps":[J
move-object v2, v10
move-object v3, v13
move/from16 v4, v16
move-object/from16 v5, v53
move-object/from16 v54, v57
.end local v57 # "endIndices":[I
.local v54, "endIndices":[I
move-object/from16 v6, v42
move/from16 v55, v69
move-object/from16 v56, v70
.end local v69 # "omitClippedSample":Z
.end local v70 # "startIndices":[I
.local v55, "omitClippedSample":Z
.local v56, "startIndices":[I
move-wide/from16 v7, v49
invoke-direct/range {v0 .. v8}, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;-><init>(Lcom/google/android/exoplayer2/extractor/mp4/Track;[J[II[J[IJ)V
return-object v51
.line 349
.end local v12 # "timestamps":[J
.end local v16 # "editedMaximumSize":I
.end local v21 # "nextSampleIndex":I
.end local v31 # "chunkIterator":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
.end local v40 # "sampleSizeBox":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$SampleSizeBox;
.end local v41 # "offsets":[J
.end local v42 # "editedFlags":[I
.end local v43 # "pts":J
.end local v45 # "editedSampleCount":I
.end local v46 # "timestampDeltaInTimeUnits":I
.end local v49 # "editedDurationUs":J
.end local v52 # "sampleIndex":I
.end local v53 # "editedTimestamps":[J
.end local v54 # "endIndices":[I
.end local v55 # "omitClippedSample":Z
.end local v56 # "startIndices":[I
.end local v58 # "sampleCount":I
.end local v59 # "duration":J
.local v0, "chunkIterator":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
.local v6, "sampleCount":I
.local v7, "timestamps":[J
.local v8, "flags":[I
.local v9, "sizes":[I
.local v10, "timestampDeltaInTimeUnits":I
.local v11, "duration":J
.local v13, "sampleSizeBox":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$SampleSizeBox;
.local v14, "offsets":[J
:cond_5d0
move-object/from16 v31, v0
move/from16 v58, v6
move/from16 v46, v10
move-wide/from16 v59, v11
move-object/from16 v40, v13
move-object/from16 v41, v14
move-object v12, v7
move-object v11, v8
move-object v14, v9
.line 352
.end local v0 # "chunkIterator":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
.end local v6 # "sampleCount":I
.end local v7 # "timestamps":[J
.end local v8 # "flags":[I
.end local v9 # "sizes":[I
.end local v10 # "timestampDeltaInTimeUnits":I
.end local v13 # "sampleSizeBox":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$SampleSizeBox;
.local v11, "flags":[I
.restart local v12 # "timestamps":[J
.local v14, "sizes":[I
.restart local v31 # "chunkIterator":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
.restart local v40 # "sampleSizeBox":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$SampleSizeBox;
.restart local v41 # "offsets":[J
.restart local v46 # "timestampDeltaInTimeUnits":I
.restart local v58 # "sampleCount":I
.restart local v59 # "duration":J
:goto_5df
iget-wide v0, v15, Lcom/google/android/exoplayer2/extractor/mp4/Track;->timescale:J
const-wide/32 v2, 0xf4240
invoke-static {v12, v2, v3, v0, v1}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestampsInPlace([JJJ)V
.line 353
new-instance v9, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;
move-object v0, v9
move-object/from16 v1, p0
move-object/from16 v2, v41
move-object v3, v14
move/from16 v4, v20
move-object v5, v12
move-object v6, v11
move-wide/from16 v7, v47
invoke-direct/range {v0 .. v8}, Lcom/google/android/exoplayer2/extractor/mp4/TrackSampleTable;-><init>(Lcom/google/android/exoplayer2/extractor/mp4/Track;[J[II[J[IJ)V
return-object v9
.line 136
.end local v11 # "flags":[I
.end local v14 # "sizes":[I
.end local v17 # "cttsAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.end local v18 # "remainingTimestampDeltaChanges":I
.end local v19 # "stss":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.end local v20 # "maximumSize":I
.end local v22 # "remainingSamplesAtTimestampDelta":I
.end local v23 # "remainingTimestampOffsetChanges":I
.end local v24 # "timestampOffset":I
.end local v25 # "stssAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.end local v26 # "remainingSynchronizationSamples":I
.end local v27 # "nextSynchronizationSampleIndex":I
.end local v28 # "isFixedSampleSizeRawAudio":Z
.end local v29 # "timestampTimeUnits":J
.end local v31 # "chunkIterator":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$ChunkIterator;
.end local v32 # "stsc":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.end local v33 # "chunkOffsetsAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.end local v34 # "chunkOffsets":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.end local v35 # "stszAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.end local v36 # "chunkOffsetsAreLongs":Z
.end local v37 # "stts":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.end local v38 # "remainingSamplesAtTimestampOffset":I
.end local v39 # "ctts":Lcom/google/android/exoplayer2/util/ParsableByteArray;
.end local v40 # "sampleSizeBox":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$SampleSizeBox;
.end local v41 # "offsets":[J
.end local v46 # "timestampDeltaInTimeUnits":I
.end local v47 # "durationUs":J
.end local v58 # "sampleCount":I
.end local v59 # "duration":J
.local v0, "stz2Atom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.local v12, "stszAtom":Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
:cond_5f9
new-instance v1, Lcom/google/android/exoplayer2/ParserException;
const-string v2, "Track has no sample table size information"
invoke-direct {v1, v2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
goto :goto_602
:goto_601
throw v1
:goto_602
goto :goto_601
.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 23
.param p0, "stsd" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.param p1, "trackId" # I
.param p2, "rotationDegrees" # I
.param p3, "language" # Ljava/lang/String;
.param p4, "drmInitData" # Lcom/google/android/exoplayer2/drm/DrmInitData;
.param p5, "isQuickTime" # Z
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
.line 730
move-object/from16 v10, p0
const/16 v0, 0xc
invoke-virtual {v10, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 731
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v11
.line 732
.local v11, "numberOfEntries":I
new-instance v0, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;
invoke-direct {v0, v11}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;-><init>(I)V
move-object v12, v0
.line 733
.local v12, "out":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;
const/4 v0, 0x0
move v13, v0
.local v13, "i":I
:goto_13
if-ge v13, v11, :cond_10a
.line 734
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v14
.line 735
.local v14, "childStartPosition":I
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v15
.line 736
.local v15, "childAtomSize":I
if-lez v15, :cond_21
const/4 v0, 0x1
goto :goto_22
:cond_21
const/4 v0, 0x0
:goto_22
const-string v1, "childAtomSize should be positive"
invoke-static {v0, v1}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(ZLjava/lang/Object;)V
.line 737
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v9
.line 738
.local v9, "childAtomType":I
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_avc1:I
if-eq v9, v0, :cond_ee
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_avc3:I
if-eq v9, v0, :cond_ee
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_encv:I
if-eq v9, v0, :cond_ee
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_mp4v:I
if-eq v9, v0, :cond_ee
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_hvc1:I
if-eq v9, v0, :cond_ee
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_hev1:I
if-eq v9, v0, :cond_ee
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_s263:I
if-eq v9, v0, :cond_ee
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_vp08:I
if-eq v9, v0, :cond_ee
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_vp09:I
if-ne v9, v0, :cond_53
move/from16 v16, v9
goto/16 :goto_f0
.line 745
:cond_53
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_mp4a:I
if-eq v9, v0, :cond_d9
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_enca:I
if-eq v9, v0, :cond_d9
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_ac_3:I
if-eq v9, v0, :cond_d9
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_ec_3:I
if-eq v9, v0, :cond_d9
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_dtsc:I
if-eq v9, v0, :cond_d9
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_dtse:I
if-eq v9, v0, :cond_d9
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_dtsh:I
if-eq v9, v0, :cond_d9
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_dtsl:I
if-eq v9, v0, :cond_d9
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_samr:I
if-eq v9, v0, :cond_d9
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_sawb:I
if-eq v9, v0, :cond_d9
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_lpcm:I
if-eq v9, v0, :cond_d9
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_sowt:I
if-eq v9, v0, :cond_d9
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE__mp3:I
if-eq v9, v0, :cond_d9
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_alac:I
if-eq v9, v0, :cond_d9
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_alaw:I
if-eq v9, v0, :cond_d9
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_ulaw:I
if-eq v9, v0, :cond_d9
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_Opus:I
if-eq v9, v0, :cond_d9
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_fLaC:I
if-ne v9, v0, :cond_9c
goto :goto_d9
.line 765
:cond_9c
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_TTML:I
if-eq v9, v0, :cond_c9
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_tx3g:I
if-eq v9, v0, :cond_c9
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_wvtt:I
if-eq v9, v0, :cond_c9
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_stpp:I
if-eq v9, v0, :cond_c9
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_c608:I
if-ne v9, v0, :cond_b1
goto :goto_c9
.line 770
:cond_b1
sget v0, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_camm:I
if-ne v9, v0, :cond_c6
.line 771
invoke-static/range {p1 .. p1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v0
const/4 v1, -0x1
const/4 v2, 0x0
const-string v3, "application/x-camera-motion"
invoke-static {v0, v3, v2, v1, v2}, 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;
move/from16 v16, v9
goto :goto_101
.line 770
:cond_c6
move/from16 v16, v9
goto :goto_101
.line 768
:cond_c9
:goto_c9
move-object/from16 v0, p0
move v1, v9
move v2, v14
move v3, v15
move/from16 v4, p1
move-object/from16 v5, p3
move-object v6, v12
invoke-static/range {v0 .. v6}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseTextSampleEntry(Lcom/google/android/exoplayer2/util/ParsableByteArray;IIIILjava/lang/String;Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;)V
move/from16 v16, v9
goto :goto_101
.line 763
:cond_d9
:goto_d9
move-object/from16 v0, p0
move v1, v9
move v2, v14
move v3, v15
move/from16 v4, p1
move-object/from16 v5, p3
move/from16 v6, p5
move-object/from16 v7, p4
move-object v8, v12
move/from16 v16, v9
.end local v9 # "childAtomType":I
.local v16, "childAtomType":I
move v9, v13
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_101
.line 738
.end local v16 # "childAtomType":I
.restart local v9 # "childAtomType":I
:cond_ee
move/from16 v16, v9
.line 743
.end local v9 # "childAtomType":I
.restart local v16 # "childAtomType":I
:goto_f0
move-object/from16 v0, p0
move/from16 v1, v16
move v2, v14
move v3, v15
move/from16 v4, p1
move/from16 v5, p2
move-object/from16 v6, p4
move-object v7, v12
move v8, v13
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
.line 774
:goto_101
add-int v0, v14, v15
invoke-virtual {v10, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 733
.end local v14 # "childStartPosition":I
.end local v15 # "childAtomSize":I
.end local v16 # "childAtomType":I
add-int/lit8 v13, v13, 0x1
goto/16 :goto_13
.line 776
.end local v13 # "i":I
:cond_10a
return-object v12
.end method
.method private static parseTextSampleEntry(Lcom/google/android/exoplayer2/util/ParsableByteArray;IIIILjava/lang/String;Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;)V
.registers 26
.param p0, "parent" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.param p1, "atomType" # I
.param p2, "position" # I
.param p3, "atomSize" # I
.param p4, "trackId" # I
.param p5, "language" # Ljava/lang/String;
.param p6, "out" # Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
.line 781
move-object/from16 v0, p0
move/from16 v1, p1
move-object/from16 v2, p6
add-int/lit8 v3, p2, 0x8
add-int/lit8 v3, v3, 0x8
invoke-virtual {v0, v3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 784
const/4 v3, 0x0
.line 785
.local v3, "initializationData":Ljava/util/List;, "Ljava/util/List<[B>;"
const-wide v4, 0x7fffffffffffffffL
.line 788
.local v4, "subsampleOffsetUs":J
sget v6, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_TTML:I
if-ne v1, v6, :cond_1a
.line 789
const-string v6, "application/ttml+xml"
.local v6, "mimeType":Ljava/lang/String;
goto :goto_48
.line 790
.end local v6 # "mimeType":Ljava/lang/String;
:cond_1a
sget v6, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_tx3g:I
if-ne v1, v6, :cond_2f
.line 791
const-string v6, "application/x-quicktime-tx3g"
.line 792
.restart local v6 # "mimeType":Ljava/lang/String;
add-int/lit8 v7, p3, -0x8
add-int/lit8 v7, v7, -0x8
.line 793
.local v7, "sampleDescriptionLength":I
new-array v8, v7, [B
.line 794
.local v8, "sampleDescriptionData":[B
const/4 v9, 0x0
invoke-virtual {v0, v8, v9, v7}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readBytes([BII)V
.line 795
invoke-static {v8}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
move-result-object v3
.line 796
.end local v7 # "sampleDescriptionLength":I
.end local v8 # "sampleDescriptionData":[B
goto :goto_48
.end local v6 # "mimeType":Ljava/lang/String;
:cond_2f
sget v6, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_wvtt:I
if-ne v1, v6, :cond_36
.line 797
const-string v6, "application/x-mp4-vtt"
.restart local v6 # "mimeType":Ljava/lang/String;
goto :goto_48
.line 798
.end local v6 # "mimeType":Ljava/lang/String;
:cond_36
sget v6, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_stpp:I
if-ne v1, v6, :cond_3f
.line 799
const-string v6, "application/ttml+xml"
.line 800
.restart local v6 # "mimeType":Ljava/lang/String;
const-wide/16 v4, 0x0
goto :goto_48
.line 801
.end local v6 # "mimeType":Ljava/lang/String;
:cond_3f
sget v6, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_c608:I
if-ne v1, v6, :cond_60
.line 803
const-string v6, "application/x-mp4-cea-608"
.line 804
.restart local v6 # "mimeType":Ljava/lang/String;
const/4 v7, 0x1
iput v7, v2, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->requiredSampleTransformation:I
.line 810
:goto_48
nop
.line 812
invoke-static/range {p4 .. p4}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v8
const/4 v10, 0x0
const/4 v11, -0x1
const/4 v12, 0x0
const/4 v14, -0x1
const/4 v15, 0x0
.line 811
move-object v9, v6
move-object/from16 v13, p5
move-wide/from16 v16, v4
move-object/from16 v18, v3
invoke-static/range {v8 .. v18}, Lcom/google/android/exoplayer2/Format;->createTextSampleFormat(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;ILcom/google/android/exoplayer2/drm/DrmInitData;JLjava/util/List;)Lcom/google/android/exoplayer2/Format;
move-result-object v7
iput-object v7, v2, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
.line 822
return-void
.line 807
.end local v6 # "mimeType":Ljava/lang/String;
:cond_60
new-instance v6, Ljava/lang/IllegalStateException;
invoke-direct {v6}, Ljava/lang/IllegalStateException;-><init>()V
throw v6
.end method
.method private static parseTkhd(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;
.registers 16
.param p0, "tkhd" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 615
const/16 v0, 0x8
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 616
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 617
.local v1, "fullAtom":I
invoke-static {v1}, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->parseFullAtomVersion(I)I
move-result v2
.line 619
.local v2, "version":I
const/16 v3, 0x10
if-nez v2, :cond_14
const/16 v4, 0x8
goto :goto_16
:cond_14
const/16 v4, 0x10
:goto_16
invoke-virtual {p0, v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 620
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v4
.line 622
.local v4, "trackId":I
const/4 v5, 0x4
invoke-virtual {p0, v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 623
const/4 v6, 0x1
.line 624
.local v6, "durationUnknown":Z
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v7
.line 625
.local v7, "durationPosition":I
if-nez v2, :cond_29
const/4 v0, 0x4
.line 626
.local v0, "durationByteCount":I
:cond_29
const/4 v8, 0x0
.local v8, "i":I
:goto_2a
if-ge v8, v0, :cond_3a
.line 627
iget-object v9, p0, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
add-int v10, v7, v8
aget-byte v9, v9, v10
const/4 v10, -0x1
if-eq v9, v10, :cond_37
.line 628
const/4 v6, 0x0
.line 629
goto :goto_3a
.line 626
:cond_37
add-int/lit8 v8, v8, 0x1
goto :goto_2a
.line 633
.end local v8 # "i":I
:cond_3a
:goto_3a
if-eqz v6, :cond_45
.line 634
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 635
const-wide v8, -0x7fffffffffffffffL # -4.9E-324
.local v8, "duration":J
goto :goto_5b
.line 637
.end local v8 # "duration":J
:cond_45
if-nez v2, :cond_4c
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedInt()J
move-result-wide v8
goto :goto_50
:cond_4c
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedLongToLong()J
move-result-wide v8
.line 638
.restart local v8 # "duration":J
:goto_50
const-wide/16 v10, 0x0
cmp-long v12, v8, v10
if-nez v12, :cond_5b
.line 641
const-wide v8, -0x7fffffffffffffffL # -4.9E-324
.line 645
:cond_5b
:goto_5b
invoke-virtual {p0, v3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 646
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v3
.line 647
.local v3, "a00":I
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v10
.line 648
.local v10, "a01":I
invoke-virtual {p0, v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 649
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v5
.line 650
.local v5, "a10":I
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v11
.line 653
.local v11, "a11":I
const/high16 v12, 0x10000
.line 654
.local v12, "fixedOne":I
if-nez v3, :cond_7f
if-ne v10, v12, :cond_7f
neg-int v13, v12
if-ne v5, v13, :cond_7f
if-nez v11, :cond_7f
.line 655
const/16 v13, 0x5a
.local v13, "rotationDegrees":I
goto :goto_99
.line 656
.end local v13 # "rotationDegrees":I
:cond_7f
if-nez v3, :cond_8b
neg-int v13, v12
if-ne v10, v13, :cond_8b
if-ne v5, v12, :cond_8b
if-nez v11, :cond_8b
.line 657
const/16 v13, 0x10e
.restart local v13 # "rotationDegrees":I
goto :goto_99
.line 658
.end local v13 # "rotationDegrees":I
:cond_8b
neg-int v13, v12
if-ne v3, v13, :cond_98
if-nez v10, :cond_98
if-nez v5, :cond_98
neg-int v13, v12
if-ne v11, v13, :cond_98
.line 659
const/16 v13, 0xb4
.restart local v13 # "rotationDegrees":I
goto :goto_99
.line 662
.end local v13 # "rotationDegrees":I
:cond_98
const/4 v13, 0x0
.line 665
.restart local v13 # "rotationDegrees":I
:goto_99
new-instance v14, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;
invoke-direct {v14, v4, v8, v9, v13}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;-><init>(IJI)V
return-object v14
.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;ZZ)Lcom/google/android/exoplayer2/extractor/mp4/Track;
.registers 38
.param p0, "trak" # Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;
.param p1, "mvhd" # Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.param p2, "duration" # J
.param p4, "drmInitData" # Lcom/google/android/exoplayer2/drm/DrmInitData;
.param p5, "ignoreEditLists" # Z
.param p6, "isQuickTime" # Z
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
.line 81
move-object/from16 v0, p0
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 82
.local v1, "mdia":Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;
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 v2
invoke-static {v2}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->getTrackTypeForHdlr(I)I
move-result v2
.line 83
.local v2, "trackType":I
const/4 v3, 0x0
const/4 v4, -0x1
if-ne v2, v4, :cond_1d
.line 84
return-object v3
.line 87
:cond_1d
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_tkhd:I
invoke-virtual {v0, v4}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v4
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;->parseTkhd(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;
move-result-object v18
.line 88
.local v18, "tkhdData":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;
const-wide v4, -0x7fffffffffffffffL # -4.9E-324
cmp-long v6, p2, v4
if-nez v6, :cond_39
.line 89
# getter for: Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;->duration:J
invoke-static/range {v18 .. v18}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;->access$000(Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;)J
move-result-wide v6
move-wide/from16 v19, v6
.end local p2 # "duration":J
.local v6, "duration":J
goto :goto_3b
.line 88
.end local v6 # "duration":J
.restart local p2 # "duration":J
:cond_39
move-wide/from16 v19, p2
.line 91
.end local p2 # "duration":J
.local v19, "duration":J
:goto_3b
move-object/from16 v15, p1
iget-object v6, v15, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-static {v6}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseMvhd(Lcom/google/android/exoplayer2/util/ParsableByteArray;)J
move-result-wide v21
.line 93
.local v21, "movieTimescale":J
cmp-long v6, v19, v4
if-nez v6, :cond_4f
.line 94
const-wide v4, -0x7fffffffffffffffL # -4.9E-324
move-wide/from16 v23, v4
.local v4, "durationUs":J
goto :goto_5c
.line 96
.end local v4 # "durationUs":J
:cond_4f
const-wide/32 v10, 0xf4240
move-wide/from16 v8, v19
move-wide/from16 v12, v21
invoke-static/range {v8 .. v13}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v4
move-wide/from16 v23, v4
.line 98
.local v23, "durationUs":J
:goto_5c
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 v5, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_stbl:I
.line 99
invoke-virtual {v4, v5}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getContainerAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;
move-result-object v14
.line 101
.local v14, "stbl":Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_mdhd:I
invoke-virtual {v1, v4}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v4
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;->parseMdhd(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Landroid/util/Pair;
move-result-object v13
.line 102
.local v13, "mdhdData":Landroid/util/Pair;, "Landroid/util/Pair<Ljava/lang/Long;Ljava/lang/String;>;"
sget v4, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_stsd:I
invoke-virtual {v14, v4}, Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;->getLeafAtomOfType(I)Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
move-result-object v4
iget-object v5, 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/range {v18 .. v18}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;->access$100(Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;)I
move-result v6
.line 103
# getter for: Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;->rotationDegrees:I
invoke-static/range {v18 .. v18}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;->access$200(Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;)I
move-result v7
iget-object v4, v13, Landroid/util/Pair;->second:Ljava/lang/Object;
move-object v8, v4
check-cast v8, Ljava/lang/String;
.line 102
move-object/from16 v9, p4
move/from16 v10, p6
invoke-static/range {v5 .. v10}, 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 v12
.line 104
.local v12, "stsdData":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;
const/4 v4, 0x0
.line 105
.local v4, "editListDurations":[J
const/4 v5, 0x0
.line 106
.local v5, "editListMediaTimes":[J
if-nez p5, :cond_ae
.line 107
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 v6
invoke-static {v6}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseEdts(Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;)Landroid/util/Pair;
move-result-object v6
.line 108
.local v6, "edtsData":Landroid/util/Pair;, "Landroid/util/Pair<[J[J>;"
iget-object v7, v6, Landroid/util/Pair;->first:Ljava/lang/Object;
move-object v4, v7
check-cast v4, [J
.line 109
iget-object v7, v6, Landroid/util/Pair;->second:Ljava/lang/Object;
move-object v5, v7
check-cast v5, [J
move-object/from16 v25, v4
move-object/from16 v26, v5
goto :goto_b2
.line 106
.end local v6 # "edtsData":Landroid/util/Pair;, "Landroid/util/Pair<[J[J>;"
:cond_ae
move-object/from16 v25, v4
move-object/from16 v26, v5
.line 111
.end local v4 # "editListDurations":[J
.end local v5 # "editListMediaTimes":[J
.local v25, "editListDurations":[J
.local v26, "editListMediaTimes":[J
:goto_b2
iget-object v4, v12, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
if-nez v4, :cond_bd
move-object/from16 v30, v12
move-object/from16 v28, v13
move-object/from16 v29, v14
goto :goto_f7
:cond_bd
new-instance v27, Lcom/google/android/exoplayer2/extractor/mp4/Track;
.line 112
# getter for: Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;->id:I
invoke-static/range {v18 .. v18}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;->access$100(Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$TkhdData;)I
move-result v4
iget-object v3, v13, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast v3, Ljava/lang/Long;
invoke-virtual {v3}, Ljava/lang/Long;->longValue()J
move-result-wide v6
iget-object v10, v12, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
iget v11, v12, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->requiredSampleTransformation:I
iget-object v8, v12, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->trackEncryptionBoxes:[Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;
iget v9, v12, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->nalUnitLengthFieldLength:I
move-object/from16 v3, v27
move v5, v2
move-object/from16 v16, v8
move/from16 v17, v9
move-wide/from16 v8, v21
move-object/from16 v28, v10
move/from16 v29, v11
move-wide/from16 v10, v23
move-object/from16 v30, v12
.end local v12 # "stsdData":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;
.local v30, "stsdData":Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;
move-object/from16 v12, v28
move-object/from16 v28, v13
.end local v13 # "mdhdData":Landroid/util/Pair;, "Landroid/util/Pair<Ljava/lang/Long;Ljava/lang/String;>;"
.local v28, "mdhdData":Landroid/util/Pair;, "Landroid/util/Pair<Ljava/lang/Long;Ljava/lang/String;>;"
move/from16 v13, v29
move-object/from16 v29, v14
.end local v14 # "stbl":Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;
.local v29, "stbl":Lcom/google/android/exoplayer2/extractor/mp4/Atom$ContainerAtom;
move-object/from16 v14, v16
move/from16 v15, v17
move-object/from16 v16, v25
move-object/from16 v17, v26
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
.line 111
:goto_f7
return-object v3
.end method
.method public static parseUdta(Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;Z)Lcom/google/android/exoplayer2/metadata/Metadata;
.registers 9
.param p0, "udtaAtom" # Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;
.param p1, "isQuickTime" # Z
.line 492
const/4 v0, 0x0
if-eqz p1, :cond_4
.line 495
return-object v0
.line 497
:cond_4
iget-object v1, p0, Lcom/google/android/exoplayer2/extractor/mp4/Atom$LeafAtom;->data:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 498
.local v1, "udtaData":Lcom/google/android/exoplayer2/util/ParsableByteArray;
const/16 v2, 0x8
invoke-virtual {v1, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 499
:goto_b
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->bytesLeft()I
move-result v3
if-lt v3, v2, :cond_31
.line 500
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v3
.line 501
.local v3, "atomPosition":I
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v4
.line 502
.local v4, "atomSize":I
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v5
.line 503
.local v5, "atomType":I
sget v6, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_meta:I
if-ne v5, v6, :cond_2b
.line 504
invoke-virtual {v1, v3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 505
add-int v0, v3, v4
invoke-static {v1, v0}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseUdtaMeta(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)Lcom/google/android/exoplayer2/metadata/Metadata;
move-result-object v0
return-object v0
.line 507
:cond_2b
add-int v6, v3, v4
invoke-virtual {v1, v6}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 508
.end local v3 # "atomPosition":I
.end local v4 # "atomSize":I
.end local v5 # "atomType":I
goto :goto_b
.line 509
:cond_31
return-object v0
.end method
.method private static parseUdtaMeta(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)Lcom/google/android/exoplayer2/metadata/Metadata;
.registers 6
.param p0, "meta" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.param p1, "limit" # I
.line 568
const/16 v0, 0xc
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 569
:goto_5
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v0
if-ge v0, p1, :cond_2b
.line 570
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v0
.line 571
.local v0, "atomPosition":I
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 572
.local v1, "atomSize":I
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v2
.line 573
.local v2, "atomType":I
sget v3, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_ilst:I
if-ne v2, v3, :cond_25
.line 574
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 575
add-int v3, v0, v1
invoke-static {p0, v3}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseIlst(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)Lcom/google/android/exoplayer2/metadata/Metadata;
move-result-object v3
return-object v3
.line 577
:cond_25
add-int v3, v0, v1
invoke-virtual {p0, v3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 578
.end local v0 # "atomPosition":I
.end local v1 # "atomSize":I
.end local v2 # "atomType":I
goto :goto_5
.line 579
:cond_2b
const/4 v0, 0x0
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 39
.param p0, "parent" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.param p1, "atomType" # I
.param p2, "position" # I
.param p3, "size" # I
.param p4, "trackId" # I
.param p5, "rotationDegrees" # I
.param p6, "drmInitData" # Lcom/google/android/exoplayer2/drm/DrmInitData;
.param p7, "out" # Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;
.param p8, "entryIndex" # I
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
.line 827
move-object/from16 v0, p0
move/from16 v1, p2
move/from16 v2, p3
move-object/from16 v3, p6
move-object/from16 v4, p7
add-int/lit8 v5, v1, 0x8
add-int/lit8 v5, v5, 0x8
invoke-virtual {v0, v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 829
const/16 v5, 0x10
invoke-virtual {v0, v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 830
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v5
.line 831
.local v5, "width":I
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v21
.line 832
.local v21, "height":I
const/4 v6, 0x0
.line 833
.local v6, "pixelWidthHeightRatioFromPasp":Z
const/high16 v7, 0x3f800000 # 1.0f
.line 834
.local v7, "pixelWidthHeightRatio":F
const/16 v8, 0x32
invoke-virtual {v0, v8}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 836
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v8
.line 837
.local v8, "childPosition":I
sget v9, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_encv:I
move/from16 v10, p1
if-ne v10, v9, :cond_5c
.line 838
invoke-static {v0, v1, v2}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseSampleEntryEncryptionData(Lcom/google/android/exoplayer2/util/ParsableByteArray;II)Landroid/util/Pair;
move-result-object v9
.line 840
.local v9, "sampleEntryEncryptionData":Landroid/util/Pair;, "Landroid/util/Pair<Ljava/lang/Integer;Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;>;"
if-eqz v9, :cond_55
.line 841
iget-object v11, v9, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast v11, Ljava/lang/Integer;
invoke-virtual {v11}, Ljava/lang/Integer;->intValue()I
move-result v10
.line 842
.end local p1 # "atomType":I
.local v10, "atomType":I
if-nez v3, :cond_42
const/4 v11, 0x0
goto :goto_4c
:cond_42
iget-object v11, v9, Landroid/util/Pair;->second:Ljava/lang/Object;
check-cast v11, Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;
iget-object v11, v11, Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;->schemeType:Ljava/lang/String;
.line 843
invoke-virtual {v3, v11}, Lcom/google/android/exoplayer2/drm/DrmInitData;->copyWithSchemeType(Ljava/lang/String;)Lcom/google/android/exoplayer2/drm/DrmInitData;
move-result-object v11
:goto_4c
move-object v3, v11
.line 844
.end local p6 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.local v3, "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
iget-object v11, v4, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->trackEncryptionBoxes:[Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;
iget-object v12, v9, Landroid/util/Pair;->second:Ljava/lang/Object;
check-cast v12, Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;
aput-object v12, v11, p8
.line 846
:cond_55
invoke-virtual {v0, v8}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
move-object/from16 v22, v3
move v3, v10
goto :goto_5f
.line 837
.end local v3 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.end local v9 # "sampleEntryEncryptionData":Landroid/util/Pair;, "Landroid/util/Pair<Ljava/lang/Integer;Lcom/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox;>;"
.end local v10 # "atomType":I
.restart local p1 # "atomType":I
.restart local p6 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
:cond_5c
move-object/from16 v22, v3
move v3, v10
.line 853
.end local p1 # "atomType":I
.end local p6 # "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
.local v3, "atomType":I
.local v22, "drmInitData":Lcom/google/android/exoplayer2/drm/DrmInitData;
:goto_5f
const/4 v9, 0x0
.line 854
.local v9, "initializationData":Ljava/util/List;, "Ljava/util/List<[B>;"
const/4 v10, 0x0
.line 855
.local v10, "mimeType":Ljava/lang/String;
const/4 v11, 0x0
.line 857
.local v11, "projectionData":[B
const/4 v12, -0x1
move/from16 v23, v6
move/from16 v24, v7
move v15, v8
move-object/from16 v25, v9
move-object/from16 v26, v10
move-object/from16 v27, v11
move/from16 v28, v12
.line 858
.end local v6 # "pixelWidthHeightRatioFromPasp":Z
.end local v7 # "pixelWidthHeightRatio":F
.end local v8 # "childPosition":I
.end local v9 # "initializationData":Ljava/util/List;, "Ljava/util/List<[B>;"
.end local v10 # "mimeType":Ljava/lang/String;
.end local v11 # "projectionData":[B
.local v15, "childPosition":I
.local v23, "pixelWidthHeightRatioFromPasp":Z
.local v24, "pixelWidthHeightRatio":F
.local v25, "initializationData":Ljava/util/List;, "Ljava/util/List<[B>;"
.local v26, "mimeType":Ljava/lang/String;
.local v27, "projectionData":[B
.local v28, "stereoMode":I
:goto_70
sub-int v6, v15, v1
if-ge v6, v2, :cond_173
.line 859
invoke-virtual {v0, v15}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 860
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v6
.line 861
.local v6, "childStartPosition":I
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v7
.line 862
.local v7, "childAtomSize":I
if-nez v7, :cond_8a
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v8
sub-int/2addr v8, v1
if-ne v8, v2, :cond_8a
.line 864
goto/16 :goto_173
.line 866
:cond_8a
const/4 v8, 0x0
const/4 v9, 0x1
if-lez v7, :cond_90
const/4 v10, 0x1
goto :goto_91
:cond_90
const/4 v10, 0x0
:goto_91
const-string v11, "childAtomSize should be positive"
invoke-static {v10, v11}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(ZLjava/lang/Object;)V
.line 867
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v10
.line 868
.local v10, "childAtomType":I
sget v11, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_avcC:I
if-ne v10, v11, :cond_c2
.line 869
if-nez v26, :cond_a1
const/4 v8, 0x1
:cond_a1
invoke-static {v8}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 870
const-string/jumbo v8, "video/avc"
.line 871
.end local v26 # "mimeType":Ljava/lang/String;
.local v8, "mimeType":Ljava/lang/String;
add-int/lit8 v9, v6, 0x8
invoke-virtual {v0, v9}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 872
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 v9
.line 873
.local v9, "avcConfig":Lcom/google/android/exoplayer2/video/AvcConfig;
iget-object v11, v9, Lcom/google/android/exoplayer2/video/AvcConfig;->initializationData:Ljava/util/List;
.line 874
.end local v25 # "initializationData":Ljava/util/List;, "Ljava/util/List<[B>;"
.local v11, "initializationData":Ljava/util/List;, "Ljava/util/List<[B>;"
iget v12, v9, Lcom/google/android/exoplayer2/video/AvcConfig;->nalUnitLengthFieldLength:I
iput v12, v4, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->nalUnitLengthFieldLength:I
.line 875
if-nez v23, :cond_bc
.line 876
iget v12, v9, Lcom/google/android/exoplayer2/video/AvcConfig;->pixelWidthAspectRatio:F
move/from16 v24, v12
.line 878
.end local v9 # "avcConfig":Lcom/google/android/exoplayer2/video/AvcConfig;
:cond_bc
move-object/from16 v26, v8
move-object/from16 v25, v11
goto/16 :goto_170
.end local v8 # "mimeType":Ljava/lang/String;
.end local v11 # "initializationData":Ljava/util/List;, "Ljava/util/List<[B>;"
.restart local v25 # "initializationData":Ljava/util/List;, "Ljava/util/List<[B>;"
.restart local v26 # "mimeType":Ljava/lang/String;
:cond_c2
sget v11, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_hvcC:I
if-ne v10, v11, :cond_e4
.line 879
if-nez v26, :cond_c9
const/4 v8, 0x1
:cond_c9
invoke-static {v8}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 880
const-string/jumbo v8, "video/hevc"
.line 881
.end local v26 # "mimeType":Ljava/lang/String;
.restart local v8 # "mimeType":Ljava/lang/String;
add-int/lit8 v9, v6, 0x8
invoke-virtual {v0, v9}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 882
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 v9
.line 883
.local v9, "hevcConfig":Lcom/google/android/exoplayer2/video/HevcConfig;
iget-object v11, v9, Lcom/google/android/exoplayer2/video/HevcConfig;->initializationData:Ljava/util/List;
.line 884
.end local v25 # "initializationData":Ljava/util/List;, "Ljava/util/List<[B>;"
.restart local v11 # "initializationData":Ljava/util/List;, "Ljava/util/List<[B>;"
iget v12, v9, Lcom/google/android/exoplayer2/video/HevcConfig;->nalUnitLengthFieldLength:I
iput v12, v4, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->nalUnitLengthFieldLength:I
.line 885
.end local v9 # "hevcConfig":Lcom/google/android/exoplayer2/video/HevcConfig;
move-object/from16 v26, v8
move-object/from16 v25, v11
goto/16 :goto_170
.end local v8 # "mimeType":Ljava/lang/String;
.end local v11 # "initializationData":Ljava/util/List;, "Ljava/util/List<[B>;"
.restart local v25 # "initializationData":Ljava/util/List;, "Ljava/util/List<[B>;"
.restart local v26 # "mimeType":Ljava/lang/String;
:cond_e4
sget v11, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_vpcC:I
if-ne v10, v11, :cond_fd
.line 886
if-nez v26, :cond_eb
const/4 v8, 0x1
:cond_eb
invoke-static {v8}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 887
sget v8, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_vp08:I
if-ne v3, v8, :cond_f6
const-string/jumbo v8, "video/x-vnd.on2.vp8"
goto :goto_f9
:cond_f6
const-string/jumbo v8, "video/x-vnd.on2.vp9"
:goto_f9
move-object/from16 v26, v8
.end local v26 # "mimeType":Ljava/lang/String;
.restart local v8 # "mimeType":Ljava/lang/String;
goto/16 :goto_170
.line 888
.end local v8 # "mimeType":Ljava/lang/String;
.restart local v26 # "mimeType":Ljava/lang/String;
:cond_fd
sget v11, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_d263:I
if-ne v10, v11, :cond_10e
.line 889
if-nez v26, :cond_104
const/4 v8, 0x1
:cond_104
invoke-static {v8}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 890
const-string/jumbo v8, "video/3gpp"
move-object/from16 v26, v8
.end local v26 # "mimeType":Ljava/lang/String;
.restart local v8 # "mimeType":Ljava/lang/String;
goto/16 :goto_170
.line 891
.end local v8 # "mimeType":Ljava/lang/String;
.restart local v26 # "mimeType":Ljava/lang/String;
:cond_10e
sget v11, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_esds:I
if-ne v10, v11, :cond_12c
.line 892
if-nez v26, :cond_115
const/4 v8, 0x1
:cond_115
invoke-static {v8}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 893
nop
.line 894
invoke-static {v0, v6}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseEsdsFromParent(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)Landroid/util/Pair;
move-result-object v8
.line 895
.local v8, "mimeTypeAndInitializationData":Landroid/util/Pair;, "Landroid/util/Pair<Ljava/lang/String;[B>;"
iget-object v9, v8, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast v9, Ljava/lang/String;
.line 896
.end local v26 # "mimeType":Ljava/lang/String;
.local v9, "mimeType":Ljava/lang/String;
iget-object v11, v8, Landroid/util/Pair;->second:Ljava/lang/Object;
invoke-static {v11}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
move-result-object v8
.line 897
.end local v25 # "initializationData":Ljava/util/List;, "Ljava/util/List<[B>;"
.local v8, "initializationData":Ljava/util/List;, "Ljava/util/List<[B>;"
move-object/from16 v25, v8
move-object/from16 v26, v9
goto :goto_170
.end local v8 # "initializationData":Ljava/util/List;, "Ljava/util/List<[B>;"
.end local v9 # "mimeType":Ljava/lang/String;
.restart local v25 # "initializationData":Ljava/util/List;, "Ljava/util/List<[B>;"
.restart local v26 # "mimeType":Ljava/lang/String;
:cond_12c
sget v8, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_pasp:I
if-ne v10, v8, :cond_13a
.line 898
invoke-static {v0, v6}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parsePaspFromParent(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)F
move-result v8
.line 899
.end local v24 # "pixelWidthHeightRatio":F
.local v8, "pixelWidthHeightRatio":F
const/4 v9, 0x1
move/from16 v24, v8
move/from16 v23, v9
.end local v23 # "pixelWidthHeightRatioFromPasp":Z
.local v9, "pixelWidthHeightRatioFromPasp":Z
goto :goto_170
.line 900
.end local v8 # "pixelWidthHeightRatio":F
.end local v9 # "pixelWidthHeightRatioFromPasp":Z
.restart local v23 # "pixelWidthHeightRatioFromPasp":Z
.restart local v24 # "pixelWidthHeightRatio":F
:cond_13a
sget v8, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_sv3d:I
if-ne v10, v8, :cond_145
.line 901
invoke-static {v0, v6, v7}, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers;->parseProjFromParent(Lcom/google/android/exoplayer2/util/ParsableByteArray;II)[B
move-result-object v8
move-object/from16 v27, v8
.end local v27 # "projectionData":[B
.local v8, "projectionData":[B
goto :goto_170
.line 902
.end local v8 # "projectionData":[B
.restart local v27 # "projectionData":[B
:cond_145
sget v8, Lcom/google/android/exoplayer2/extractor/mp4/Atom;->TYPE_st3d:I
if-ne v10, v8, :cond_170
.line 903
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v8
.line 904
.local v8, "version":I
const/4 v11, 0x3
invoke-virtual {v0, v11}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 905
if-nez v8, :cond_170
.line 906
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v12
.line 907
.local v12, "layout":I
if-eqz v12, :cond_16d
if-eq v12, v9, :cond_169
const/4 v9, 0x2
if-eq v12, v9, :cond_165
if-eq v12, v11, :cond_161
goto :goto_170
.line 918
:cond_161
const/4 v9, 0x3
.line 919
.end local v28 # "stereoMode":I
.local v9, "stereoMode":I
move/from16 v28, v9
goto :goto_170
.line 915
.end local v9 # "stereoMode":I
.restart local v28 # "stereoMode":I
:cond_165
const/4 v9, 0x2
.line 916
.end local v28 # "stereoMode":I
.restart local v9 # "stereoMode":I
move/from16 v28, v9
goto :goto_170
.line 912
.end local v9 # "stereoMode":I
.restart local v28 # "stereoMode":I
:cond_169
const/4 v9, 0x1
.line 913
.end local v28 # "stereoMode":I
.restart local v9 # "stereoMode":I
move/from16 v28, v9
goto :goto_170
.line 909
.end local v9 # "stereoMode":I
.restart local v28 # "stereoMode":I
:cond_16d
const/4 v9, 0x0
.line 910
.end local v28 # "stereoMode":I
.restart local v9 # "stereoMode":I
move/from16 v28, v9
.line 925
.end local v8 # "version":I
.end local v9 # "stereoMode":I
.end local v12 # "layout":I
.restart local v28 # "stereoMode":I
:cond_170
:goto_170
add-int/2addr v15, v7
.line 926
.end local v6 # "childStartPosition":I
.end local v7 # "childAtomSize":I
.end local v10 # "childAtomType":I
goto/16 :goto_70
.line 929
:cond_173
:goto_173
if-nez v26, :cond_176
.line 930
return-void
.line 933
:cond_176
invoke-static/range {p4 .. p4}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v6
const/4 v8, 0x0
const/4 v9, -0x1
const/4 v10, -0x1
const/high16 v13, -0x40800000 # -1.0f
const/16 v19, 0x0
move-object/from16 v7, v26
move v11, v5
move/from16 v12, v21
move-object/from16 v14, v25
move/from16 v29, v15
.end local v15 # "childPosition":I
.local v29, "childPosition":I
move/from16 v15, p5
move/from16 v16, v24
move-object/from16 v17, v27
move/from16 v18, v28
move-object/from16 v20, v22
invoke-static/range {v6 .. v20}, Lcom/google/android/exoplayer2/Format;->createVideoSampleFormat(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIIFLjava/util/List;IF[BILcom/google/android/exoplayer2/video/ColorInfo;Lcom/google/android/exoplayer2/drm/DrmInitData;)Lcom/google/android/exoplayer2/Format;
move-result-object v6
iput-object v6, v4, Lcom/google/android/exoplayer2/extractor/mp4/AtomParsers$StsdData;->format:Lcom/google/android/exoplayer2/Format;
.line 936
return-void
.end method