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