package com.google.android.exoplayer2.extractor.mp4;

import android.support.v4.media.TransportMediator;
import android.util.Pair;
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.Format;
import com.google.android.exoplayer2.ParserException;
import com.google.android.exoplayer2.drm.DrmInitData;
import com.google.android.exoplayer2.extractor.mp4.Atom;
import com.google.android.exoplayer2.extractor.ts.PsExtractor;
import com.google.android.exoplayer2.metadata.Metadata;
import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.MimeTypes;
import com.google.android.exoplayer2.util.ParsableByteArray;
import com.google.android.exoplayer2.util.Util;
import com.google.android.exoplayer2.video.AvcConfig;
import com.google.android.exoplayer2.video.ColorInfo;
import com.google.android.exoplayer2.video.HevcConfig;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

final class AtomParsers {
    private static final String TAG = "AtomParsers";
    private static final int TYPE_cenc = Util.getIntegerCodeForString(C.CENC_TYPE_cenc);
    private static final int TYPE_clcp = Util.getIntegerCodeForString("clcp");
    private static final int TYPE_meta = Util.getIntegerCodeForString("meta");
    private static final int TYPE_sbtl = Util.getIntegerCodeForString("sbtl");
    private static final int TYPE_soun = Util.getIntegerCodeForString("soun");
    private static final int TYPE_subt = Util.getIntegerCodeForString("subt");
    private static final int TYPE_text = Util.getIntegerCodeForString(MimeTypes.BASE_TYPE_TEXT);
    private static final int TYPE_vide = Util.getIntegerCodeForString("vide");

    private interface SampleSizeBox {
        int getSampleCount();

        boolean isFixedSampleSize();

        int readNextSampleSize();
    }

    public static Track parseTrak(Atom.ContainerAtom containerAtom, Atom.LeafAtom leafAtom, long j, DrmInitData drmInitData, boolean z, boolean z2) throws ParserException {
        long j2;
        Atom.LeafAtom leafAtom2;
        long[] jArr;
        long[] jArr2;
        Atom.ContainerAtom containerAtom2 = containerAtom;
        Atom.ContainerAtom containerAtomOfType = containerAtom2.getContainerAtomOfType(Atom.TYPE_mdia);
        int parseHdlr = parseHdlr(containerAtomOfType.getLeafAtomOfType(Atom.TYPE_hdlr).data);
        if (parseHdlr == -1) {
            return null;
        }
        TkhdData parseTkhd = parseTkhd(containerAtom2.getLeafAtomOfType(Atom.TYPE_tkhd).data);
        long j3 = C.TIME_UNSET;
        if (j == C.TIME_UNSET) {
            leafAtom2 = leafAtom;
            j2 = parseTkhd.duration;
        } else {
            leafAtom2 = leafAtom;
            j2 = j;
        }
        long parseMvhd = parseMvhd(leafAtom2.data);
        if (j2 != C.TIME_UNSET) {
            j3 = Util.scaleLargeTimestamp(j2, C.MICROS_PER_SECOND, parseMvhd);
        }
        long j4 = j3;
        Atom.ContainerAtom containerAtomOfType2 = containerAtomOfType.getContainerAtomOfType(Atom.TYPE_minf).getContainerAtomOfType(Atom.TYPE_stbl);
        Pair<Long, String> parseMdhd = parseMdhd(containerAtomOfType.getLeafAtomOfType(Atom.TYPE_mdhd).data);
        StsdData parseStsd = parseStsd(containerAtomOfType2.getLeafAtomOfType(Atom.TYPE_stsd).data, parseTkhd.id, parseTkhd.rotationDegrees, (String) parseMdhd.second, drmInitData, z2);
        if (!z) {
            Pair<long[], long[]> parseEdts = parseEdts(containerAtom2.getContainerAtomOfType(Atom.TYPE_edts));
            jArr = (long[]) parseEdts.second;
            jArr2 = (long[]) parseEdts.first;
        } else {
            jArr2 = null;
            jArr = null;
        }
        if (parseStsd.format == null) {
            return null;
        }
        return new Track(parseTkhd.id, parseHdlr, ((Long) parseMdhd.first).longValue(), parseMvhd, j4, parseStsd.format, parseStsd.requiredSampleTransformation, parseStsd.trackEncryptionBoxes, parseStsd.nalUnitLengthFieldLength, jArr2, jArr);
    }

    /* JADX WARNING: Removed duplicated region for block: B:100:0x0248  */
    /* JADX WARNING: Removed duplicated region for block: B:201:0x048e  */
    /* JADX WARNING: Removed duplicated region for block: B:44:0x00ce  */
    /* JADX WARNING: Removed duplicated region for block: B:91:0x0203  */
    /* Code decompiled incorrectly, please refer to instructions dump. */
    public static com.google.android.exoplayer2.extractor.mp4.TrackSampleTable parseStbl(com.google.android.exoplayer2.extractor.mp4.Track r48, com.google.android.exoplayer2.extractor.mp4.Atom.ContainerAtom r49, com.google.android.exoplayer2.extractor.GaplessInfoHolder r50) throws com.google.android.exoplayer2.ParserException {
        /*
            r0 = r48
            r1 = r49
            r2 = r50
            int r3 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_stsz
            com.google.android.exoplayer2.extractor.mp4.Atom$LeafAtom r3 = r1.getLeafAtomOfType(r3)
            if (r3 == 0) goto L_0x0014
            com.google.android.exoplayer2.extractor.mp4.AtomParsers$StszSampleSizeBox r4 = new com.google.android.exoplayer2.extractor.mp4.AtomParsers$StszSampleSizeBox
            r4.<init>(r3)
            goto L_0x0021
        L_0x0014:
            int r3 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_stz2
            com.google.android.exoplayer2.extractor.mp4.Atom$LeafAtom r3 = r1.getLeafAtomOfType(r3)
            if (r3 == 0) goto L_0x04ac
            com.google.android.exoplayer2.extractor.mp4.AtomParsers$Stz2SampleSizeBox r4 = new com.google.android.exoplayer2.extractor.mp4.AtomParsers$Stz2SampleSizeBox
            r4.<init>(r3)
        L_0x0021:
            int r3 = r4.getSampleCount()
            r5 = 0
            if (r3 != 0) goto L_0x0038
            com.google.android.exoplayer2.extractor.mp4.TrackSampleTable r0 = new com.google.android.exoplayer2.extractor.mp4.TrackSampleTable
            long[] r7 = new long[r5]
            int[] r8 = new int[r5]
            r9 = 0
            long[] r10 = new long[r5]
            int[] r11 = new int[r5]
            r6 = r0
            r6.<init>(r7, r8, r9, r10, r11)
            return r0
        L_0x0038:
            int r6 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_stco
            com.google.android.exoplayer2.extractor.mp4.Atom$LeafAtom r6 = r1.getLeafAtomOfType(r6)
            r7 = 1
            if (r6 != 0) goto L_0x0049
            int r6 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_co64
            com.google.android.exoplayer2.extractor.mp4.Atom$LeafAtom r6 = r1.getLeafAtomOfType(r6)
            r8 = r7
            goto L_0x004a
        L_0x0049:
            r8 = r5
        L_0x004a:
            com.google.android.exoplayer2.util.ParsableByteArray r6 = r6.data
            int r9 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_stsc
            com.google.android.exoplayer2.extractor.mp4.Atom$LeafAtom r9 = r1.getLeafAtomOfType(r9)
            com.google.android.exoplayer2.util.ParsableByteArray r9 = r9.data
            int r10 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_stts
            com.google.android.exoplayer2.extractor.mp4.Atom$LeafAtom r10 = r1.getLeafAtomOfType(r10)
            com.google.android.exoplayer2.util.ParsableByteArray r10 = r10.data
            int r11 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_stss
            com.google.android.exoplayer2.extractor.mp4.Atom$LeafAtom r11 = r1.getLeafAtomOfType(r11)
            r12 = 0
            if (r11 == 0) goto L_0x0068
            com.google.android.exoplayer2.util.ParsableByteArray r11 = r11.data
            goto L_0x0069
        L_0x0068:
            r11 = r12
        L_0x0069:
            int r13 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_ctts
            com.google.android.exoplayer2.extractor.mp4.Atom$LeafAtom r1 = r1.getLeafAtomOfType(r13)
            if (r1 == 0) goto L_0x0074
            com.google.android.exoplayer2.util.ParsableByteArray r1 = r1.data
            goto L_0x0075
        L_0x0074:
            r1 = r12
        L_0x0075:
            com.google.android.exoplayer2.extractor.mp4.AtomParsers$ChunkIterator r13 = new com.google.android.exoplayer2.extractor.mp4.AtomParsers$ChunkIterator
            r13.<init>(r9, r6, r8)
            r6 = 12
            r10.setPosition(r6)
            int r8 = r10.readUnsignedIntToInt()
            int r8 = r8 - r7
            int r9 = r10.readUnsignedIntToInt()
            int r14 = r10.readUnsignedIntToInt()
            if (r1 == 0) goto L_0x0096
            r1.setPosition(r6)
            int r15 = r1.readUnsignedIntToInt()
            goto L_0x0097
        L_0x0096:
            r15 = r5
        L_0x0097:
            r16 = -1
            if (r11 == 0) goto L_0x00ab
            r11.setPosition(r6)
            int r6 = r11.readUnsignedIntToInt()
            if (r6 <= 0) goto L_0x00ad
            int r12 = r11.readUnsignedIntToInt()
            int r16 = r12 + -1
            goto L_0x00ac
        L_0x00ab:
            r6 = r5
        L_0x00ac:
            r12 = r11
        L_0x00ad:
            boolean r11 = r4.isFixedSampleSize()
            if (r11 == 0) goto L_0x00c7
            com.google.android.exoplayer2.Format r11 = r0.format
            java.lang.String r11 = r11.sampleMimeType
            java.lang.String r5 = "audio/raw"
            boolean r5 = r5.equals(r11)
            if (r5 == 0) goto L_0x00c7
            if (r8 != 0) goto L_0x00c7
            if (r15 != 0) goto L_0x00c7
            if (r6 != 0) goto L_0x00c7
            r5 = r7
            goto L_0x00c8
        L_0x00c7:
            r5 = 0
        L_0x00c8:
            java.lang.String r11 = "AtomParsers"
            r18 = 0
            if (r5 != 0) goto L_0x0203
            long[] r5 = new long[r3]
            int[] r7 = new int[r3]
            r49 = r6
            long[] r6 = new long[r3]
            r21 = r8
            int[] r8 = new int[r3]
            r23 = r10
            r2 = r14
            r25 = r18
            r27 = r25
            r14 = r21
            r0 = 0
            r10 = 0
            r21 = 0
            r22 = 0
            r24 = 0
            r47 = r9
            r9 = r49
            r49 = r11
            r11 = r16
            r16 = r15
            r15 = r47
        L_0x00f7:
            if (r0 >= r3) goto L_0x018c
        L_0x00f9:
            if (r22 != 0) goto L_0x0113
            boolean r22 = r13.moveNext()
            com.google.android.exoplayer2.util.Assertions.checkState(r22)
            r29 = r14
            r30 = r15
            long r14 = r13.offset
            r25 = r14
            int r14 = r13.numSamples
            r22 = r14
            r14 = r29
            r15 = r30
            goto L_0x00f9
        L_0x0113:
            r29 = r14
            r30 = r15
            if (r1 == 0) goto L_0x012a
        L_0x0119:
            if (r21 != 0) goto L_0x0128
            if (r16 <= 0) goto L_0x0128
            int r21 = r1.readUnsignedIntToInt()
            int r24 = r1.readInt()
            int r16 = r16 + -1
            goto L_0x0119
        L_0x0128:
            int r21 = r21 + -1
        L_0x012a:
            r14 = r24
            r5[r0] = r25
            int r15 = r4.readNextSampleSize()
            r7[r0] = r15
            r15 = r7[r0]
            if (r15 <= r10) goto L_0x013a
            r10 = r7[r0]
        L_0x013a:
            r24 = r3
            r15 = r4
            long r3 = (long) r14
            long r3 = r27 + r3
            r6[r0] = r3
            if (r12 != 0) goto L_0x0146
            r3 = 1
            goto L_0x0147
        L_0x0146:
            r3 = 0
        L_0x0147:
            r8[r0] = r3
            if (r0 != r11) goto L_0x0158
            r3 = 1
            r8[r0] = r3
            int r9 = r9 + -1
            if (r9 <= 0) goto L_0x0158
            int r4 = r12.readUnsignedIntToInt()
            int r4 = r4 - r3
            r11 = r4
        L_0x0158:
            long r3 = (long) r2
            long r27 = r27 + r3
            int r3 = r30 + -1
            if (r3 != 0) goto L_0x0172
            if (r29 <= 0) goto L_0x0172
            int r2 = r23.readUnsignedIntToInt()
            int r3 = r23.readUnsignedIntToInt()
            int r4 = r29 + -1
            r29 = r4
            r47 = r3
            r3 = r2
            r2 = r47
        L_0x0172:
            r4 = r7[r0]
            r30 = r2
            r31 = r3
            long r2 = (long) r4
            long r25 = r25 + r2
            int r22 = r22 + -1
            int r0 = r0 + 1
            r4 = r15
            r3 = r24
            r2 = r30
            r15 = r31
            r24 = r14
            r14 = r29
            goto L_0x00f7
        L_0x018c:
            r24 = r3
            r29 = r14
            r30 = r15
            if (r21 != 0) goto L_0x0196
            r0 = 1
            goto L_0x0197
        L_0x0196:
            r0 = 0
        L_0x0197:
            com.google.android.exoplayer2.util.Assertions.checkArgument(r0)
        L_0x019a:
            if (r16 <= 0) goto L_0x01ae
            int r0 = r1.readUnsignedIntToInt()
            if (r0 != 0) goto L_0x01a4
            r0 = 1
            goto L_0x01a5
        L_0x01a4:
            r0 = 0
        L_0x01a5:
            com.google.android.exoplayer2.util.Assertions.checkArgument(r0)
            r1.readInt()
            int r16 = r16 + -1
            goto L_0x019a
        L_0x01ae:
            if (r9 != 0) goto L_0x01be
            if (r30 != 0) goto L_0x01be
            r0 = r22
            if (r0 != 0) goto L_0x01c0
            if (r29 == 0) goto L_0x01b9
            goto L_0x01c0
        L_0x01b9:
            r2 = r48
            r1 = r49
            goto L_0x01fe
        L_0x01be:
            r0 = r22
        L_0x01c0:
            java.lang.StringBuilder r1 = new java.lang.StringBuilder
            r1.<init>()
            java.lang.String r2 = "Inconsistent stbl box for track "
            r1.append(r2)
            r2 = r48
            int r3 = r2.id
            r1.append(r3)
            java.lang.String r3 = ": remainingSynchronizationSamples "
            r1.append(r3)
            r1.append(r9)
            java.lang.String r3 = ", remainingSamplesAtTimestampDelta "
            r1.append(r3)
            r9 = r30
            r1.append(r9)
            java.lang.String r3 = ", remainingSamplesInChunk "
            r1.append(r3)
            r1.append(r0)
            java.lang.String r0 = ", remainingTimestampDeltaChanges "
            r1.append(r0)
            r0 = r29
            r1.append(r0)
            java.lang.String r0 = r1.toString()
            r1 = r49
            android.util.Log.w(r1, r0)
        L_0x01fe:
            r12 = r5
            r15 = r6
            r13 = r7
            r14 = r10
            goto L_0x023c
        L_0x0203:
            r2 = r0
            r24 = r3
            r15 = r4
            r1 = r11
            int r0 = r13.length
            long[] r0 = new long[r0]
            int r3 = r13.length
            int[] r3 = new int[r3]
        L_0x0210:
            boolean r4 = r13.moveNext()
            if (r4 == 0) goto L_0x0223
            int r4 = r13.index
            long r5 = r13.offset
            r0[r4] = r5
            int r4 = r13.index
            int r5 = r13.numSamples
            r3[r4] = r5
            goto L_0x0210
        L_0x0223:
            int r4 = r15.readNextSampleSize()
            long r5 = (long) r14
            com.google.android.exoplayer2.extractor.mp4.FixedSampleSizeRechunker$Results r0 = com.google.android.exoplayer2.extractor.mp4.FixedSampleSizeRechunker.rechunk(r4, r0, r3, r5)
            long[] r5 = r0.offsets
            int[] r7 = r0.sizes
            int r10 = r0.maximumSize
            long[] r6 = r0.timestamps
            int[] r8 = r0.flags
            r12 = r5
            r15 = r6
            r13 = r7
            r14 = r10
            r27 = r18
        L_0x023c:
            long[] r0 = r2.editListDurations
            if (r0 == 0) goto L_0x048e
            boolean r0 = r50.hasGaplessInfo()
            if (r0 == 0) goto L_0x0248
            goto L_0x048e
        L_0x0248:
            long[] r0 = r2.editListDurations
            int r0 = r0.length
            r5 = 1
            if (r0 != r5) goto L_0x02d6
            int r0 = r2.type
            if (r0 != r5) goto L_0x02d6
            int r0 = r15.length
            r5 = 2
            if (r0 < r5) goto L_0x02d6
            long[] r0 = r2.editListMediaTimes
            r5 = 0
            r6 = r0[r5]
            long[] r0 = r2.editListDurations
            r29 = r0[r5]
            long r9 = r2.timescale
            long r3 = r2.movieTimescale
            r31 = r9
            r33 = r3
            long r3 = com.google.android.exoplayer2.util.Util.scaleLargeTimestamp(r29, r31, r33)
            long r3 = r3 + r6
            r9 = r15[r5]
            int r0 = (r9 > r6 ? 1 : (r9 == r6 ? 0 : -1))
            if (r0 > 0) goto L_0x02d6
            r0 = 1
            r9 = r15[r0]
            int r5 = (r6 > r9 ? 1 : (r6 == r9 ? 0 : -1))
            if (r5 >= 0) goto L_0x02d6
            int r5 = r15.length
            int r5 = r5 - r0
            r9 = r15[r5]
            int r0 = (r9 > r3 ? 1 : (r9 == r3 ? 0 : -1))
            if (r0 >= 0) goto L_0x02d6
            int r0 = (r3 > r27 ? 1 : (r3 == r27 ? 0 : -1))
            if (r0 > 0) goto L_0x02d6
            long r29 = r27 - r3
            r0 = 0
            r3 = r15[r0]
            long r31 = r6 - r3
            com.google.android.exoplayer2.Format r0 = r2.format
            int r0 = r0.sampleRate
            long r3 = (long) r0
            long r5 = r2.timescale
            r33 = r3
            r35 = r5
            long r3 = com.google.android.exoplayer2.util.Util.scaleLargeTimestamp(r31, r33, r35)
            com.google.android.exoplayer2.Format r0 = r2.format
            int r0 = r0.sampleRate
            long r5 = (long) r0
            long r9 = r2.timescale
            r31 = r5
            r33 = r9
            long r5 = com.google.android.exoplayer2.util.Util.scaleLargeTimestamp(r29, r31, r33)
            int r0 = (r3 > r18 ? 1 : (r3 == r18 ? 0 : -1))
            if (r0 != 0) goto L_0x02b2
            int r0 = (r5 > r18 ? 1 : (r5 == r18 ? 0 : -1))
            if (r0 == 0) goto L_0x02d6
        L_0x02b2:
            r9 = 2147483647(0x7fffffff, double:1.060997895E-314)
            int r0 = (r3 > r9 ? 1 : (r3 == r9 ? 0 : -1))
            if (r0 > 0) goto L_0x02d6
            int r0 = (r5 > r9 ? 1 : (r5 == r9 ? 0 : -1))
            if (r0 > 0) goto L_0x02d6
            int r0 = (int) r3
            r1 = r50
            r1.encoderDelay = r0
            int r0 = (int) r5
            r1.encoderPadding = r0
            long r0 = r2.timescale
            r2 = 1000000(0xf4240, double:4.940656E-318)
            com.google.android.exoplayer2.util.Util.scaleLargeTimestampsInPlace(r15, r2, r0)
            com.google.android.exoplayer2.extractor.mp4.TrackSampleTable r0 = new com.google.android.exoplayer2.extractor.mp4.TrackSampleTable
            r11 = r0
            r16 = r8
            r11.<init>(r12, r13, r14, r15, r16)
            return r0
        L_0x02d6:
            long[] r0 = r2.editListDurations
            int r0 = r0.length
            r3 = 1
            if (r0 != r3) goto L_0x030e
            long[] r0 = r2.editListDurations
            r17 = 0
            r3 = r0[r17]
            int r0 = (r3 > r18 ? 1 : (r3 == r18 ? 0 : -1))
            if (r0 != 0) goto L_0x030e
            r0 = r17
        L_0x02e8:
            int r1 = r15.length
            if (r0 >= r1) goto L_0x0305
            r3 = r15[r0]
            long[] r1 = r2.editListMediaTimes
            r5 = r1[r17]
            long r18 = r3 - r5
            r20 = 1000000(0xf4240, double:4.940656E-318)
            long r3 = r2.timescale
            r22 = r3
            long r3 = com.google.android.exoplayer2.util.Util.scaleLargeTimestamp(r18, r20, r22)
            r15[r0] = r3
            int r0 = r0 + 1
            r17 = 0
            goto L_0x02e8
        L_0x0305:
            com.google.android.exoplayer2.extractor.mp4.TrackSampleTable r0 = new com.google.android.exoplayer2.extractor.mp4.TrackSampleTable
            r11 = r0
            r16 = r8
            r11.<init>(r12, r13, r14, r15, r16)
            return r0
        L_0x030e:
            int r0 = r2.type
            r3 = 1
            if (r0 != r3) goto L_0x0315
            r3 = 1
            goto L_0x0316
        L_0x0315:
            r3 = 0
        L_0x0316:
            r0 = 0
            r4 = 0
            r5 = 0
            r6 = 0
        L_0x031a:
            long[] r7 = r2.editListDurations
            int r7 = r7.length
            r9 = -1
            if (r5 >= r7) goto L_0x0360
            long[] r7 = r2.editListMediaTimes
            r49 = r13
            r16 = r14
            r13 = r7[r5]
            int r7 = (r13 > r9 ? 1 : (r13 == r9 ? 0 : -1))
            if (r7 == 0) goto L_0x0355
            long[] r7 = r2.editListDurations
            r25 = r7[r5]
            long r9 = r2.timescale
            r23 = r8
            long r7 = r2.movieTimescale
            r27 = r9
            r29 = r7
            long r7 = com.google.android.exoplayer2.util.Util.scaleLargeTimestamp(r25, r27, r29)
            r9 = 1
            int r10 = com.google.android.exoplayer2.util.Util.binarySearchCeil((long[]) r15, (long) r13, (boolean) r9, (boolean) r9)
            long r13 = r13 + r7
            r7 = 0
            int r8 = com.google.android.exoplayer2.util.Util.binarySearchCeil((long[]) r15, (long) r13, (boolean) r3, (boolean) r7)
            int r7 = r8 - r10
            int r4 = r4 + r7
            if (r6 == r10) goto L_0x0351
            r6 = 1
            goto L_0x0352
        L_0x0351:
            r6 = 0
        L_0x0352:
            r0 = r0 | r6
            r6 = r8
            goto L_0x0357
        L_0x0355:
            r23 = r8
        L_0x0357:
            int r5 = r5 + 1
            r13 = r49
            r14 = r16
            r8 = r23
            goto L_0x031a
        L_0x0360:
            r23 = r8
            r49 = r13
            r16 = r14
            r5 = r24
            if (r4 == r5) goto L_0x036c
            r5 = 1
            goto L_0x036d
        L_0x036c:
            r5 = 0
        L_0x036d:
            r0 = r0 | r5
            if (r0 == 0) goto L_0x0373
            long[] r5 = new long[r4]
            goto L_0x0374
        L_0x0373:
            r5 = r12
        L_0x0374:
            if (r0 == 0) goto L_0x0379
            int[] r6 = new int[r4]
            goto L_0x037b
        L_0x0379:
            r6 = r49
        L_0x037b:
            if (r0 == 0) goto L_0x037f
            r7 = 0
            goto L_0x0381
        L_0x037f:
            r7 = r16
        L_0x0381:
            if (r0 == 0) goto L_0x0386
            int[] r8 = new int[r4]
            goto L_0x0388
        L_0x0386:
            r8 = r23
        L_0x0388:
            long[] r4 = new long[r4]
            r27 = r7
            r7 = 0
            r11 = 0
        L_0x038e:
            long[] r13 = r2.editListDurations
            int r13 = r13.length
            if (r7 >= r13) goto L_0x0443
            long[] r13 = r2.editListMediaTimes
            r9 = r13[r7]
            long[] r13 = r2.editListDurations
            r38 = r13[r7]
            r13 = -1
            int r24 = (r9 > r13 ? 1 : (r9 == r13 ? 0 : -1))
            if (r24 == 0) goto L_0x0423
            long r13 = r2.timescale
            r40 = r7
            r50 = r8
            long r7 = r2.movieTimescale
            r32 = r38
            r34 = r13
            r36 = r7
            long r7 = com.google.android.exoplayer2.util.Util.scaleLargeTimestamp(r32, r34, r36)
            long r7 = r7 + r9
            r13 = 1
            int r14 = com.google.android.exoplayer2.util.Util.binarySearchCeil((long[]) r15, (long) r9, (boolean) r13, (boolean) r13)
            r13 = 0
            int r7 = com.google.android.exoplayer2.util.Util.binarySearchCeil((long[]) r15, (long) r7, (boolean) r3, (boolean) r13)
            if (r0 == 0) goto L_0x03d6
            int r8 = r7 - r14
            java.lang.System.arraycopy(r12, r14, r5, r11, r8)
            r13 = r49
            java.lang.System.arraycopy(r13, r14, r6, r11, r8)
            r32 = r3
            r3 = r23
            r23 = r5
            r5 = r50
            java.lang.System.arraycopy(r3, r14, r5, r11, r8)
            goto L_0x03e0
        L_0x03d6:
            r13 = r49
            r32 = r3
            r3 = r23
            r23 = r5
            r5 = r50
        L_0x03e0:
            r8 = r27
        L_0x03e2:
            if (r14 >= r7) goto L_0x041c
            r26 = 1000000(0xf4240, double:4.940656E-318)
            r49 = r12
            r33 = r13
            long r12 = r2.movieTimescale
            r24 = r18
            r28 = r12
            long r12 = com.google.android.exoplayer2.util.Util.scaleLargeTimestamp(r24, r26, r28)
            r24 = r15[r14]
            long r41 = r24 - r9
            r43 = 1000000(0xf4240, double:4.940656E-318)
            r24 = r9
            long r9 = r2.timescale
            r45 = r9
            long r9 = com.google.android.exoplayer2.util.Util.scaleLargeTimestamp(r41, r43, r45)
            long r12 = r12 + r9
            r4[r11] = r12
            if (r0 == 0) goto L_0x0411
            r9 = r6[r11]
            if (r9 <= r8) goto L_0x0411
            r8 = r33[r14]
        L_0x0411:
            int r11 = r11 + 1
            int r14 = r14 + 1
            r12 = r49
            r9 = r24
            r13 = r33
            goto L_0x03e2
        L_0x041c:
            r49 = r12
            r33 = r13
            r27 = r8
            goto L_0x0430
        L_0x0423:
            r33 = r49
            r32 = r3
            r40 = r7
            r49 = r12
            r3 = r23
            r23 = r5
            r5 = r8
        L_0x0430:
            long r18 = r18 + r38
            int r7 = r40 + 1
            r12 = r49
            r8 = r5
            r5 = r23
            r49 = r33
            r9 = -1
            r23 = r3
            r3 = r32
            goto L_0x038e
        L_0x0443:
            r33 = r49
            r49 = r12
            r3 = r23
            r23 = r5
            r5 = r8
            r0 = 0
            r7 = 0
        L_0x044e:
            int r8 = r5.length
            if (r0 >= r8) goto L_0x0460
            if (r7 != 0) goto L_0x0460
            r8 = r5[r0]
            r9 = 1
            r8 = r8 & r9
            if (r8 == 0) goto L_0x045b
            r8 = r9
            goto L_0x045c
        L_0x045b:
            r8 = 0
        L_0x045c:
            r7 = r7 | r8
            int r0 = r0 + 1
            goto L_0x044e
        L_0x0460:
            if (r7 != 0) goto L_0x047e
            java.lang.String r0 = "Ignoring edit list: Edited sample sequence does not contain a sync sample."
            android.util.Log.w(r1, r0)
            long r0 = r2.timescale
            r4 = 1000000(0xf4240, double:4.940656E-318)
            com.google.android.exoplayer2.util.Util.scaleLargeTimestampsInPlace(r15, r4, r0)
            com.google.android.exoplayer2.extractor.mp4.TrackSampleTable r0 = new com.google.android.exoplayer2.extractor.mp4.TrackSampleTable
            r11 = r0
            r12 = r49
            r13 = r33
            r14 = r16
            r16 = r3
            r11.<init>(r12, r13, r14, r15, r16)
            return r0
        L_0x047e:
            com.google.android.exoplayer2.extractor.mp4.TrackSampleTable r0 = new com.google.android.exoplayer2.extractor.mp4.TrackSampleTable
            r24 = r0
            r25 = r23
            r26 = r6
            r28 = r4
            r29 = r5
            r24.<init>(r25, r26, r27, r28, r29)
            return r0
        L_0x048e:
            r3 = r8
            r49 = r12
            r33 = r13
            r16 = r14
            long r0 = r2.timescale
            r4 = 1000000(0xf4240, double:4.940656E-318)
            com.google.android.exoplayer2.util.Util.scaleLargeTimestampsInPlace(r15, r4, r0)
            com.google.android.exoplayer2.extractor.mp4.TrackSampleTable r0 = new com.google.android.exoplayer2.extractor.mp4.TrackSampleTable
            r11 = r0
            r12 = r49
            r13 = r33
            r14 = r16
            r16 = r3
            r11.<init>(r12, r13, r14, r15, r16)
            return r0
        L_0x04ac:
            com.google.android.exoplayer2.ParserException r0 = new com.google.android.exoplayer2.ParserException
            java.lang.String r1 = "Track has no sample table size information"
            r0.<init>((java.lang.String) r1)
            throw r0
        */
        throw new UnsupportedOperationException("Method not decompiled: com.google.android.exoplayer2.extractor.mp4.AtomParsers.parseStbl(com.google.android.exoplayer2.extractor.mp4.Track, com.google.android.exoplayer2.extractor.mp4.Atom$ContainerAtom, com.google.android.exoplayer2.extractor.GaplessInfoHolder):com.google.android.exoplayer2.extractor.mp4.TrackSampleTable");
    }

    public static Metadata parseUdta(Atom.LeafAtom leafAtom, boolean z) {
        if (z) {
            return null;
        }
        ParsableByteArray parsableByteArray = leafAtom.data;
        parsableByteArray.setPosition(8);
        while (parsableByteArray.bytesLeft() >= 8) {
            int position = parsableByteArray.getPosition();
            int readInt = parsableByteArray.readInt();
            if (parsableByteArray.readInt() == Atom.TYPE_meta) {
                parsableByteArray.setPosition(position);
                return parseMetaAtom(parsableByteArray, position + readInt);
            }
            parsableByteArray.skipBytes(readInt - 8);
        }
        return null;
    }

    private static Metadata parseMetaAtom(ParsableByteArray parsableByteArray, int i) {
        parsableByteArray.skipBytes(12);
        while (parsableByteArray.getPosition() < i) {
            int position = parsableByteArray.getPosition();
            int readInt = parsableByteArray.readInt();
            if (parsableByteArray.readInt() == Atom.TYPE_ilst) {
                parsableByteArray.setPosition(position);
                return parseIlst(parsableByteArray, position + readInt);
            }
            parsableByteArray.skipBytes(readInt - 8);
        }
        return null;
    }

    private static Metadata parseIlst(ParsableByteArray parsableByteArray, int i) {
        parsableByteArray.skipBytes(8);
        ArrayList arrayList = new ArrayList();
        while (parsableByteArray.getPosition() < i) {
            Metadata.Entry parseIlstElement = MetadataUtil.parseIlstElement(parsableByteArray);
            if (parseIlstElement != null) {
                arrayList.add(parseIlstElement);
            }
        }
        if (arrayList.isEmpty()) {
            return null;
        }
        return new Metadata((List<? extends Metadata.Entry>) arrayList);
    }

    private static long parseMvhd(ParsableByteArray parsableByteArray) {
        int i = 8;
        parsableByteArray.setPosition(8);
        if (Atom.parseFullAtomVersion(parsableByteArray.readInt()) != 0) {
            i = 16;
        }
        parsableByteArray.skipBytes(i);
        return parsableByteArray.readUnsignedInt();
    }

    private static TkhdData parseTkhd(ParsableByteArray parsableByteArray) {
        boolean z;
        int i = 8;
        parsableByteArray.setPosition(8);
        int parseFullAtomVersion = Atom.parseFullAtomVersion(parsableByteArray.readInt());
        parsableByteArray.skipBytes(parseFullAtomVersion == 0 ? 8 : 16);
        int readInt = parsableByteArray.readInt();
        parsableByteArray.skipBytes(4);
        int position = parsableByteArray.getPosition();
        if (parseFullAtomVersion == 0) {
            i = 4;
        }
        int i2 = 0;
        int i3 = 0;
        while (true) {
            if (i3 >= i) {
                z = true;
                break;
            } else if (parsableByteArray.data[position + i3] != -1) {
                z = false;
                break;
            } else {
                i3++;
            }
        }
        long j = C.TIME_UNSET;
        if (z) {
            parsableByteArray.skipBytes(i);
        } else {
            long readUnsignedInt = parseFullAtomVersion == 0 ? parsableByteArray.readUnsignedInt() : parsableByteArray.readUnsignedLongToLong();
            if (readUnsignedInt != 0) {
                j = readUnsignedInt;
            }
        }
        parsableByteArray.skipBytes(16);
        int readInt2 = parsableByteArray.readInt();
        int readInt3 = parsableByteArray.readInt();
        parsableByteArray.skipBytes(4);
        int readInt4 = parsableByteArray.readInt();
        int readInt5 = parsableByteArray.readInt();
        if (readInt2 == 0 && readInt3 == 65536 && readInt4 == -65536 && readInt5 == 0) {
            i2 = 90;
        } else if (readInt2 == 0 && readInt3 == -65536 && readInt4 == 65536 && readInt5 == 0) {
            i2 = 270;
        } else if (readInt2 == -65536 && readInt3 == 0 && readInt4 == 0 && readInt5 == -65536) {
            i2 = 180;
        }
        return new TkhdData(readInt, j, i2);
    }

    private static int parseHdlr(ParsableByteArray parsableByteArray) {
        parsableByteArray.setPosition(16);
        int readInt = parsableByteArray.readInt();
        if (readInt == TYPE_soun) {
            return 1;
        }
        if (readInt == TYPE_vide) {
            return 2;
        }
        if (readInt == TYPE_text || readInt == TYPE_sbtl || readInt == TYPE_subt || readInt == TYPE_clcp) {
            return 3;
        }
        return readInt == TYPE_meta ? 4 : -1;
    }

    private static Pair<Long, String> parseMdhd(ParsableByteArray parsableByteArray) {
        int i = 8;
        parsableByteArray.setPosition(8);
        int parseFullAtomVersion = Atom.parseFullAtomVersion(parsableByteArray.readInt());
        parsableByteArray.skipBytes(parseFullAtomVersion == 0 ? 8 : 16);
        long readUnsignedInt = parsableByteArray.readUnsignedInt();
        if (parseFullAtomVersion == 0) {
            i = 4;
        }
        parsableByteArray.skipBytes(i);
        int readUnsignedShort = parsableByteArray.readUnsignedShort();
        return Pair.create(Long.valueOf(readUnsignedInt), "" + ((char) (((readUnsignedShort >> 10) & 31) + 96)) + ((char) (((readUnsignedShort >> 5) & 31) + 96)) + ((char) ((readUnsignedShort & 31) + 96)));
    }

    private static StsdData parseStsd(ParsableByteArray parsableByteArray, int i, int i2, String str, DrmInitData drmInitData, boolean z) throws ParserException {
        ParsableByteArray parsableByteArray2 = parsableByteArray;
        parsableByteArray2.setPosition(12);
        int readInt = parsableByteArray.readInt();
        StsdData stsdData = new StsdData(readInt);
        for (int i3 = 0; i3 < readInt; i3++) {
            int position = parsableByteArray.getPosition();
            int readInt2 = parsableByteArray.readInt();
            Assertions.checkArgument(readInt2 > 0, "childAtomSize should be positive");
            int readInt3 = parsableByteArray.readInt();
            if (readInt3 == Atom.TYPE_avc1 || readInt3 == Atom.TYPE_avc3 || readInt3 == Atom.TYPE_encv || readInt3 == Atom.TYPE_mp4v || readInt3 == Atom.TYPE_hvc1 || readInt3 == Atom.TYPE_hev1 || readInt3 == Atom.TYPE_s263 || readInt3 == Atom.TYPE_vp08 || readInt3 == Atom.TYPE_vp09) {
                parseVideoSampleEntry(parsableByteArray, readInt3, position, readInt2, i, i2, drmInitData, stsdData, i3);
            } else if (readInt3 == Atom.TYPE_mp4a || readInt3 == Atom.TYPE_enca || readInt3 == Atom.TYPE_ac_3 || readInt3 == Atom.TYPE_ec_3 || readInt3 == Atom.TYPE_dtsc || readInt3 == Atom.TYPE_dtse || readInt3 == Atom.TYPE_dtsh || readInt3 == Atom.TYPE_dtsl || readInt3 == Atom.TYPE_samr || readInt3 == Atom.TYPE_sawb || readInt3 == Atom.TYPE_lpcm || readInt3 == Atom.TYPE_sowt || readInt3 == Atom.TYPE__mp3 || readInt3 == Atom.TYPE_alac) {
                parseAudioSampleEntry(parsableByteArray, readInt3, position, readInt2, i, str, z, drmInitData, stsdData, i3);
            } else if (readInt3 == Atom.TYPE_TTML || readInt3 == Atom.TYPE_tx3g || readInt3 == Atom.TYPE_wvtt || readInt3 == Atom.TYPE_stpp || readInt3 == Atom.TYPE_c608) {
                parseTextSampleEntry(parsableByteArray, readInt3, position, readInt2, i, str, stsdData);
            } else if (readInt3 == Atom.TYPE_camm) {
                stsdData.format = Format.createSampleFormat(Integer.toString(i), MimeTypes.APPLICATION_CAMERA_MOTION, (String) null, -1, (DrmInitData) null);
            }
            parsableByteArray2.setPosition(position + readInt2);
        }
        return stsdData;
    }

    private static void parseTextSampleEntry(ParsableByteArray parsableByteArray, int i, int i2, int i3, int i4, String str, StsdData stsdData) throws ParserException {
        ParsableByteArray parsableByteArray2 = parsableByteArray;
        int i5 = i;
        StsdData stsdData2 = stsdData;
        parsableByteArray2.setPosition(i2 + 8 + 8);
        int i6 = Atom.TYPE_TTML;
        String str2 = MimeTypes.APPLICATION_TTML;
        List list = null;
        long j = Long.MAX_VALUE;
        if (i5 != i6) {
            if (i5 == Atom.TYPE_tx3g) {
                int i7 = (i3 - 8) - 8;
                byte[] bArr = new byte[i7];
                parsableByteArray2.readBytes(bArr, 0, i7);
                list = Collections.singletonList(bArr);
                str2 = MimeTypes.APPLICATION_TX3G;
            } else if (i5 == Atom.TYPE_wvtt) {
                str2 = MimeTypes.APPLICATION_MP4VTT;
            } else if (i5 == Atom.TYPE_stpp) {
                j = 0;
            } else if (i5 == Atom.TYPE_c608) {
                stsdData2.requiredSampleTransformation = 1;
                str2 = MimeTypes.APPLICATION_MP4CEA608;
            } else {
                throw new IllegalStateException();
            }
        }
        stsdData2.format = Format.createTextSampleFormat(Integer.toString(i4), str2, (String) null, -1, 0, str, -1, (DrmInitData) null, j, list);
    }

    private static void parseVideoSampleEntry(ParsableByteArray parsableByteArray, int i, int i2, int i3, int i4, int i5, DrmInitData drmInitData, StsdData stsdData, int i6) throws ParserException {
        ParsableByteArray parsableByteArray2 = parsableByteArray;
        int i7 = i2;
        int i8 = i3;
        DrmInitData drmInitData2 = drmInitData;
        StsdData stsdData2 = stsdData;
        parsableByteArray2.setPosition(i7 + 8 + 8);
        parsableByteArray2.skipBytes(16);
        int readUnsignedShort = parsableByteArray.readUnsignedShort();
        int readUnsignedShort2 = parsableByteArray.readUnsignedShort();
        parsableByteArray2.skipBytes(50);
        int position = parsableByteArray.getPosition();
        String str = null;
        int i9 = i;
        if (i9 == Atom.TYPE_encv) {
            Pair<Integer, TrackEncryptionBox> parseSampleEntryEncryptionData = parseSampleEntryEncryptionData(parsableByteArray2, i7, i8);
            if (parseSampleEntryEncryptionData != null) {
                i9 = ((Integer) parseSampleEntryEncryptionData.first).intValue();
                if (drmInitData2 == null) {
                    drmInitData2 = null;
                } else {
                    drmInitData2 = drmInitData2.copyWithSchemeType(((TrackEncryptionBox) parseSampleEntryEncryptionData.second).schemeType);
                }
                stsdData2.trackEncryptionBoxes[i6] = (TrackEncryptionBox) parseSampleEntryEncryptionData.second;
            }
            parsableByteArray2.setPosition(position);
        }
        DrmInitData drmInitData3 = drmInitData2;
        int i10 = -1;
        List<byte[]> list = null;
        byte[] bArr = null;
        float f = 1.0f;
        boolean z = false;
        while (position - i7 < i8) {
            parsableByteArray2.setPosition(position);
            int position2 = parsableByteArray.getPosition();
            int readInt = parsableByteArray.readInt();
            if (readInt == 0 && parsableByteArray.getPosition() - i7 == i8) {
                break;
            }
            Assertions.checkArgument(readInt > 0, "childAtomSize should be positive");
            int readInt2 = parsableByteArray.readInt();
            if (readInt2 == Atom.TYPE_avcC) {
                Assertions.checkState(str == null);
                parsableByteArray2.setPosition(position2 + 8);
                AvcConfig parse = AvcConfig.parse(parsableByteArray);
                list = parse.initializationData;
                stsdData2.nalUnitLengthFieldLength = parse.nalUnitLengthFieldLength;
                if (!z) {
                    f = parse.pixelWidthAspectRatio;
                }
                str = MimeTypes.VIDEO_H264;
            } else if (readInt2 == Atom.TYPE_hvcC) {
                Assertions.checkState(str == null);
                parsableByteArray2.setPosition(position2 + 8);
                HevcConfig parse2 = HevcConfig.parse(parsableByteArray);
                list = parse2.initializationData;
                stsdData2.nalUnitLengthFieldLength = parse2.nalUnitLengthFieldLength;
                str = MimeTypes.VIDEO_H265;
            } else if (readInt2 == Atom.TYPE_vpcC) {
                Assertions.checkState(str == null);
                str = i9 == Atom.TYPE_vp08 ? MimeTypes.VIDEO_VP8 : MimeTypes.VIDEO_VP9;
            } else if (readInt2 == Atom.TYPE_d263) {
                Assertions.checkState(str == null);
                str = MimeTypes.VIDEO_H263;
            } else if (readInt2 == Atom.TYPE_esds) {
                Assertions.checkState(str == null);
                Pair<String, byte[]> parseEsdsFromParent = parseEsdsFromParent(parsableByteArray2, position2);
                str = (String) parseEsdsFromParent.first;
                list = Collections.singletonList(parseEsdsFromParent.second);
            } else if (readInt2 == Atom.TYPE_pasp) {
                f = parsePaspFromParent(parsableByteArray2, position2);
                z = true;
            } else if (readInt2 == Atom.TYPE_sv3d) {
                bArr = parseProjFromParent(parsableByteArray2, position2, readInt);
            } else if (readInt2 == Atom.TYPE_st3d) {
                int readUnsignedByte = parsableByteArray.readUnsignedByte();
                parsableByteArray2.skipBytes(3);
                if (readUnsignedByte == 0) {
                    int readUnsignedByte2 = parsableByteArray.readUnsignedByte();
                    if (readUnsignedByte2 == 0) {
                        i10 = 0;
                    } else if (readUnsignedByte2 == 1) {
                        i10 = 1;
                    } else if (readUnsignedByte2 == 2) {
                        i10 = 2;
                    } else if (readUnsignedByte2 == 3) {
                        i10 = 3;
                    }
                }
            }
            position += readInt;
        }
        if (str != null) {
            stsdData2.format = Format.createVideoSampleFormat(Integer.toString(i4), str, (String) null, -1, -1, readUnsignedShort, readUnsignedShort2, -1.0f, list, i5, f, bArr, i10, (ColorInfo) null, drmInitData3);
        }
    }

    private static Pair<long[], long[]> parseEdts(Atom.ContainerAtom containerAtom) {
        Atom.LeafAtom leafAtomOfType;
        if (containerAtom == null || (leafAtomOfType = containerAtom.getLeafAtomOfType(Atom.TYPE_elst)) == null) {
            return Pair.create((Object) null, (Object) null);
        }
        ParsableByteArray parsableByteArray = leafAtomOfType.data;
        parsableByteArray.setPosition(8);
        int parseFullAtomVersion = Atom.parseFullAtomVersion(parsableByteArray.readInt());
        int readUnsignedIntToInt = parsableByteArray.readUnsignedIntToInt();
        long[] jArr = new long[readUnsignedIntToInt];
        long[] jArr2 = new long[readUnsignedIntToInt];
        int i = 0;
        while (i < readUnsignedIntToInt) {
            jArr[i] = parseFullAtomVersion == 1 ? parsableByteArray.readUnsignedLongToLong() : parsableByteArray.readUnsignedInt();
            jArr2[i] = parseFullAtomVersion == 1 ? parsableByteArray.readLong() : (long) parsableByteArray.readInt();
            if (parsableByteArray.readShort() == 1) {
                parsableByteArray.skipBytes(2);
                i++;
            } else {
                throw new IllegalArgumentException("Unsupported media rate.");
            }
        }
        return Pair.create(jArr, jArr2);
    }

    private static float parsePaspFromParent(ParsableByteArray parsableByteArray, int i) {
        parsableByteArray.setPosition(i + 8);
        return ((float) parsableByteArray.readUnsignedIntToInt()) / ((float) parsableByteArray.readUnsignedIntToInt());
    }

    /* JADX DEBUG: Multi-variable search result rejected for TypeSearchVarInfo{r4v6, resolved type: java.lang.Object} */
    /* JADX DEBUG: Multi-variable search result rejected for TypeSearchVarInfo{r8v7, resolved type: java.lang.String} */
    /*  JADX ERROR: JadxRuntimeException in pass: IfRegionVisitor
        jadx.core.utils.exceptions.JadxRuntimeException: Don't wrap MOVE or CONST insns: 0x0203: MOVE  (r8v4 java.lang.String) = (r26v0 java.lang.String)
        	at jadx.core.dex.instructions.args.InsnArg.wrapArg(InsnArg.java:164)
        	at jadx.core.dex.visitors.shrink.CodeShrinkVisitor.assignInline(CodeShrinkVisitor.java:133)
        	at jadx.core.dex.visitors.shrink.CodeShrinkVisitor.checkInline(CodeShrinkVisitor.java:118)
        	at jadx.core.dex.visitors.shrink.CodeShrinkVisitor.shrinkBlock(CodeShrinkVisitor.java:65)
        	at jadx.core.dex.visitors.shrink.CodeShrinkVisitor.shrinkMethod(CodeShrinkVisitor.java:43)
        	at jadx.core.dex.visitors.regions.TernaryMod.makeTernaryInsn(TernaryMod.java:122)
        	at jadx.core.dex.visitors.regions.TernaryMod.visitRegion(TernaryMod.java:34)
        	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterativeStepInternal(DepthRegionTraversal.java:73)
        	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterativeStepInternal(DepthRegionTraversal.java:78)
        	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterativeStepInternal(DepthRegionTraversal.java:78)
        	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterativeStepInternal(DepthRegionTraversal.java:78)
        	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterativeStepInternal(DepthRegionTraversal.java:78)
        	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterativeStepInternal(DepthRegionTraversal.java:78)
        	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterativeStepInternal(DepthRegionTraversal.java:78)
        	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterativeStepInternal(DepthRegionTraversal.java:78)
        	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterativeStepInternal(DepthRegionTraversal.java:78)
        	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterativeStepInternal(DepthRegionTraversal.java:78)
        	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterativeStepInternal(DepthRegionTraversal.java:78)
        	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterativeStepInternal(DepthRegionTraversal.java:78)
        	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterativeStepInternal(DepthRegionTraversal.java:78)
        	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterativeStepInternal(DepthRegionTraversal.java:78)
        	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterativeStepInternal(DepthRegionTraversal.java:78)
        	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterativeStepInternal(DepthRegionTraversal.java:78)
        	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterativeStepInternal(DepthRegionTraversal.java:78)
        	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterativeStepInternal(DepthRegionTraversal.java:78)
        	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterativeStepInternal(DepthRegionTraversal.java:78)
        	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterativeStepInternal(DepthRegionTraversal.java:78)
        	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseIterative(DepthRegionTraversal.java:27)
        	at jadx.core.dex.visitors.regions.IfRegionVisitor.visit(IfRegionVisitor.java:31)
        */
    /* JADX WARNING: Multi-variable type inference failed */
    private static void parseAudioSampleEntry(com.google.android.exoplayer2.util.ParsableByteArray r28, int r29, int r30, int r31, int r32, java.lang.String r33, boolean r34, com.google.android.exoplayer2.drm.DrmInitData r35, com.google.android.exoplayer2.extractor.mp4.AtomParsers.StsdData r36, int r37) {
        /*
            r0 = r28
            r1 = r30
            r2 = r31
            r14 = r33
            r3 = r35
            r15 = r36
            int r4 = r1 + 8
            r5 = 8
            int r4 = r4 + r5
            r0.setPosition(r4)
            r4 = 6
            r13 = 0
            if (r34 == 0) goto L_0x0020
            int r5 = r28.readUnsignedShort()
            r0.skipBytes(r4)
            goto L_0x0024
        L_0x0020:
            r0.skipBytes(r5)
            r5 = r13
        L_0x0024:
            r12 = 2
            r6 = 16
            r11 = 1
            if (r5 == 0) goto L_0x0046
            if (r5 != r11) goto L_0x002d
            goto L_0x0046
        L_0x002d:
            if (r5 != r12) goto L_0x0045
            r0.skipBytes(r6)
            double r4 = r28.readDouble()
            long r4 = java.lang.Math.round(r4)
            int r4 = (int) r4
            int r5 = r28.readUnsignedIntToInt()
            r6 = 20
            r0.skipBytes(r6)
            goto L_0x0057
        L_0x0045:
            return
        L_0x0046:
            int r7 = r28.readUnsignedShort()
            r0.skipBytes(r4)
            int r4 = r28.readUnsignedFixedPoint1616()
            if (r5 != r11) goto L_0x0056
            r0.skipBytes(r6)
        L_0x0056:
            r5 = r7
        L_0x0057:
            int r6 = r28.getPosition()
            int r7 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_enca
            r16 = 0
            r8 = r29
            if (r8 != r7) goto L_0x008b
            android.util.Pair r7 = parseSampleEntryEncryptionData(r0, r1, r2)
            if (r7 == 0) goto L_0x0088
            java.lang.Object r8 = r7.first
            java.lang.Integer r8 = (java.lang.Integer) r8
            int r8 = r8.intValue()
            if (r3 != 0) goto L_0x0076
            r3 = r16
            goto L_0x0080
        L_0x0076:
            java.lang.Object r9 = r7.second
            com.google.android.exoplayer2.extractor.mp4.TrackEncryptionBox r9 = (com.google.android.exoplayer2.extractor.mp4.TrackEncryptionBox) r9
            java.lang.String r9 = r9.schemeType
            com.google.android.exoplayer2.drm.DrmInitData r3 = r3.copyWithSchemeType(r9)
        L_0x0080:
            com.google.android.exoplayer2.extractor.mp4.TrackEncryptionBox[] r9 = r15.trackEncryptionBoxes
            java.lang.Object r7 = r7.second
            com.google.android.exoplayer2.extractor.mp4.TrackEncryptionBox r7 = (com.google.android.exoplayer2.extractor.mp4.TrackEncryptionBox) r7
            r9[r37] = r7
        L_0x0088:
            r0.setPosition(r6)
        L_0x008b:
            r10 = r3
            int r3 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_ac_3
            java.lang.String r9 = "audio/raw"
            if (r8 != r3) goto L_0x0095
            java.lang.String r3 = "audio/ac3"
            goto L_0x00df
        L_0x0095:
            int r3 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_ec_3
            if (r8 != r3) goto L_0x009c
            java.lang.String r3 = "audio/eac3"
            goto L_0x00df
        L_0x009c:
            int r3 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_dtsc
            if (r8 != r3) goto L_0x00a3
            java.lang.String r3 = "audio/vnd.dts"
            goto L_0x00df
        L_0x00a3:
            int r3 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_dtsh
            if (r8 == r3) goto L_0x00dd
            int r3 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_dtsl
            if (r8 != r3) goto L_0x00ac
            goto L_0x00dd
        L_0x00ac:
            int r3 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_dtse
            if (r8 != r3) goto L_0x00b3
            java.lang.String r3 = "audio/vnd.dts.hd;profile=lbr"
            goto L_0x00df
        L_0x00b3:
            int r3 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_samr
            if (r8 != r3) goto L_0x00ba
            java.lang.String r3 = "audio/3gpp"
            goto L_0x00df
        L_0x00ba:
            int r3 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_sawb
            if (r8 != r3) goto L_0x00c1
            java.lang.String r3 = "audio/amr-wb"
            goto L_0x00df
        L_0x00c1:
            int r3 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_lpcm
            if (r8 == r3) goto L_0x00db
            int r3 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_sowt
            if (r8 != r3) goto L_0x00ca
            goto L_0x00db
        L_0x00ca:
            int r3 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE__mp3
            if (r8 != r3) goto L_0x00d1
            java.lang.String r3 = "audio/mpeg"
            goto L_0x00df
        L_0x00d1:
            int r3 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_alac
            if (r8 != r3) goto L_0x00d8
            java.lang.String r3 = "audio/alac"
            goto L_0x00df
        L_0x00d8:
            r3 = r16
            goto L_0x00df
        L_0x00db:
            r3 = r9
            goto L_0x00df
        L_0x00dd:
            java.lang.String r3 = "audio/vnd.dts.hd"
        L_0x00df:
            r8 = r3
            r18 = r4
            r17 = r5
            r7 = r6
            r19 = r16
        L_0x00e7:
            int r3 = r7 - r1
            r4 = -1
            if (r3 >= r2) goto L_0x01f7
            r0.setPosition(r7)
            int r6 = r28.readInt()
            if (r6 <= 0) goto L_0x00f7
            r3 = r11
            goto L_0x00f8
        L_0x00f7:
            r3 = r13
        L_0x00f8:
            java.lang.String r5 = "childAtomSize should be positive"
            com.google.android.exoplayer2.util.Assertions.checkArgument(r3, r5)
            int r3 = r28.readInt()
            int r5 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_esds
            if (r3 == r5) goto L_0x01a4
            if (r34 == 0) goto L_0x010d
            int r5 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_wave
            if (r3 != r5) goto L_0x010d
            goto L_0x01a4
        L_0x010d:
            int r4 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_dac3
            if (r3 != r4) goto L_0x012f
            int r3 = r7 + 8
            r0.setPosition(r3)
            java.lang.String r3 = java.lang.Integer.toString(r32)
            com.google.android.exoplayer2.Format r3 = com.google.android.exoplayer2.audio.Ac3Util.parseAc3AnnexFFormat(r0, r3, r14, r10)
            r15.format = r3
        L_0x0120:
            r5 = r6
            r6 = r7
            r26 = r8
            r27 = r9
            r20 = r10
            r21 = r11
            r22 = r12
            r1 = r13
            goto L_0x01a1
        L_0x012f:
            int r4 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_dec3
            if (r3 != r4) goto L_0x0143
            int r3 = r7 + 8
            r0.setPosition(r3)
            java.lang.String r3 = java.lang.Integer.toString(r32)
            com.google.android.exoplayer2.Format r3 = com.google.android.exoplayer2.audio.Ac3Util.parseEAc3AnnexFFormat(r0, r3, r14, r10)
            r15.format = r3
            goto L_0x0120
        L_0x0143:
            int r4 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_ddts
            if (r3 != r4) goto L_0x017d
            java.lang.String r3 = java.lang.Integer.toString(r32)
            r5 = 0
            r20 = -1
            r21 = -1
            r22 = 0
            r23 = 0
            r4 = r8
            r24 = r6
            r6 = r20
            r25 = r7
            r7 = r21
            r26 = r8
            r8 = r17
            r27 = r9
            r9 = r18
            r20 = r10
            r10 = r22
            r21 = r11
            r11 = r20
            r22 = r12
            r12 = r23
            r1 = r13
            r13 = r33
            com.google.android.exoplayer2.Format r3 = com.google.android.exoplayer2.Format.createAudioSampleFormat(r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13)
            r15.format = r3
            r5 = r24
            goto L_0x019f
        L_0x017d:
            r24 = r6
            r25 = r7
            r26 = r8
            r27 = r9
            r20 = r10
            r21 = r11
            r22 = r12
            r1 = r13
            int r4 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_alac
            r5 = r24
            if (r3 != r4) goto L_0x019f
            byte[] r3 = new byte[r5]
            r6 = r25
            r0.setPosition(r6)
            r0.readBytes(r3, r1, r5)
            r19 = r3
            goto L_0x01a1
        L_0x019f:
            r6 = r25
        L_0x01a1:
            r8 = r26
            goto L_0x01e8
        L_0x01a4:
            r5 = r6
            r6 = r7
            r26 = r8
            r27 = r9
            r20 = r10
            r21 = r11
            r22 = r12
            r1 = r13
            int r7 = com.google.android.exoplayer2.extractor.mp4.Atom.TYPE_esds
            if (r3 != r7) goto L_0x01b7
            r7 = r6
            goto L_0x01bb
        L_0x01b7:
            int r7 = findEsdsPosition(r0, r6, r5)
        L_0x01bb:
            if (r7 == r4) goto L_0x01a1
            android.util.Pair r3 = parseEsdsFromParent(r0, r7)
            java.lang.Object r4 = r3.first
            r8 = r4
            java.lang.String r8 = (java.lang.String) r8
            java.lang.Object r3 = r3.second
            r19 = r3
            byte[] r19 = (byte[]) r19
            java.lang.String r3 = "audio/mp4a-latm"
            boolean r3 = r3.equals(r8)
            if (r3 == 0) goto L_0x01e8
            android.util.Pair r3 = com.google.android.exoplayer2.util.CodecSpecificDataUtil.parseAacAudioSpecificConfig(r19)
            java.lang.Object r4 = r3.first
            java.lang.Integer r4 = (java.lang.Integer) r4
            int r18 = r4.intValue()
            java.lang.Object r3 = r3.second
            java.lang.Integer r3 = (java.lang.Integer) r3
            int r17 = r3.intValue()
        L_0x01e8:
            int r7 = r6 + r5
            r13 = r1
            r10 = r20
            r11 = r21
            r12 = r22
            r9 = r27
            r1 = r30
            goto L_0x00e7
        L_0x01f7:
            r26 = r8
            r27 = r9
            r20 = r10
            r22 = r12
            com.google.android.exoplayer2.Format r0 = r15.format
            if (r0 != 0) goto L_0x0235
            r8 = r26
            if (r8 == 0) goto L_0x0235
            r0 = r27
            boolean r0 = r0.equals(r8)
            if (r0 == 0) goto L_0x0212
            r7 = r22
            goto L_0x0213
        L_0x0212:
            r7 = r4
        L_0x0213:
            java.lang.String r0 = java.lang.Integer.toString(r32)
            r2 = 0
            r3 = -1
            r4 = -1
            if (r19 != 0) goto L_0x021d
            goto L_0x0223
        L_0x021d:
            java.util.List r1 = java.util.Collections.singletonList(r19)
            r16 = r1
        L_0x0223:
            r10 = 0
            r1 = r8
            r5 = r17
            r6 = r18
            r8 = r16
            r9 = r20
            r11 = r33
            com.google.android.exoplayer2.Format r0 = com.google.android.exoplayer2.Format.createAudioSampleFormat(r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11)
            r15.format = r0
        L_0x0235:
            return
        */
        throw new UnsupportedOperationException("Method not decompiled: com.google.android.exoplayer2.extractor.mp4.AtomParsers.parseAudioSampleEntry(com.google.android.exoplayer2.util.ParsableByteArray, int, int, int, int, java.lang.String, boolean, com.google.android.exoplayer2.drm.DrmInitData, com.google.android.exoplayer2.extractor.mp4.AtomParsers$StsdData, int):void");
    }

    private static int findEsdsPosition(ParsableByteArray parsableByteArray, int i, int i2) {
        int position = parsableByteArray.getPosition();
        while (position - i < i2) {
            parsableByteArray.setPosition(position);
            int readInt = parsableByteArray.readInt();
            Assertions.checkArgument(readInt > 0, "childAtomSize should be positive");
            if (parsableByteArray.readInt() == Atom.TYPE_esds) {
                return position;
            }
            position += readInt;
        }
        return -1;
    }

    private static Pair<String, byte[]> parseEsdsFromParent(ParsableByteArray parsableByteArray, int i) {
        parsableByteArray.setPosition(i + 8 + 4);
        parsableByteArray.skipBytes(1);
        parseExpandableClassSize(parsableByteArray);
        parsableByteArray.skipBytes(2);
        int readUnsignedByte = parsableByteArray.readUnsignedByte();
        if ((readUnsignedByte & 128) != 0) {
            parsableByteArray.skipBytes(2);
        }
        if ((readUnsignedByte & 64) != 0) {
            parsableByteArray.skipBytes(parsableByteArray.readUnsignedShort());
        }
        if ((readUnsignedByte & 32) != 0) {
            parsableByteArray.skipBytes(2);
        }
        parsableByteArray.skipBytes(1);
        parseExpandableClassSize(parsableByteArray);
        int readUnsignedByte2 = parsableByteArray.readUnsignedByte();
        String str = null;
        if (readUnsignedByte2 == 32) {
            str = MimeTypes.VIDEO_MP4V;
        } else if (readUnsignedByte2 == 33) {
            str = MimeTypes.VIDEO_H264;
        } else if (readUnsignedByte2 != 35) {
            if (readUnsignedByte2 != 64) {
                if (readUnsignedByte2 == 107) {
                    return Pair.create(MimeTypes.AUDIO_MPEG, (Object) null);
                }
                if (readUnsignedByte2 == 96 || readUnsignedByte2 == 97) {
                    str = MimeTypes.VIDEO_MPEG2;
                } else if (readUnsignedByte2 == 165) {
                    str = MimeTypes.AUDIO_AC3;
                } else if (readUnsignedByte2 != 166) {
                    switch (readUnsignedByte2) {
                        case 102:
                        case 103:
                        case 104:
                            break;
                        default:
                            switch (readUnsignedByte2) {
                                case 169:
                                case 172:
                                    return Pair.create(MimeTypes.AUDIO_DTS, (Object) null);
                                case 170:
                                case 171:
                                    return Pair.create(MimeTypes.AUDIO_DTS_HD, (Object) null);
                            }
                    }
                } else {
                    str = MimeTypes.AUDIO_E_AC3;
                }
            }
            str = MimeTypes.AUDIO_AAC;
        } else {
            str = MimeTypes.VIDEO_H265;
        }
        parsableByteArray.skipBytes(12);
        parsableByteArray.skipBytes(1);
        int parseExpandableClassSize = parseExpandableClassSize(parsableByteArray);
        byte[] bArr = new byte[parseExpandableClassSize];
        parsableByteArray.readBytes(bArr, 0, parseExpandableClassSize);
        return Pair.create(str, bArr);
    }

    private static Pair<Integer, TrackEncryptionBox> parseSampleEntryEncryptionData(ParsableByteArray parsableByteArray, int i, int i2) {
        Pair<Integer, TrackEncryptionBox> parseCommonEncryptionSinfFromParent;
        int position = parsableByteArray.getPosition();
        while (position - i < i2) {
            parsableByteArray.setPosition(position);
            int readInt = parsableByteArray.readInt();
            Assertions.checkArgument(readInt > 0, "childAtomSize should be positive");
            if (parsableByteArray.readInt() == Atom.TYPE_sinf && (parseCommonEncryptionSinfFromParent = parseCommonEncryptionSinfFromParent(parsableByteArray, position, readInt)) != null) {
                return parseCommonEncryptionSinfFromParent;
            }
            position += readInt;
        }
        return null;
    }

    static Pair<Integer, TrackEncryptionBox> parseCommonEncryptionSinfFromParent(ParsableByteArray parsableByteArray, int i, int i2) {
        int i3 = i + 8;
        boolean z = false;
        int i4 = -1;
        String str = null;
        Integer num = null;
        int i5 = 0;
        while (i3 - i < i2) {
            parsableByteArray.setPosition(i3);
            int readInt = parsableByteArray.readInt();
            int readInt2 = parsableByteArray.readInt();
            if (readInt2 == Atom.TYPE_frma) {
                num = Integer.valueOf(parsableByteArray.readInt());
            } else if (readInt2 == Atom.TYPE_schm) {
                parsableByteArray.skipBytes(4);
                str = parsableByteArray.readString(4);
            } else if (readInt2 == Atom.TYPE_schi) {
                i4 = i3;
                i5 = readInt;
            }
            i3 += readInt;
        }
        if (!C.CENC_TYPE_cenc.equals(str) && !C.CENC_TYPE_cbc1.equals(str) && !C.CENC_TYPE_cens.equals(str) && !C.CENC_TYPE_cbcs.equals(str)) {
            return null;
        }
        Assertions.checkArgument(num != null, "frma atom is mandatory");
        Assertions.checkArgument(i4 != -1, "schi atom is mandatory");
        TrackEncryptionBox parseSchiFromParent = parseSchiFromParent(parsableByteArray, i4, i5, str);
        if (parseSchiFromParent != null) {
            z = true;
        }
        Assertions.checkArgument(z, "tenc atom is mandatory");
        return Pair.create(num, parseSchiFromParent);
    }

    private static TrackEncryptionBox parseSchiFromParent(ParsableByteArray parsableByteArray, int i, int i2, String str) {
        int i3;
        int i4;
        int i5 = i + 8;
        while (true) {
            byte[] bArr = null;
            if (i5 - i >= i2) {
                return null;
            }
            parsableByteArray.setPosition(i5);
            int readInt = parsableByteArray.readInt();
            if (parsableByteArray.readInt() == Atom.TYPE_tenc) {
                int parseFullAtomVersion = Atom.parseFullAtomVersion(parsableByteArray.readInt());
                parsableByteArray.skipBytes(1);
                if (parseFullAtomVersion == 0) {
                    parsableByteArray.skipBytes(1);
                    i4 = 0;
                    i3 = 0;
                } else {
                    int readUnsignedByte = parsableByteArray.readUnsignedByte();
                    i3 = readUnsignedByte & 15;
                    i4 = (readUnsignedByte & PsExtractor.VIDEO_STREAM_MASK) >> 4;
                }
                boolean z = parsableByteArray.readUnsignedByte() == 1;
                int readUnsignedByte2 = parsableByteArray.readUnsignedByte();
                byte[] bArr2 = new byte[16];
                parsableByteArray.readBytes(bArr2, 0, 16);
                if (z && readUnsignedByte2 == 0) {
                    int readUnsignedByte3 = parsableByteArray.readUnsignedByte();
                    bArr = new byte[readUnsignedByte3];
                    parsableByteArray.readBytes(bArr, 0, readUnsignedByte3);
                }
                return new TrackEncryptionBox(z, str, readUnsignedByte2, bArr2, i4, i3, bArr);
            }
            i5 += readInt;
        }
    }

    private static byte[] parseProjFromParent(ParsableByteArray parsableByteArray, int i, int i2) {
        int i3 = i + 8;
        while (i3 - i < i2) {
            parsableByteArray.setPosition(i3);
            int readInt = parsableByteArray.readInt();
            if (parsableByteArray.readInt() == Atom.TYPE_proj) {
                return Arrays.copyOfRange(parsableByteArray.data, i3, readInt + i3);
            }
            i3 += readInt;
        }
        return null;
    }

    private static int parseExpandableClassSize(ParsableByteArray parsableByteArray) {
        int readUnsignedByte = parsableByteArray.readUnsignedByte();
        int i = readUnsignedByte & TransportMediator.KEYCODE_MEDIA_PAUSE;
        while ((readUnsignedByte & 128) == 128) {
            readUnsignedByte = parsableByteArray.readUnsignedByte();
            i = (i << 7) | (readUnsignedByte & TransportMediator.KEYCODE_MEDIA_PAUSE);
        }
        return i;
    }

    private AtomParsers() {
    }

    private static final class ChunkIterator {
        private final ParsableByteArray chunkOffsets;
        private final boolean chunkOffsetsAreLongs;
        public int index;
        public final int length;
        private int nextSamplesPerChunkChangeIndex;
        public int numSamples;
        public long offset;
        private int remainingSamplesPerChunkChanges;
        private final ParsableByteArray stsc;

        public ChunkIterator(ParsableByteArray parsableByteArray, ParsableByteArray parsableByteArray2, boolean z) {
            this.stsc = parsableByteArray;
            this.chunkOffsets = parsableByteArray2;
            this.chunkOffsetsAreLongs = z;
            parsableByteArray2.setPosition(12);
            this.length = parsableByteArray2.readUnsignedIntToInt();
            parsableByteArray.setPosition(12);
            this.remainingSamplesPerChunkChanges = parsableByteArray.readUnsignedIntToInt();
            Assertions.checkState(parsableByteArray.readInt() != 1 ? false : true, "first_chunk must be 1");
            this.index = -1;
        }

        public boolean moveNext() {
            long j;
            int i = this.index + 1;
            this.index = i;
            if (i == this.length) {
                return false;
            }
            if (this.chunkOffsetsAreLongs) {
                j = this.chunkOffsets.readUnsignedLongToLong();
            } else {
                j = this.chunkOffsets.readUnsignedInt();
            }
            this.offset = j;
            if (this.index == this.nextSamplesPerChunkChangeIndex) {
                this.numSamples = this.stsc.readUnsignedIntToInt();
                this.stsc.skipBytes(4);
                int i2 = this.remainingSamplesPerChunkChanges - 1;
                this.remainingSamplesPerChunkChanges = i2;
                this.nextSamplesPerChunkChangeIndex = i2 > 0 ? this.stsc.readUnsignedIntToInt() - 1 : -1;
            }
            return true;
        }
    }

    private static final class TkhdData {
        /* access modifiers changed from: private */
        public final long duration;
        /* access modifiers changed from: private */
        public final int id;
        /* access modifiers changed from: private */
        public final int rotationDegrees;

        public TkhdData(int i, long j, int i2) {
            this.id = i;
            this.duration = j;
            this.rotationDegrees = i2;
        }
    }

    private static final class StsdData {
        public static final int STSD_HEADER_SIZE = 8;
        public Format format;
        public int nalUnitLengthFieldLength;
        public int requiredSampleTransformation = 0;
        public final TrackEncryptionBox[] trackEncryptionBoxes;

        public StsdData(int i) {
            this.trackEncryptionBoxes = new TrackEncryptionBox[i];
        }
    }

    static final class StszSampleSizeBox implements SampleSizeBox {
        private final ParsableByteArray data;
        private final int fixedSampleSize = this.data.readUnsignedIntToInt();
        private final int sampleCount = this.data.readUnsignedIntToInt();

        public StszSampleSizeBox(Atom.LeafAtom leafAtom) {
            ParsableByteArray parsableByteArray = leafAtom.data;
            this.data = parsableByteArray;
            parsableByteArray.setPosition(12);
        }

        public int getSampleCount() {
            return this.sampleCount;
        }

        public int readNextSampleSize() {
            int i = this.fixedSampleSize;
            return i == 0 ? this.data.readUnsignedIntToInt() : i;
        }

        public boolean isFixedSampleSize() {
            return this.fixedSampleSize != 0;
        }
    }

    static final class Stz2SampleSizeBox implements SampleSizeBox {
        private int currentByte;
        private final ParsableByteArray data;
        private final int fieldSize = (this.data.readUnsignedIntToInt() & 255);
        private final int sampleCount = this.data.readUnsignedIntToInt();
        private int sampleIndex;

        public boolean isFixedSampleSize() {
            return false;
        }

        public Stz2SampleSizeBox(Atom.LeafAtom leafAtom) {
            ParsableByteArray parsableByteArray = leafAtom.data;
            this.data = parsableByteArray;
            parsableByteArray.setPosition(12);
        }

        public int getSampleCount() {
            return this.sampleCount;
        }

        public int readNextSampleSize() {
            int i = this.fieldSize;
            if (i == 8) {
                return this.data.readUnsignedByte();
            }
            if (i == 16) {
                return this.data.readUnsignedShort();
            }
            int i2 = this.sampleIndex;
            this.sampleIndex = i2 + 1;
            if (i2 % 2 != 0) {
                return this.currentByte & 15;
            }
            int readUnsignedByte = this.data.readUnsignedByte();
            this.currentByte = readUnsignedByte;
            return (readUnsignedByte & PsExtractor.VIDEO_STREAM_MASK) >> 4;
        }
    }
}
