package androidx.media3.extractor.mp4;

import E3.g;
import F3.O;
import F3.p0;
import Z0.o;
import a.AbstractC0872a;
import android.util.Pair;
import androidx.media3.common.C;
import androidx.media3.common.ColorInfo;
import androidx.media3.common.DrmInitData;
import androidx.media3.common.Format;
import androidx.media3.common.Metadata;
import androidx.media3.common.MimeTypes;
import androidx.media3.common.ParserException;
import androidx.media3.common.util.Assertions;
import androidx.media3.common.util.CodecSpecificDataUtil;
import androidx.media3.common.util.Log;
import androidx.media3.common.util.ParsableBitArray;
import androidx.media3.common.util.ParsableByteArray;
import androidx.media3.common.util.Util;
import androidx.media3.container.MdtaMetadataEntry;
import androidx.media3.container.Mp4LocationData;
import androidx.media3.container.Mp4TimestampData;
import androidx.media3.extractor.AacUtil;
import androidx.media3.extractor.Ac3Util;
import androidx.media3.extractor.Ac4Util;
import androidx.media3.extractor.AvcConfig;
import androidx.media3.extractor.DolbyVisionConfig;
import androidx.media3.extractor.ExtractorUtil;
import androidx.media3.extractor.GaplessInfoHolder;
import androidx.media3.extractor.HevcConfig;
import androidx.media3.extractor.OpusUtil;
import androidx.media3.extractor.VorbisUtil;
import androidx.media3.extractor.mp4.Atom;
import androidx.media3.extractor.mp4.FixedSampleSizeRechunker;
import androidx.media3.extractor.ts.PsExtractor;
import com.revenuecat.purchases.ui.revenuecatui.components.SensibleDefaults;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;

/* JADX INFO: loaded from: classes.dex */
final class AtomParsers {
    private static final int MAX_GAPLESS_TRIM_SIZE_SAMPLES = 4;
    private static final String TAG = "AtomParsers";
    private static final int TYPE_clcp = 1668047728;
    private static final int TYPE_mdta = 1835299937;
    private static final int TYPE_meta = 1835365473;
    private static final int TYPE_nclc = 1852009571;
    private static final int TYPE_nclx = 1852009592;
    private static final int TYPE_sbtl = 1935832172;
    private static final int TYPE_soun = 1936684398;
    private static final int TYPE_subt = 1937072756;
    private static final int TYPE_text = 1952807028;
    private static final int TYPE_vide = 1986618469;
    private static final byte[] opusMagic = Util.getUtf8Bytes("OpusHead");

    public 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 z6) throws ParserException {
            this.stsc = parsableByteArray;
            this.chunkOffsets = parsableByteArray2;
            this.chunkOffsetsAreLongs = z6;
            parsableByteArray2.setPosition(12);
            this.length = parsableByteArray2.readUnsignedIntToInt();
            parsableByteArray.setPosition(12);
            this.remainingSamplesPerChunkChanges = parsableByteArray.readUnsignedIntToInt();
            ExtractorUtil.checkContainerInput(parsableByteArray.readInt() == 1, "first_chunk must be 1");
            this.index = -1;
        }

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

    public static final class EsdsData {
        private final long bitrate;
        private final byte[] initializationData;
        private final String mimeType;
        private final long peakBitrate;

        public EsdsData(String str, byte[] bArr, long j4, long j6) {
            this.mimeType = str;
            this.initializationData = bArr;
            this.bitrate = j4;
            this.peakBitrate = j6;
        }
    }

    public interface SampleSizeBox {
        int getFixedSampleSize();

        int getSampleCount();

        int readNextSampleSize();
    }

    public 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 i6) {
            this.trackEncryptionBoxes = new TrackEncryptionBox[i6];
        }
    }

    public static final class StszSampleSizeBox implements SampleSizeBox {
        private final ParsableByteArray data;
        private final int fixedSampleSize;
        private final int sampleCount;

        public StszSampleSizeBox(Atom.LeafAtom leafAtom, Format format) {
            ParsableByteArray parsableByteArray = leafAtom.data;
            this.data = parsableByteArray;
            parsableByteArray.setPosition(12);
            int unsignedIntToInt = parsableByteArray.readUnsignedIntToInt();
            if (MimeTypes.AUDIO_RAW.equals(format.sampleMimeType)) {
                int pcmFrameSize = Util.getPcmFrameSize(format.pcmEncoding, format.channelCount);
                if (unsignedIntToInt == 0 || unsignedIntToInt % pcmFrameSize != 0) {
                    Log.w(AtomParsers.TAG, "Audio sample size mismatch. stsd sample size: " + pcmFrameSize + ", stsz sample size: " + unsignedIntToInt);
                    unsignedIntToInt = pcmFrameSize;
                }
            }
            this.fixedSampleSize = unsignedIntToInt == 0 ? -1 : unsignedIntToInt;
            this.sampleCount = parsableByteArray.readUnsignedIntToInt();
        }

        @Override // androidx.media3.extractor.mp4.AtomParsers.SampleSizeBox
        public int getFixedSampleSize() {
            return this.fixedSampleSize;
        }

        @Override // androidx.media3.extractor.mp4.AtomParsers.SampleSizeBox
        public int getSampleCount() {
            return this.sampleCount;
        }

        @Override // androidx.media3.extractor.mp4.AtomParsers.SampleSizeBox
        public int readNextSampleSize() {
            int i6 = this.fixedSampleSize;
            return i6 == -1 ? this.data.readUnsignedIntToInt() : i6;
        }
    }

    public static final class Stz2SampleSizeBox implements SampleSizeBox {
        private int currentByte;
        private final ParsableByteArray data;
        private final int fieldSize;
        private final int sampleCount;
        private int sampleIndex;

        public Stz2SampleSizeBox(Atom.LeafAtom leafAtom) {
            ParsableByteArray parsableByteArray = leafAtom.data;
            this.data = parsableByteArray;
            parsableByteArray.setPosition(12);
            this.fieldSize = parsableByteArray.readUnsignedIntToInt() & 255;
            this.sampleCount = parsableByteArray.readUnsignedIntToInt();
        }

        @Override // androidx.media3.extractor.mp4.AtomParsers.SampleSizeBox
        public int getFixedSampleSize() {
            return -1;
        }

        @Override // androidx.media3.extractor.mp4.AtomParsers.SampleSizeBox
        public int getSampleCount() {
            return this.sampleCount;
        }

        @Override // androidx.media3.extractor.mp4.AtomParsers.SampleSizeBox
        public int readNextSampleSize() {
            int i6 = this.fieldSize;
            if (i6 == 8) {
                return this.data.readUnsignedByte();
            }
            if (i6 == 16) {
                return this.data.readUnsignedShort();
            }
            int i7 = this.sampleIndex;
            this.sampleIndex = i7 + 1;
            if (i7 % 2 != 0) {
                return this.currentByte & 15;
            }
            int unsignedByte = this.data.readUnsignedByte();
            this.currentByte = unsignedByte;
            return (unsignedByte & PsExtractor.VIDEO_STREAM_MASK) >> 4;
        }
    }

    public static final class TkhdData {
        private final long duration;
        private final int id;
        private final int rotationDegrees;

        public TkhdData(int i6, long j4, int i7) {
            this.id = i6;
            this.duration = j4;
            this.rotationDegrees = i7;
        }
    }

    private AtomParsers() {
    }

    private static ByteBuffer allocateHdrStaticInfo() {
        return ByteBuffer.allocate(25).order(ByteOrder.LITTLE_ENDIAN);
    }

    private static boolean canApplyEditWithGaplessInfo(long[] jArr, long j4, long j6, long j7) {
        int length = jArr.length - 1;
        return jArr[0] <= j6 && j6 < jArr[Util.constrainValue(4, 0, length)] && jArr[Util.constrainValue(jArr.length - 4, 0, length)] < j7 && j7 <= j4;
    }

    private static boolean canTrimSamplesWithTimestampChange(int i6) {
        return i6 != 1;
    }

    private static int findBoxPosition(ParsableByteArray parsableByteArray, int i6, int i7, int i8) throws ParserException {
        int position = parsableByteArray.getPosition();
        ExtractorUtil.checkContainerInput(position >= i7, null);
        while (position - i7 < i8) {
            parsableByteArray.setPosition(position);
            int i9 = parsableByteArray.readInt();
            ExtractorUtil.checkContainerInput(i9 > 0, "childAtomSize must be positive");
            if (parsableByteArray.readInt() == i6) {
                return position;
            }
            position += i9;
        }
        return -1;
    }

    private static int getTrackTypeForHdlr(int i6) {
        if (i6 == TYPE_soun) {
            return 1;
        }
        if (i6 == TYPE_vide) {
            return 2;
        }
        if (i6 == TYPE_text || i6 == TYPE_sbtl || i6 == TYPE_subt || i6 == TYPE_clcp) {
            return 3;
        }
        return i6 == 1835365473 ? 5 : -1;
    }

    public static void maybeSkipRemainingMetaAtomHeaderBytes(ParsableByteArray parsableByteArray) {
        int position = parsableByteArray.getPosition();
        parsableByteArray.skipBytes(4);
        if (parsableByteArray.readInt() != 1751411826) {
            position += 4;
        }
        parsableByteArray.setPosition(position);
    }

    /* JADX WARN: Removed duplicated region for block: B:132:0x01be  */
    /* JADX WARN: Removed duplicated region for block: B:39:0x0093  */
    /* JADX WARN: Removed duplicated region for block: B:87:0x013f  */
    /*
        Code decompiled incorrectly, please refer to instructions dump.
    */
    private static void parseAudioSampleEntry(ParsableByteArray parsableByteArray, int i6, int i7, int i8, int i9, String str, boolean z6, DrmInitData drmInitData, StsdData stsdData, int i10) throws ParserException {
        int unsignedShort;
        int i11;
        int unsignedShort2;
        int unsignedFixedPoint1616;
        int i12;
        int i13;
        String str2;
        int i14;
        String str3;
        char c6;
        int i15 = i8;
        DrmInitData drmInitDataCopyWithSchemeType = drmInitData;
        parsableByteArray.setPosition(i7 + 16);
        if (z6) {
            unsignedShort = parsableByteArray.readUnsignedShort();
            parsableByteArray.skipBytes(6);
        } else {
            parsableByteArray.skipBytes(8);
            unsignedShort = 0;
        }
        if (unsignedShort == 0 || unsignedShort == 1) {
            i11 = 2;
            unsignedShort2 = parsableByteArray.readUnsignedShort();
            parsableByteArray.skipBytes(6);
            unsignedFixedPoint1616 = parsableByteArray.readUnsignedFixedPoint1616();
            parsableByteArray.setPosition(parsableByteArray.getPosition() - 4);
            i12 = parsableByteArray.readInt();
            if (unsignedShort == 1) {
                parsableByteArray.skipBytes(16);
            }
            i13 = -1;
        } else {
            if (unsignedShort != 2) {
                return;
            }
            parsableByteArray.skipBytes(16);
            unsignedFixedPoint1616 = (int) Math.round(parsableByteArray.readDouble());
            unsignedShort2 = parsableByteArray.readUnsignedIntToInt();
            parsableByteArray.skipBytes(4);
            int unsignedIntToInt = parsableByteArray.readUnsignedIntToInt();
            int unsignedIntToInt2 = parsableByteArray.readUnsignedIntToInt();
            boolean z7 = (unsignedIntToInt2 & 1) != 0;
            boolean z8 = (unsignedIntToInt2 & 2) != 0;
            i11 = 2;
            if (z7) {
                if (unsignedIntToInt == 32) {
                    i13 = 4;
                }
                parsableByteArray.skipBytes(8);
                i12 = 0;
            } else {
                i13 = unsignedIntToInt == 8 ? 3 : unsignedIntToInt == 16 ? z8 ? 268435456 : 2 : unsignedIntToInt == 24 ? z8 ? C.ENCODING_PCM_24BIT_BIG_ENDIAN : 21 : unsignedIntToInt == 32 ? z8 ? C.ENCODING_PCM_32BIT_BIG_ENDIAN : 22 : -1;
                parsableByteArray.skipBytes(8);
                i12 = 0;
            }
        }
        int position = parsableByteArray.getPosition();
        int iIntValue = i6;
        if (iIntValue == 1701733217) {
            Pair<Integer, TrackEncryptionBox> sampleEntryEncryptionData = parseSampleEntryEncryptionData(parsableByteArray, i7, i15);
            if (sampleEntryEncryptionData != null) {
                iIntValue = ((Integer) sampleEntryEncryptionData.first).intValue();
                drmInitDataCopyWithSchemeType = drmInitDataCopyWithSchemeType == null ? null : drmInitDataCopyWithSchemeType.copyWithSchemeType(((TrackEncryptionBox) sampleEntryEncryptionData.second).schemeType);
                stsdData.trackEncryptionBoxes[i10] = (TrackEncryptionBox) sampleEntryEncryptionData.second;
            }
            parsableByteArray.setPosition(position);
        }
        String str4 = MimeTypes.AUDIO_MPEGH_MHM1;
        if (iIntValue == 1633889587) {
            str2 = MimeTypes.AUDIO_AC3;
        } else if (iIntValue == 1700998451) {
            str2 = MimeTypes.AUDIO_E_AC3;
        } else if (iIntValue == 1633889588) {
            str2 = MimeTypes.AUDIO_AC4;
        } else if (iIntValue == 1685353315) {
            str2 = MimeTypes.AUDIO_DTS;
        } else if (iIntValue == 1685353320 || iIntValue == 1685353324) {
            str2 = MimeTypes.AUDIO_DTS_HD;
        } else if (iIntValue == 1685353317) {
            str2 = MimeTypes.AUDIO_DTS_EXPRESS;
        } else if (iIntValue == 1685353336) {
            str2 = MimeTypes.AUDIO_DTS_X;
        } else if (iIntValue == 1935764850) {
            str2 = MimeTypes.AUDIO_AMR_NB;
        } else {
            if (iIntValue != 1935767394) {
                if (iIntValue != 1936684916) {
                    if (iIntValue == 1953984371) {
                        str2 = MimeTypes.AUDIO_RAW;
                        i14 = 268435456;
                    } else if (iIntValue == 1819304813) {
                        i14 = i13 == -1 ? i11 : i13;
                        str2 = MimeTypes.AUDIO_RAW;
                    } else if (iIntValue == 778924082 || iIntValue == 778924083) {
                        str2 = MimeTypes.AUDIO_MPEG;
                    } else if (iIntValue == 1835557169) {
                        str2 = MimeTypes.AUDIO_MPEGH_MHA1;
                    } else if (iIntValue == 1835560241) {
                        i14 = i13;
                        str2 = MimeTypes.AUDIO_MPEGH_MHM1;
                    } else if (iIntValue == 1634492771) {
                        str2 = MimeTypes.AUDIO_ALAC;
                    } else if (iIntValue == 1634492791) {
                        str2 = MimeTypes.AUDIO_ALAW;
                    } else if (iIntValue == 1970037111) {
                        str2 = MimeTypes.AUDIO_MLAW;
                    } else if (iIntValue == 1332770163) {
                        str2 = MimeTypes.AUDIO_OPUS;
                    } else if (iIntValue == 1716281667) {
                        str2 = MimeTypes.AUDIO_FLAC;
                    } else if (iIntValue == 1835823201) {
                        str2 = MimeTypes.AUDIO_TRUEHD;
                    } else {
                        i14 = i13;
                        str2 = null;
                    }
                }
                String str5 = null;
                List<byte[]> listU = null;
                EsdsData esdsFromParent = null;
                while (position - i7 < i15) {
                    parsableByteArray.setPosition(position);
                    int i16 = parsableByteArray.readInt();
                    int i17 = i14;
                    ExtractorUtil.checkContainerInput(i16 > 0, "childAtomSize must be positive");
                    int i18 = parsableByteArray.readInt();
                    if (i18 == 1835557187) {
                        parsableByteArray.setPosition(position + 8);
                        parsableByteArray.skipBytes(1);
                        int unsignedByte = parsableByteArray.readUnsignedByte();
                        parsableByteArray.skipBytes(1);
                        String str6 = Objects.equals(str2, str4) ? String.format("mhm1.%02X", Integer.valueOf(unsignedByte)) : String.format("mha1.%02X", Integer.valueOf(unsignedByte));
                        int unsignedShort3 = parsableByteArray.readUnsignedShort();
                        byte[] bArr = new byte[unsignedShort3];
                        parsableByteArray.readBytes(bArr, 0, unsignedShort3);
                        listU = listU == null ? O.u(bArr) : O.v(bArr, listU.get(0));
                        str5 = str6;
                    } else {
                        if (i18 == 1835557200) {
                            parsableByteArray.setPosition(position + 8);
                            int unsignedByte2 = parsableByteArray.readUnsignedByte();
                            if (unsignedByte2 > 0) {
                                byte[] bArr2 = new byte[unsignedByte2];
                                str3 = str4;
                                parsableByteArray.readBytes(bArr2, 0, unsignedByte2);
                                listU = listU == null ? O.u(bArr2) : O.v(listU.get(0), bArr2);
                            }
                        } else {
                            str3 = str4;
                            if (i18 == 1702061171 || (z6 && i18 == 2002876005)) {
                                int iFindBoxPosition = i18 == 1702061171 ? position : findBoxPosition(parsableByteArray, Atom.TYPE_esds, position, i16);
                                if (iFindBoxPosition != -1) {
                                    esdsFromParent = parseEsdsFromParent(parsableByteArray, iFindBoxPosition);
                                    str2 = esdsFromParent.mimeType;
                                    byte[] bArr3 = esdsFromParent.initializationData;
                                    if (bArr3 != null) {
                                        if (MimeTypes.AUDIO_VORBIS.equals(str2)) {
                                            listU = VorbisUtil.parseVorbisCsdFromEsdsInitializationData(bArr3);
                                        } else {
                                            if (MimeTypes.AUDIO_AAC.equals(str2)) {
                                                AacUtil.Config audioSpecificConfig = AacUtil.parseAudioSpecificConfig(bArr3);
                                                int i19 = audioSpecificConfig.sampleRateHz;
                                                int i20 = audioSpecificConfig.channelCount;
                                                str5 = audioSpecificConfig.codecs;
                                                unsignedFixedPoint1616 = i19;
                                                unsignedShort2 = i20;
                                            }
                                            listU = O.u(bArr3);
                                        }
                                    }
                                }
                            } else {
                                if (i18 == 1684103987) {
                                    parsableByteArray.setPosition(position + 8);
                                    stsdData.format = Ac3Util.parseAc3AnnexFFormat(parsableByteArray, Integer.toString(i9), str, drmInitDataCopyWithSchemeType);
                                } else if (i18 == 1684366131) {
                                    parsableByteArray.setPosition(position + 8);
                                    stsdData.format = Ac3Util.parseEAc3AnnexFFormat(parsableByteArray, Integer.toString(i9), str, drmInitDataCopyWithSchemeType);
                                } else if (i18 == 1684103988) {
                                    parsableByteArray.setPosition(position + 8);
                                    stsdData.format = Ac4Util.parseAc4AnnexEFormat(parsableByteArray, Integer.toString(i9), str, drmInitDataCopyWithSchemeType);
                                } else if (i18 == 1684892784) {
                                    if (i12 <= 0) {
                                        throw ParserException.createForMalformedContainer("Invalid sample rate for Dolby TrueHD MLP stream: " + i12, null);
                                    }
                                    unsignedFixedPoint1616 = i12;
                                    unsignedShort2 = i11;
                                } else if (i18 == 1684305011 || i18 == 1969517683) {
                                    c6 = 24931;
                                    stsdData.format = new Format.Builder().setId(i9).setSampleMimeType(str2).setChannelCount(unsignedShort2).setSampleRate(unsignedFixedPoint1616).setDrmInitData(drmInitDataCopyWithSchemeType).setLanguage(str).build();
                                } else if (i18 == 1682927731) {
                                    int i21 = i16 - 8;
                                    byte[] bArr4 = opusMagic;
                                    byte[] bArrCopyOf = Arrays.copyOf(bArr4, bArr4.length + i21);
                                    parsableByteArray.setPosition(position + 8);
                                    parsableByteArray.readBytes(bArrCopyOf, bArr4.length, i21);
                                    listU = OpusUtil.buildInitializationData(bArrCopyOf);
                                } else if (i18 == 1684425825) {
                                    byte[] bArr5 = new byte[i16 - 8];
                                    bArr5[0] = 102;
                                    bArr5[1] = 76;
                                    bArr5[i11] = 97;
                                    bArr5[3] = 67;
                                    parsableByteArray.setPosition(position + 12);
                                    parsableByteArray.readBytes(bArr5, 4, i16 - 12);
                                    listU = O.u(bArr5);
                                } else {
                                    c6 = 24931;
                                    if (i18 == 1634492771) {
                                        int i22 = i16 - 12;
                                        byte[] bArr6 = new byte[i22];
                                        parsableByteArray.setPosition(position + 12);
                                        parsableByteArray.readBytes(bArr6, 0, i22);
                                        Pair<Integer, Integer> alacAudioSpecificConfig = CodecSpecificDataUtil.parseAlacAudioSpecificConfig(bArr6);
                                        int iIntValue2 = ((Integer) alacAudioSpecificConfig.first).intValue();
                                        int iIntValue3 = ((Integer) alacAudioSpecificConfig.second).intValue();
                                        listU = O.u(bArr6);
                                        unsignedFixedPoint1616 = iIntValue2;
                                        unsignedShort2 = iIntValue3;
                                    }
                                }
                                c6 = 24931;
                            }
                            position += i16;
                            i15 = i8;
                            i14 = i17;
                            str4 = str3;
                        }
                        position += i16;
                        i15 = i8;
                        i14 = i17;
                        str4 = str3;
                    }
                    str3 = str4;
                    position += i16;
                    i15 = i8;
                    i14 = i17;
                    str4 = str3;
                }
                int i23 = i14;
                if (stsdData.format == null || str2 == null) {
                }
                Format.Builder language = new Format.Builder().setId(i9).setSampleMimeType(str2).setCodecs(str5).setChannelCount(unsignedShort2).setSampleRate(unsignedFixedPoint1616).setPcmEncoding(i23).setInitializationData(listU).setDrmInitData(drmInitDataCopyWithSchemeType).setLanguage(str);
                if (esdsFromParent != null) {
                    language.setAverageBitrate(AbstractC0872a.d0(esdsFromParent.bitrate)).setPeakBitrate(AbstractC0872a.d0(esdsFromParent.peakBitrate));
                }
                stsdData.format = language.build();
                return;
            }
            str2 = MimeTypes.AUDIO_AMR_WB;
        }
        i14 = i13;
        String str52 = null;
        List<byte[]> listU2 = null;
        EsdsData esdsFromParent2 = null;
        while (position - i7 < i15) {
        }
        int i232 = i14;
        if (stsdData.format == null) {
        }
    }

    private static ColorInfo parseAv1c(ParsableByteArray parsableByteArray) {
        ColorInfo.Builder builder = new ColorInfo.Builder();
        ParsableBitArray parsableBitArray = new ParsableBitArray(parsableByteArray.getData());
        parsableBitArray.setPosition(parsableByteArray.getPosition() * 8);
        parsableBitArray.skipBytes(1);
        int bits = parsableBitArray.readBits(3);
        parsableBitArray.skipBits(6);
        boolean bit = parsableBitArray.readBit();
        boolean bit2 = parsableBitArray.readBit();
        if (bits == 2 && bit) {
            builder.setLumaBitdepth(bit2 ? 12 : 10);
            builder.setChromaBitdepth(bit2 ? 12 : 10);
        } else if (bits <= 2) {
            builder.setLumaBitdepth(bit ? 10 : 8);
            builder.setChromaBitdepth(bit ? 10 : 8);
        }
        parsableBitArray.skipBits(13);
        parsableBitArray.skipBit();
        int bits2 = parsableBitArray.readBits(4);
        if (bits2 != 1) {
            Log.i(TAG, "Unsupported obu_type: " + bits2);
            return builder.build();
        }
        if (parsableBitArray.readBit()) {
            Log.i(TAG, "Unsupported obu_extension_flag");
            return builder.build();
        }
        boolean bit3 = parsableBitArray.readBit();
        parsableBitArray.skipBit();
        if (bit3 && parsableBitArray.readBits(8) > 127) {
            Log.i(TAG, "Excessive obu_size");
            return builder.build();
        }
        int bits3 = parsableBitArray.readBits(3);
        parsableBitArray.skipBit();
        if (parsableBitArray.readBit()) {
            Log.i(TAG, "Unsupported reduced_still_picture_header");
            return builder.build();
        }
        if (parsableBitArray.readBit()) {
            Log.i(TAG, "Unsupported timing_info_present_flag");
            return builder.build();
        }
        if (parsableBitArray.readBit()) {
            Log.i(TAG, "Unsupported initial_display_delay_present_flag");
            return builder.build();
        }
        int bits4 = parsableBitArray.readBits(5);
        boolean z6 = false;
        for (int i6 = 0; i6 <= bits4; i6++) {
            parsableBitArray.skipBits(12);
            if (parsableBitArray.readBits(5) > 7) {
                parsableBitArray.skipBit();
            }
        }
        int bits5 = parsableBitArray.readBits(4);
        int bits6 = parsableBitArray.readBits(4);
        parsableBitArray.skipBits(bits5 + 1);
        parsableBitArray.skipBits(bits6 + 1);
        if (parsableBitArray.readBit()) {
            parsableBitArray.skipBits(7);
        }
        parsableBitArray.skipBits(7);
        boolean bit4 = parsableBitArray.readBit();
        if (bit4) {
            parsableBitArray.skipBits(2);
        }
        if ((parsableBitArray.readBit() ? 2 : parsableBitArray.readBits(1)) > 0 && !parsableBitArray.readBit()) {
            parsableBitArray.skipBits(1);
        }
        if (bit4) {
            parsableBitArray.skipBits(3);
        }
        parsableBitArray.skipBits(3);
        boolean bit5 = parsableBitArray.readBit();
        if (bits3 == 2 && bit5) {
            parsableBitArray.skipBit();
        }
        if (bits3 != 1 && parsableBitArray.readBit()) {
            z6 = true;
        }
        if (parsableBitArray.readBit()) {
            int bits7 = parsableBitArray.readBits(8);
            int bits8 = parsableBitArray.readBits(8);
            builder.setColorSpace(ColorInfo.isoColorPrimariesToColorSpace(bits7)).setColorRange(((z6 || bits7 != 1 || bits8 != 13 || parsableBitArray.readBits(8) != 0) ? parsableBitArray.readBits(1) : 1) != 1 ? 2 : 1).setColorTransfer(ColorInfo.isoTransferCharacteristicsToColorTransfer(bits8));
        }
        return builder.build();
    }

    public static Pair<Integer, TrackEncryptionBox> parseCommonEncryptionSinfFromParent(ParsableByteArray parsableByteArray, int i6, int i7) throws ParserException {
        int i8 = i6 + 8;
        int i9 = -1;
        int i10 = 0;
        String string = null;
        Integer numValueOf = null;
        while (i8 - i6 < i7) {
            parsableByteArray.setPosition(i8);
            int i11 = parsableByteArray.readInt();
            int i12 = parsableByteArray.readInt();
            if (i12 == 1718775137) {
                numValueOf = Integer.valueOf(parsableByteArray.readInt());
            } else if (i12 == 1935894637) {
                parsableByteArray.skipBytes(4);
                string = parsableByteArray.readString(4);
            } else if (i12 == 1935894633) {
                i9 = i8;
                i10 = i11;
            }
            i8 += i11;
        }
        if (!C.CENC_TYPE_cenc.equals(string) && !C.CENC_TYPE_cbc1.equals(string) && !C.CENC_TYPE_cens.equals(string) && !C.CENC_TYPE_cbcs.equals(string)) {
            return null;
        }
        ExtractorUtil.checkContainerInput(numValueOf != null, "frma atom is mandatory");
        ExtractorUtil.checkContainerInput(i9 != -1, "schi atom is mandatory");
        TrackEncryptionBox schiFromParent = parseSchiFromParent(parsableByteArray, i9, i10, string);
        ExtractorUtil.checkContainerInput(schiFromParent != null, "tenc atom is mandatory");
        return Pair.create(numValueOf, (TrackEncryptionBox) Util.castNonNull(schiFromParent));
    }

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

    private static EsdsData parseEsdsFromParent(ParsableByteArray parsableByteArray, int i6) {
        parsableByteArray.setPosition(i6 + 12);
        parsableByteArray.skipBytes(1);
        parseExpandableClassSize(parsableByteArray);
        parsableByteArray.skipBytes(2);
        int unsignedByte = parsableByteArray.readUnsignedByte();
        if ((unsignedByte & 128) != 0) {
            parsableByteArray.skipBytes(2);
        }
        if ((unsignedByte & 64) != 0) {
            parsableByteArray.skipBytes(parsableByteArray.readUnsignedByte());
        }
        if ((unsignedByte & 32) != 0) {
            parsableByteArray.skipBytes(2);
        }
        parsableByteArray.skipBytes(1);
        parseExpandableClassSize(parsableByteArray);
        String mimeTypeFromMp4ObjectType = MimeTypes.getMimeTypeFromMp4ObjectType(parsableByteArray.readUnsignedByte());
        if (MimeTypes.AUDIO_MPEG.equals(mimeTypeFromMp4ObjectType) || MimeTypes.AUDIO_DTS.equals(mimeTypeFromMp4ObjectType) || MimeTypes.AUDIO_DTS_HD.equals(mimeTypeFromMp4ObjectType)) {
            return new EsdsData(mimeTypeFromMp4ObjectType, null, -1L, -1L);
        }
        parsableByteArray.skipBytes(4);
        long unsignedInt = parsableByteArray.readUnsignedInt();
        long unsignedInt2 = parsableByteArray.readUnsignedInt();
        parsableByteArray.skipBytes(1);
        int expandableClassSize = parseExpandableClassSize(parsableByteArray);
        long j4 = unsignedInt2;
        byte[] bArr = new byte[expandableClassSize];
        parsableByteArray.readBytes(bArr, 0, expandableClassSize);
        if (j4 <= 0) {
            j4 = -1;
        }
        return new EsdsData(mimeTypeFromMp4ObjectType, bArr, j4, unsignedInt > 0 ? unsignedInt : -1L);
    }

    private static int parseExpandableClassSize(ParsableByteArray parsableByteArray) {
        int unsignedByte = parsableByteArray.readUnsignedByte();
        int i6 = unsignedByte & 127;
        while ((unsignedByte & 128) == 128) {
            unsignedByte = parsableByteArray.readUnsignedByte();
            i6 = (i6 << 7) | (unsignedByte & 127);
        }
        return i6;
    }

    private static int parseHdlr(ParsableByteArray parsableByteArray) {
        parsableByteArray.setPosition(16);
        return parsableByteArray.readInt();
    }

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

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

    public static Metadata parseMdtaFromMeta(Atom.ContainerAtom containerAtom) {
        Atom.LeafAtom leafAtomOfType = containerAtom.getLeafAtomOfType(Atom.TYPE_hdlr);
        Atom.LeafAtom leafAtomOfType2 = containerAtom.getLeafAtomOfType(Atom.TYPE_keys);
        Atom.LeafAtom leafAtomOfType3 = containerAtom.getLeafAtomOfType(Atom.TYPE_ilst);
        if (leafAtomOfType == null || leafAtomOfType2 == null || leafAtomOfType3 == null || parseHdlr(leafAtomOfType.data) != TYPE_mdta) {
            return null;
        }
        ParsableByteArray parsableByteArray = leafAtomOfType2.data;
        parsableByteArray.setPosition(12);
        int i6 = parsableByteArray.readInt();
        String[] strArr = new String[i6];
        for (int i7 = 0; i7 < i6; i7++) {
            int i8 = parsableByteArray.readInt();
            parsableByteArray.skipBytes(4);
            strArr[i7] = parsableByteArray.readString(i8 - 8);
        }
        ParsableByteArray parsableByteArray2 = leafAtomOfType3.data;
        parsableByteArray2.setPosition(8);
        ArrayList arrayList = new ArrayList();
        while (parsableByteArray2.bytesLeft() > 8) {
            int position = parsableByteArray2.getPosition();
            int i9 = parsableByteArray2.readInt();
            int i10 = parsableByteArray2.readInt() - 1;
            if (i10 < 0 || i10 >= i6) {
                o.v(i10, "Skipped metadata with unknown key index: ", TAG);
            } else {
                MdtaMetadataEntry mdtaMetadataEntryFromIlst = MetadataUtil.parseMdtaMetadataEntryFromIlst(parsableByteArray2, position + i9, strArr[i10]);
                if (mdtaMetadataEntryFromIlst != null) {
                    arrayList.add(mdtaMetadataEntryFromIlst);
                }
            }
            parsableByteArray2.setPosition(position + i9);
        }
        if (arrayList.isEmpty()) {
            return null;
        }
        return new Metadata(arrayList);
    }

    private static void parseMetaDataSampleEntry(ParsableByteArray parsableByteArray, int i6, int i7, int i8, StsdData stsdData) {
        parsableByteArray.setPosition(i7 + 16);
        if (i6 == 1835365492) {
            parsableByteArray.readNullTerminatedString();
            String nullTerminatedString = parsableByteArray.readNullTerminatedString();
            if (nullTerminatedString != null) {
                stsdData.format = new Format.Builder().setId(i8).setSampleMimeType(nullTerminatedString).build();
            }
        }
    }

    public static Mp4TimestampData parseMvhd(ParsableByteArray parsableByteArray) {
        long unsignedInt;
        long unsignedInt2;
        parsableByteArray.setPosition(8);
        if (Atom.parseFullAtomVersion(parsableByteArray.readInt()) == 0) {
            unsignedInt = parsableByteArray.readUnsignedInt();
            unsignedInt2 = parsableByteArray.readUnsignedInt();
        } else {
            unsignedInt = parsableByteArray.readLong();
            unsignedInt2 = parsableByteArray.readLong();
        }
        return new Mp4TimestampData(unsignedInt, unsignedInt2, parsableByteArray.readUnsignedInt());
    }

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

    private static byte[] parseProjFromParent(ParsableByteArray parsableByteArray, int i6, int i7) {
        int i8 = i6 + 8;
        while (i8 - i6 < i7) {
            parsableByteArray.setPosition(i8);
            int i9 = parsableByteArray.readInt();
            if (parsableByteArray.readInt() == 1886547818) {
                return Arrays.copyOfRange(parsableByteArray.getData(), i8, i9 + i8);
            }
            i8 += i9;
        }
        return null;
    }

    private static Pair<Integer, TrackEncryptionBox> parseSampleEntryEncryptionData(ParsableByteArray parsableByteArray, int i6, int i7) throws ParserException {
        Pair<Integer, TrackEncryptionBox> commonEncryptionSinfFromParent;
        int position = parsableByteArray.getPosition();
        while (position - i6 < i7) {
            parsableByteArray.setPosition(position);
            int i8 = parsableByteArray.readInt();
            ExtractorUtil.checkContainerInput(i8 > 0, "childAtomSize must be positive");
            if (parsableByteArray.readInt() == 1936289382 && (commonEncryptionSinfFromParent = parseCommonEncryptionSinfFromParent(parsableByteArray, position, i8)) != null) {
                return commonEncryptionSinfFromParent;
            }
            position += i8;
        }
        return null;
    }

    private static TrackEncryptionBox parseSchiFromParent(ParsableByteArray parsableByteArray, int i6, int i7, String str) {
        int i8;
        int i9;
        int i10 = i6 + 8;
        while (true) {
            byte[] bArr = null;
            if (i10 - i6 >= i7) {
                return null;
            }
            parsableByteArray.setPosition(i10);
            int i11 = parsableByteArray.readInt();
            if (parsableByteArray.readInt() == 1952804451) {
                int fullAtomVersion = Atom.parseFullAtomVersion(parsableByteArray.readInt());
                parsableByteArray.skipBytes(1);
                if (fullAtomVersion == 0) {
                    parsableByteArray.skipBytes(1);
                    i9 = 0;
                    i8 = 0;
                } else {
                    int unsignedByte = parsableByteArray.readUnsignedByte();
                    i8 = unsignedByte & 15;
                    i9 = (unsignedByte & PsExtractor.VIDEO_STREAM_MASK) >> 4;
                }
                boolean z6 = parsableByteArray.readUnsignedByte() == 1;
                int unsignedByte2 = parsableByteArray.readUnsignedByte();
                byte[] bArr2 = new byte[16];
                parsableByteArray.readBytes(bArr2, 0, 16);
                if (z6 && unsignedByte2 == 0) {
                    int unsignedByte3 = parsableByteArray.readUnsignedByte();
                    bArr = new byte[unsignedByte3];
                    parsableByteArray.readBytes(bArr, 0, unsignedByte3);
                }
                return new TrackEncryptionBox(z6, str, unsignedByte2, bArr2, i9, i8, bArr);
            }
            i10 += i11;
        }
    }

    /* JADX WARN: Multi-variable type inference failed */
    /* JADX WARN: Removed duplicated region for block: B:107:0x023d  */
    /* JADX WARN: Removed duplicated region for block: B:109:0x0277  */
    /* JADX WARN: Removed duplicated region for block: B:110:0x027a  */
    /* JADX WARN: Type inference failed for: r11v15, types: [int] */
    /* JADX WARN: Type inference failed for: r11v29 */
    /* JADX WARN: Type inference failed for: r11v30 */
    /* JADX WARN: Type inference failed for: r12v14 */
    /* JADX WARN: Type inference failed for: r12v15, types: [int] */
    /* JADX WARN: Type inference failed for: r12v16, types: [int] */
    /* JADX WARN: Type inference failed for: r12v43 */
    /* JADX WARN: Type inference failed for: r12v44 */
    /* JADX WARN: Type inference failed for: r12v45 */
    /* JADX WARN: Type inference failed for: r38v2 */
    /* JADX WARN: Type inference failed for: r38v3 */
    /* JADX WARN: Type inference failed for: r4v13 */
    /* JADX WARN: Type inference failed for: r4v14 */
    /* JADX WARN: Type inference failed for: r4v24 */
    /* JADX WARN: Type inference failed for: r4v25 */
    /* JADX WARN: Type inference failed for: r4v3 */
    /* JADX WARN: Type inference failed for: r4v5 */
    /* JADX WARN: Type inference failed for: r4v6 */
    /* JADX WARN: Type inference failed for: r4v7, types: [int] */
    /*
        Code decompiled incorrectly, please refer to instructions dump.
    */
    private static TrackSampleTable parseStbl(Track track, Atom.ContainerAtom containerAtom, GaplessInfoHolder gaplessInfoHolder) throws ParserException {
        SampleSizeBox stz2SampleSizeBox;
        boolean z6;
        int unsignedIntToInt;
        int unsignedIntToInt2;
        int unsignedIntToInt3;
        boolean z7;
        long j4;
        long[] jArrCopyOf;
        int i6;
        int i7;
        long j6;
        boolean z8;
        int[] iArr;
        long[] jArr;
        ?? r42;
        int[] iArr2;
        int[] iArr3;
        int[] iArr4;
        long j7;
        int[] iArr5;
        int i8;
        boolean z9;
        int i9;
        int i10;
        Atom.LeafAtom leafAtomOfType = containerAtom.getLeafAtomOfType(Atom.TYPE_stsz);
        if (leafAtomOfType != null) {
            stz2SampleSizeBox = new StszSampleSizeBox(leafAtomOfType, track.format);
        } else {
            Atom.LeafAtom leafAtomOfType2 = containerAtom.getLeafAtomOfType(Atom.TYPE_stz2);
            if (leafAtomOfType2 == null) {
                throw ParserException.createForMalformedContainer("Track has no sample table size information", null);
            }
            stz2SampleSizeBox = new Stz2SampleSizeBox(leafAtomOfType2);
        }
        int sampleCount = stz2SampleSizeBox.getSampleCount();
        if (sampleCount == 0) {
            return new TrackSampleTable(track, new long[0], new int[0], 0, new long[0], new int[0], 0L);
        }
        Atom.LeafAtom leafAtomOfType3 = containerAtom.getLeafAtomOfType(Atom.TYPE_stco);
        if (leafAtomOfType3 == null) {
            leafAtomOfType3 = (Atom.LeafAtom) Assertions.checkNotNull(containerAtom.getLeafAtomOfType(Atom.TYPE_co64));
            z6 = true;
        } else {
            z6 = false;
        }
        ParsableByteArray parsableByteArray = leafAtomOfType3.data;
        ParsableByteArray parsableByteArray2 = ((Atom.LeafAtom) Assertions.checkNotNull(containerAtom.getLeafAtomOfType(Atom.TYPE_stsc))).data;
        ParsableByteArray parsableByteArray3 = ((Atom.LeafAtom) Assertions.checkNotNull(containerAtom.getLeafAtomOfType(Atom.TYPE_stts))).data;
        Atom.LeafAtom leafAtomOfType4 = containerAtom.getLeafAtomOfType(Atom.TYPE_stss);
        ParsableByteArray parsableByteArray4 = leafAtomOfType4 != null ? leafAtomOfType4.data : null;
        Atom.LeafAtom leafAtomOfType5 = containerAtom.getLeafAtomOfType(Atom.TYPE_ctts);
        ParsableByteArray parsableByteArray5 = leafAtomOfType5 != null ? leafAtomOfType5.data : null;
        ChunkIterator chunkIterator = new ChunkIterator(parsableByteArray2, parsableByteArray, z6);
        parsableByteArray3.setPosition(12);
        int unsignedIntToInt4 = parsableByteArray3.readUnsignedIntToInt() - 1;
        int unsignedIntToInt5 = parsableByteArray3.readUnsignedIntToInt();
        int unsignedIntToInt6 = parsableByteArray3.readUnsignedIntToInt();
        if (parsableByteArray5 != null) {
            parsableByteArray5.setPosition(12);
            unsignedIntToInt = parsableByteArray5.readUnsignedIntToInt();
        } else {
            unsignedIntToInt = 0;
        }
        if (parsableByteArray4 != null) {
            parsableByteArray4.setPosition(12);
            unsignedIntToInt3 = parsableByteArray4.readUnsignedIntToInt();
            if (unsignedIntToInt3 > 0) {
                unsignedIntToInt2 = parsableByteArray4.readUnsignedIntToInt() - 1;
                z7 = false;
            } else {
                unsignedIntToInt2 = -1;
                z7 = false;
                parsableByteArray4 = null;
            }
        } else {
            unsignedIntToInt2 = -1;
            unsignedIntToInt3 = 0;
            z7 = false;
        }
        int fixedSampleSize = stz2SampleSizeBox.getFixedSampleSize();
        String str = track.format.sampleMimeType;
        boolean z10 = (fixedSampleSize == -1 || !((MimeTypes.AUDIO_RAW.equals(str) || MimeTypes.AUDIO_MLAW.equals(str) || MimeTypes.AUDIO_ALAW.equals(str)) && unsignedIntToInt4 == 0 && unsignedIntToInt == 0 && unsignedIntToInt3 == 0)) ? z7 ? 1 : 0 : true;
        SampleSizeBox sampleSizeBox = stz2SampleSizeBox;
        if (z10) {
            int i11 = chunkIterator.length;
            long[] jArr2 = new long[i11];
            int[] iArr6 = new int[i11];
            while (chunkIterator.moveNext()) {
                int i12 = chunkIterator.index;
                jArr2[i12] = chunkIterator.offset;
                iArr6[i12] = chunkIterator.numSamples;
            }
            FixedSampleSizeRechunker.Results resultsRechunk = FixedSampleSizeRechunker.rechunk(fixedSampleSize, jArr2, iArr6, unsignedIntToInt6);
            long[] jArr3 = resultsRechunk.offsets;
            iArr = resultsRechunk.sizes;
            int i13 = resultsRechunk.maximumSize;
            long[] jArr4 = resultsRechunk.timestamps;
            int[] iArr7 = resultsRechunk.flags;
            j6 = resultsRechunk.duration;
            jArr = jArr3;
            r42 = i13;
            jArrCopyOf = jArr4;
            iArr2 = iArr7;
            j4 = 0;
        } else {
            long[] jArr5 = new long[sampleCount];
            j4 = 0;
            int[] iArrCopyOf = new int[sampleCount];
            jArrCopyOf = new long[sampleCount];
            ParsableByteArray parsableByteArray6 = parsableByteArray5;
            int[] iArrCopyOf2 = new int[sampleCount];
            ParsableByteArray parsableByteArray7 = parsableByteArray4;
            int unsignedIntToInt7 = unsignedIntToInt2;
            int i14 = z7 ? 1 : 0;
            int i15 = i14;
            int i16 = i15 == true ? 1 : 0;
            int i17 = i16;
            long j8 = 0;
            long j9 = 0;
            int i18 = unsignedIntToInt;
            int i19 = unsignedIntToInt6;
            int i20 = unsignedIntToInt5;
            int i21 = unsignedIntToInt4;
            int i22 = i17 == true ? 1 : 0;
            while (true) {
                if (i14 >= sampleCount) {
                    boolean z11 = sampleCount == true ? 1 : 0;
                    i6 = i20;
                    i7 = i16;
                    break;
                }
                long j10 = j9;
                int i23 = i16;
                boolean zMoveNext = true;
                while (i23 == 0) {
                    zMoveNext = chunkIterator.moveNext();
                    if (!zMoveNext) {
                        break;
                    }
                    int i24 = i20;
                    long j11 = chunkIterator.offset;
                    i23 = chunkIterator.numSamples;
                    j10 = j11;
                    i20 = i24;
                    i19 = i19;
                    sampleCount = sampleCount == true ? 1 : 0;
                }
                int i25 = sampleCount;
                i6 = i20;
                int i26 = i19;
                if (!zMoveNext) {
                    Log.w(TAG, "Unexpected end of chunk data");
                    long[] jArrCopyOf2 = Arrays.copyOf(jArr5, i14);
                    iArrCopyOf = Arrays.copyOf(iArrCopyOf, i14);
                    jArrCopyOf = Arrays.copyOf(jArrCopyOf, i14);
                    iArrCopyOf2 = Arrays.copyOf(iArrCopyOf2, i14);
                    jArr5 = jArrCopyOf2;
                    sampleCount = i14;
                    i7 = i23;
                    break;
                }
                if (parsableByteArray6 != null) {
                    int unsignedIntToInt8 = i17 == true ? 1 : 0;
                    while (unsignedIntToInt8 == 0 && i18 > 0) {
                        unsignedIntToInt8 = parsableByteArray6.readUnsignedIntToInt();
                        i15 = parsableByteArray6.readInt();
                        i18--;
                    }
                    i17 = unsignedIntToInt8 - 1;
                }
                jArr5[i14] = j10;
                int nextSampleSize = sampleSizeBox.readNextSampleSize();
                iArrCopyOf[i14] = nextSampleSize;
                if (nextSampleSize > i22) {
                    i22 = nextSampleSize;
                }
                jArrCopyOf[i14] = j8 + ((long) i15);
                iArrCopyOf2[i14] = parsableByteArray7 == null ? 1 : z7 ? 1 : 0;
                if (i14 == unsignedIntToInt7) {
                    iArrCopyOf2[i14] = 1;
                    unsignedIntToInt3--;
                    if (unsignedIntToInt3 > 0) {
                        unsignedIntToInt7 = ((ParsableByteArray) Assertions.checkNotNull(parsableByteArray7)).readUnsignedIntToInt() - 1;
                    }
                }
                j8 += (long) i26;
                int unsignedIntToInt9 = i6 - 1;
                if (unsignedIntToInt9 != 0 || i21 <= 0) {
                    i19 = i26;
                } else {
                    unsignedIntToInt9 = parsableByteArray3.readUnsignedIntToInt();
                    i21--;
                    i19 = parsableByteArray3.readInt();
                }
                i20 = unsignedIntToInt9;
                long j12 = j10 + ((long) iArrCopyOf[i14]);
                i16 = i23 - 1;
                i14++;
                j9 = j12;
                sampleCount = i25 == true ? 1 : 0;
            }
            j6 = j8 + ((long) i15);
            if (parsableByteArray6 != null) {
                while (i18 > 0) {
                    if (parsableByteArray6.readUnsignedIntToInt() != 0) {
                        z8 = z7 ? 1 : 0;
                        break;
                    }
                    parsableByteArray6.readInt();
                    i18--;
                }
                z8 = true;
                if (unsignedIntToInt3 == 0 || i6 != 0 || i7 != 0 || i21 != 0 || i17 != 0 || !z8) {
                    StringBuilder sb = new StringBuilder("Inconsistent stbl box for track ");
                    sb.append(track.id);
                    sb.append(": remainingSynchronizationSamples ");
                    sb.append(unsignedIntToInt3);
                    sb.append(", remainingSamplesAtTimestampDelta ");
                    sb.append(i6);
                    sb.append(", remainingSamplesInChunk ");
                    sb.append(i7);
                    sb.append(", remainingTimestampDeltaChanges ");
                    sb.append(i21);
                    sb.append(", remainingSamplesAtTimestampOffset ");
                    sb.append(i17 == true ? 1 : 0 ? 1 : 0);
                    sb.append(z8 ? ", ctts invalid" : "");
                    Log.w(TAG, sb.toString());
                }
                iArr = iArrCopyOf;
                jArr = jArr5;
                r42 = i22 == true ? 1 : 0;
                iArr2 = iArrCopyOf2;
            } else {
                z8 = true;
                if (unsignedIntToInt3 == 0) {
                    StringBuilder sb2 = new StringBuilder("Inconsistent stbl box for track ");
                    sb2.append(track.id);
                    sb2.append(": remainingSynchronizationSamples ");
                    sb2.append(unsignedIntToInt3);
                    sb2.append(", remainingSamplesAtTimestampDelta ");
                    sb2.append(i6);
                    sb2.append(", remainingSamplesInChunk ");
                    sb2.append(i7);
                    sb2.append(", remainingTimestampDeltaChanges ");
                    sb2.append(i21);
                    sb2.append(", remainingSamplesAtTimestampOffset ");
                    sb2.append(i17 == true ? 1 : 0 ? 1 : 0);
                    sb2.append(z8 ? ", ctts invalid" : "");
                    Log.w(TAG, sb2.toString());
                    iArr = iArrCopyOf;
                    jArr = jArr5;
                    r42 = i22 == true ? 1 : 0;
                    iArr2 = iArrCopyOf2;
                }
            }
        }
        long j13 = j6;
        long jScaleLargeTimestamp = Util.scaleLargeTimestamp(j13, 1000000L, track.timescale);
        long[] jArr6 = track.editListDurations;
        if (jArr6 == null) {
            Util.scaleLargeTimestampsInPlace(jArrCopyOf, 1000000L, track.timescale);
            return new TrackSampleTable(track, jArr, iArr, r42 == true ? 1 : 0, jArrCopyOf, iArr2, jScaleLargeTimestamp);
        }
        int[] iArr8 = iArr;
        int i27 = sampleCount;
        int[] iArr9 = iArr8;
        int[] iArr10 = iArr9;
        if (jArr6.length == 1) {
            iArr10 = iArr9;
            if (track.type == 1) {
                iArr10 = iArr9;
                if (jArrCopyOf.length >= 2) {
                    long j14 = ((long[]) Assertions.checkNotNull(track.editListMediaTimes))[z7 ? 1 : 0];
                    long jScaleLargeTimestamp2 = j14 + Util.scaleLargeTimestamp(track.editListDurations[z7 ? 1 : 0], track.timescale, track.movieTimescale);
                    long[] jArr7 = jArr;
                    long[] jArr8 = jArrCopyOf;
                    boolean zCanApplyEditWithGaplessInfo = canApplyEditWithGaplessInfo(jArr8, j13, j14, jScaleLargeTimestamp2);
                    jArrCopyOf = jArr8;
                    j13 = j13;
                    if (zCanApplyEditWithGaplessInfo) {
                        long jScaleLargeTimestamp3 = Util.scaleLargeTimestamp(j14 - jArrCopyOf[z7 ? 1 : 0], track.format.sampleRate, track.timescale);
                        long jScaleLargeTimestamp4 = Util.scaleLargeTimestamp(j13 - jScaleLargeTimestamp2, track.format.sampleRate, track.timescale);
                        if ((jScaleLargeTimestamp3 != j4 || jScaleLargeTimestamp4 != j4) && jScaleLargeTimestamp3 <= 2147483647L && jScaleLargeTimestamp4 <= 2147483647L) {
                            gaplessInfoHolder.encoderDelay = (int) jScaleLargeTimestamp3;
                            gaplessInfoHolder.encoderPadding = (int) jScaleLargeTimestamp4;
                            Util.scaleLargeTimestampsInPlace(jArrCopyOf, 1000000L, track.timescale);
                            return new TrackSampleTable(track, jArr7, iArr9, r42 == true ? 1 : 0, jArrCopyOf, iArr2, Util.scaleLargeTimestamp(track.editListDurations[z7 ? 1 : 0], 1000000L, track.movieTimescale));
                        }
                    }
                    jArr = jArr7;
                    iArr10 = iArr9;
                }
            }
        }
        long[] jArr9 = track.editListDurations;
        if (jArr9.length == 1 && jArr9[z7 ? 1 : 0] == j4) {
            long j15 = ((long[]) Assertions.checkNotNull(track.editListMediaTimes))[z7 ? 1 : 0];
            for (int i28 = z7 ? 1 : 0; i28 < jArrCopyOf.length; i28++) {
                jArrCopyOf[i28] = Util.scaleLargeTimestamp(jArrCopyOf[i28] - j15, 1000000L, track.timescale);
            }
            return new TrackSampleTable(track, jArr, iArr10, r42 == true ? 1 : 0, jArrCopyOf, iArr2, Util.scaleLargeTimestamp(j13 - j15, 1000000L, track.timescale));
        }
        boolean z12 = track.type == 1 ? true : z7 ? 1 : 0;
        int[] iArr11 = new int[jArr9.length];
        int[] iArr12 = new int[jArr9.length];
        long[] jArr10 = (long[]) Assertions.checkNotNull(track.editListMediaTimes);
        int i29 = z7 ? 1 : 0;
        boolean z13 = i29 == true ? 1 : 0;
        int i30 = z13 ? 1 : 0;
        int i31 = i30;
        boolean z14 = z13;
        while (true) {
            long[] jArr11 = track.editListDurations;
            iArr3 = iArr12;
            if (i29 >= jArr11.length) {
                break;
            }
            int[] iArr13 = iArr11;
            long[] jArr12 = jArr10;
            long j16 = jArr12[i29];
            if (j16 != -1) {
                long j17 = jArr11[i29];
                i8 = i29;
                boolean z15 = z14 ? 1 : 0;
                long jScaleLargeTimestamp5 = Util.scaleLargeTimestamp(j17, track.timescale, track.movieTimescale);
                iArr5 = iArr13;
                iArr5[i8 == true ? 1 : 0] = Util.binarySearchFloor(jArrCopyOf, j16, true, true);
                long j18 = j16 + jScaleLargeTimestamp5;
                z9 = z7;
                iArr3[i8 == true ? 1 : 0] = Util.binarySearchCeil(jArrCopyOf, j18, z12, z9);
                while (true) {
                    i9 = iArr5[i8 == true ? 1 : 0];
                    i10 = iArr3[i8 == true ? 1 : 0];
                    if (i9 >= i10 || (iArr2[i9] & 1) != 0) {
                        break;
                    }
                    iArr5[i8 == true ? 1 : 0] = i9 + 1;
                }
                i30 += i10 - i9;
                z14 = (z15 ? 1 : 0) | (i31 != i9 ? true : z9 ? 1 : 0);
                i31 = i10;
            } else {
                iArr5 = iArr13;
                i8 = i29;
                boolean z16 = z14 ? 1 : 0;
                z9 = z7;
            }
            jArr10 = jArr12;
            z7 = z9;
            iArr12 = iArr3;
            i29 = i8 + 1;
            iArr11 = iArr5;
            z14 = z14;
        }
        int[] iArr14 = iArr11;
        boolean z17 = z7;
        boolean z18 = (z14 ? 1 : 0 ? 1 : 0) | (i30 != i27 ? true : z17);
        long[] jArr13 = z18 != 0 ? new long[i30] : jArr;
        int[] iArr15 = z18 != 0 ? new int[i30] : iArr10;
        if (z18 != 0) {
            r42 = z17;
        }
        int[] iArr16 = z18 != 0 ? new int[i30] : iArr2;
        long[] jArr14 = new long[i30];
        ?? r12 = z17;
        long j19 = j4;
        boolean z19 = z18;
        int[] iArr17 = iArr10;
        ?? r43 = r42;
        ?? r11 = z17;
        while (r11 < track.editListDurations.length) {
            long j20 = track.editListMediaTimes[r11];
            int i32 = iArr14[r11];
            boolean z20 = z19;
            int i33 = iArr3[r11];
            ?? r38 = r43;
            if (z20 != 0) {
                int i34 = i33 - i32;
                System.arraycopy(jArr, i32, jArr13, r12, i34);
                System.arraycopy(iArr17, i32, iArr15, r12, i34);
                System.arraycopy(iArr2, i32, iArr16, r12, i34);
            }
            int i35 = r38 == true ? 1 : 0;
            int[] iArr18 = iArr17;
            ?? r122 = r12;
            while (i32 < i33) {
                long[] jArr15 = jArr;
                int[] iArr19 = iArr18;
                long jScaleLargeTimestamp6 = Util.scaleLargeTimestamp(j19, 1000000L, track.movieTimescale);
                long jScaleLargeTimestamp7 = Util.scaleLargeTimestamp(jArrCopyOf[i32] - j20, 1000000L, track.timescale);
                int i36 = i33;
                long[] jArr16 = jArrCopyOf;
                if (canTrimSamplesWithTimestampChange(track.type)) {
                    iArr4 = iArr2;
                    j7 = j4;
                    jScaleLargeTimestamp7 = Math.max(j7, jScaleLargeTimestamp7);
                } else {
                    iArr4 = iArr2;
                    j7 = j4;
                }
                jArr14[r122] = jScaleLargeTimestamp6 + jScaleLargeTimestamp7;
                if (z20 != 0 && iArr15[r122] > i35) {
                    i35 = iArr19[i32];
                }
                i32++;
                j4 = j7;
                jArr = jArr15;
                iArr18 = iArr19;
                jArrCopyOf = jArr16;
                iArr2 = iArr4;
                i33 = i36;
                i35 = i35;
                r122++;
            }
            j19 += track.editListDurations[r11];
            jArr = jArr;
            jArrCopyOf = jArrCopyOf;
            iArr2 = iArr2;
            z19 = z20;
            iArr17 = iArr18;
            r43 = i35;
            r11++;
            r12 = r122;
        }
        return new TrackSampleTable(track, jArr13, iArr15, r43, jArr14, iArr16, Util.scaleLargeTimestamp(j19, 1000000L, track.movieTimescale));
    }

    private static StsdData parseStsd(ParsableByteArray parsableByteArray, int i6, int i7, String str, DrmInitData drmInitData, boolean z6) throws ParserException {
        parsableByteArray.setPosition(12);
        int i8 = parsableByteArray.readInt();
        StsdData stsdData = new StsdData(i8);
        int i9 = 0;
        while (i9 < i8) {
            int position = parsableByteArray.getPosition();
            int i10 = parsableByteArray.readInt();
            ExtractorUtil.checkContainerInput(i10 > 0, "childAtomSize must be positive");
            int i11 = parsableByteArray.readInt();
            if (i11 == 1635148593 || i11 == 1635148595 || i11 == 1701733238 || i11 == 1831958048 || i11 == 1836070006 || i11 == 1752589105 || i11 == 1751479857 || i11 == 1932670515 || i11 == 1211250227 || i11 == 1987063864 || i11 == 1987063865 || i11 == 1635135537 || i11 == 1685479798 || i11 == 1685479729 || i11 == 1685481573 || i11 == 1685481521) {
                StsdData stsdData2 = stsdData;
                int i12 = i9;
                parseVideoSampleEntry(parsableByteArray, i11, position, i10, i6, i7, drmInitData, stsdData2, i12);
                stsdData = stsdData2;
                i9 = i12;
            } else if (i11 == 1836069985 || i11 == 1701733217 || i11 == 1633889587 || i11 == 1700998451 || i11 == 1633889588 || i11 == 1835823201 || i11 == 1685353315 || i11 == 1685353317 || i11 == 1685353320 || i11 == 1685353324 || i11 == 1685353336 || i11 == 1935764850 || i11 == 1935767394 || i11 == 1819304813 || i11 == 1936684916 || i11 == 1953984371 || i11 == 778924082 || i11 == 778924083 || i11 == 1835557169 || i11 == 1835560241 || i11 == 1634492771 || i11 == 1634492791 || i11 == 1970037111 || i11 == 1332770163 || i11 == 1716281667) {
                StsdData stsdData3 = stsdData;
                parseAudioSampleEntry(parsableByteArray, i11, position, i10, i6, str, z6, drmInitData, stsdData3, i9);
                stsdData = stsdData3;
            } else if (i11 == 1414810956 || i11 == 1954034535 || i11 == 2004251764 || i11 == 1937010800 || i11 == 1664495672) {
                parseTextSampleEntry(parsableByteArray, i11, position, i10, i6, str, stsdData);
            } else if (i11 == 1835365492) {
                parseMetaDataSampleEntry(parsableByteArray, i11, position, i6, stsdData);
            } else if (i11 == 1667329389) {
                stsdData.format = new Format.Builder().setId(i6).setSampleMimeType(MimeTypes.APPLICATION_CAMERA_MOTION).build();
            }
            parsableByteArray.setPosition(position + i10);
            i9++;
        }
        return stsdData;
    }

    private static void parseTextSampleEntry(ParsableByteArray parsableByteArray, int i6, int i7, int i8, int i9, String str, StsdData stsdData) {
        parsableByteArray.setPosition(i7 + 16);
        String str2 = MimeTypes.APPLICATION_TTML;
        p0 p0VarU = null;
        long j4 = Long.MAX_VALUE;
        if (i6 != 1414810956) {
            if (i6 == 1954034535) {
                int i10 = i8 - 16;
                byte[] bArr = new byte[i10];
                parsableByteArray.readBytes(bArr, 0, i10);
                p0VarU = O.u(bArr);
                str2 = MimeTypes.APPLICATION_TX3G;
            } else if (i6 == 2004251764) {
                str2 = MimeTypes.APPLICATION_MP4VTT;
            } else if (i6 == 1937010800) {
                j4 = 0;
            } else {
                if (i6 != 1664495672) {
                    throw new IllegalStateException();
                }
                stsdData.requiredSampleTransformation = 1;
                str2 = MimeTypes.APPLICATION_MP4CEA608;
            }
        }
        stsdData.format = new Format.Builder().setId(i9).setSampleMimeType(str2).setLanguage(str).setSubsampleOffsetUs(j4).setInitializationData(p0VarU).build();
    }

    private static TkhdData parseTkhd(ParsableByteArray parsableByteArray) {
        long j4;
        parsableByteArray.setPosition(8);
        int fullAtomVersion = Atom.parseFullAtomVersion(parsableByteArray.readInt());
        parsableByteArray.skipBytes(fullAtomVersion == 0 ? 8 : 16);
        int i6 = parsableByteArray.readInt();
        parsableByteArray.skipBytes(4);
        int position = parsableByteArray.getPosition();
        int i7 = fullAtomVersion == 0 ? 4 : 8;
        int i8 = 0;
        int i9 = 0;
        while (true) {
            j4 = C.TIME_UNSET;
            if (i9 >= i7) {
                parsableByteArray.skipBytes(i7);
                break;
            }
            if (parsableByteArray.getData()[position + i9] != -1) {
                long unsignedInt = fullAtomVersion == 0 ? parsableByteArray.readUnsignedInt() : parsableByteArray.readUnsignedLongToLong();
                if (unsignedInt != 0) {
                    j4 = unsignedInt;
                }
            } else {
                i9++;
            }
        }
        parsableByteArray.skipBytes(16);
        int i10 = parsableByteArray.readInt();
        int i11 = parsableByteArray.readInt();
        parsableByteArray.skipBytes(4);
        int i12 = parsableByteArray.readInt();
        int i13 = parsableByteArray.readInt();
        if (i10 == 0 && i11 == 65536 && i12 == -65536 && i13 == 0) {
            i8 = 90;
        } else if (i10 == 0 && i11 == -65536 && i12 == 65536 && i13 == 0) {
            i8 = 270;
        } else if (i10 == -65536 && i11 == 0 && i12 == 0 && i13 == -65536) {
            i8 = SensibleDefaults.X_OFFSET;
        }
        return new TkhdData(i6, j4, i8);
    }

    private static Track parseTrak(Atom.ContainerAtom containerAtom, Atom.LeafAtom leafAtom, long j4, DrmInitData drmInitData, boolean z6, boolean z7) throws ParserException {
        long[] jArr;
        long[] jArr2;
        Atom.ContainerAtom containerAtomOfType;
        Pair<long[], long[]> edts;
        Atom.ContainerAtom containerAtom2 = (Atom.ContainerAtom) Assertions.checkNotNull(containerAtom.getContainerAtomOfType(Atom.TYPE_mdia));
        int trackTypeForHdlr = getTrackTypeForHdlr(parseHdlr(((Atom.LeafAtom) Assertions.checkNotNull(containerAtom2.getLeafAtomOfType(Atom.TYPE_hdlr))).data));
        if (trackTypeForHdlr == -1) {
            return null;
        }
        TkhdData tkhd = parseTkhd(((Atom.LeafAtom) Assertions.checkNotNull(containerAtom.getLeafAtomOfType(Atom.TYPE_tkhd))).data);
        long jScaleLargeTimestamp = C.TIME_UNSET;
        long j6 = j4 == C.TIME_UNSET ? tkhd.duration : j4;
        long j7 = parseMvhd(leafAtom.data).timescale;
        if (j6 != C.TIME_UNSET) {
            jScaleLargeTimestamp = Util.scaleLargeTimestamp(j6, 1000000L, j7);
        }
        long j8 = jScaleLargeTimestamp;
        Atom.ContainerAtom containerAtom3 = (Atom.ContainerAtom) Assertions.checkNotNull(((Atom.ContainerAtom) Assertions.checkNotNull(containerAtom2.getContainerAtomOfType(Atom.TYPE_minf))).getContainerAtomOfType(Atom.TYPE_stbl));
        Pair<Long, String> mdhd = parseMdhd(((Atom.LeafAtom) Assertions.checkNotNull(containerAtom2.getLeafAtomOfType(Atom.TYPE_mdhd))).data);
        Atom.LeafAtom leafAtomOfType = containerAtom3.getLeafAtomOfType(Atom.TYPE_stsd);
        if (leafAtomOfType == null) {
            throw ParserException.createForMalformedContainer("Malformed sample table (stbl) missing sample description (stsd)", null);
        }
        StsdData stsd = parseStsd(leafAtomOfType.data, tkhd.id, tkhd.rotationDegrees, (String) mdhd.second, drmInitData, z7);
        if (z6 || (containerAtomOfType = containerAtom.getContainerAtomOfType(Atom.TYPE_edts)) == null || (edts = parseEdts(containerAtomOfType)) == null) {
            jArr = null;
            jArr2 = null;
        } else {
            long[] jArr3 = (long[]) edts.first;
            jArr2 = (long[]) edts.second;
            jArr = jArr3;
        }
        if (stsd.format == null) {
            return null;
        }
        return new Track(tkhd.id, trackTypeForHdlr, ((Long) mdhd.first).longValue(), j7, j8, stsd.format, stsd.requiredSampleTransformation, stsd.trackEncryptionBoxes, stsd.nalUnitLengthFieldLength, jArr, jArr2);
    }

    public static List<TrackSampleTable> parseTraks(Atom.ContainerAtom containerAtom, GaplessInfoHolder gaplessInfoHolder, long j4, DrmInitData drmInitData, boolean z6, boolean z7, g gVar) {
        Track track;
        ArrayList arrayList = new ArrayList();
        for (int i6 = 0; i6 < containerAtom.containerChildren.size(); i6++) {
            Atom.ContainerAtom containerAtom2 = containerAtom.containerChildren.get(i6);
            if (containerAtom2.type == 1953653099 && (track = (Track) gVar.apply(parseTrak(containerAtom2, (Atom.LeafAtom) Assertions.checkNotNull(containerAtom.getLeafAtomOfType(Atom.TYPE_mvhd)), j4, drmInitData, z6, z7))) != null) {
                arrayList.add(parseStbl(track, (Atom.ContainerAtom) Assertions.checkNotNull(((Atom.ContainerAtom) Assertions.checkNotNull(((Atom.ContainerAtom) Assertions.checkNotNull(containerAtom2.getContainerAtomOfType(Atom.TYPE_mdia))).getContainerAtomOfType(Atom.TYPE_minf))).getContainerAtomOfType(Atom.TYPE_stbl)), gaplessInfoHolder));
            }
        }
        return arrayList;
    }

    public static Metadata parseUdta(Atom.LeafAtom leafAtom) {
        ParsableByteArray parsableByteArray = leafAtom.data;
        parsableByteArray.setPosition(8);
        Metadata metadata = new Metadata(new Metadata.Entry[0]);
        while (parsableByteArray.bytesLeft() >= 8) {
            int position = parsableByteArray.getPosition();
            int i6 = parsableByteArray.readInt();
            int i7 = parsableByteArray.readInt();
            if (i7 == 1835365473) {
                parsableByteArray.setPosition(position);
                metadata = metadata.copyWithAppendedEntriesFrom(parseUdtaMeta(parsableByteArray, position + i6));
            } else if (i7 == 1936553057) {
                parsableByteArray.setPosition(position);
                metadata = metadata.copyWithAppendedEntriesFrom(SmtaAtomUtil.parseSmta(parsableByteArray, position + i6));
            } else if (i7 == -1451722374) {
                metadata = metadata.copyWithAppendedEntriesFrom(parseXyz(parsableByteArray));
            }
            parsableByteArray.setPosition(position + i6);
        }
        return metadata;
    }

    private static Metadata parseUdtaMeta(ParsableByteArray parsableByteArray, int i6) {
        parsableByteArray.skipBytes(8);
        maybeSkipRemainingMetaAtomHeaderBytes(parsableByteArray);
        while (parsableByteArray.getPosition() < i6) {
            int position = parsableByteArray.getPosition();
            int i7 = parsableByteArray.readInt();
            if (parsableByteArray.readInt() == 1768715124) {
                parsableByteArray.setPosition(position);
                return parseIlst(parsableByteArray, position + i7);
            }
            parsableByteArray.setPosition(position + i7);
        }
        return null;
    }

    private static void parseVideoSampleEntry(ParsableByteArray parsableByteArray, int i6, int i7, int i8, int i9, int i10, DrmInitData drmInitData, StsdData stsdData, int i11) throws ParserException {
        int i12;
        int i13;
        String str;
        int i14;
        int i15;
        int i16;
        int i17;
        int i18 = i7;
        int i19 = i8;
        DrmInitData drmInitDataCopyWithSchemeType = drmInitData;
        StsdData stsdData2 = stsdData;
        parsableByteArray.setPosition(i18 + 16);
        parsableByteArray.skipBytes(16);
        int unsignedShort = parsableByteArray.readUnsignedShort();
        int unsignedShort2 = parsableByteArray.readUnsignedShort();
        parsableByteArray.skipBytes(50);
        int position = parsableByteArray.getPosition();
        int iIntValue = i6;
        if (iIntValue == 1701733238) {
            Pair<Integer, TrackEncryptionBox> sampleEntryEncryptionData = parseSampleEntryEncryptionData(parsableByteArray, i18, i19);
            if (sampleEntryEncryptionData != null) {
                iIntValue = ((Integer) sampleEntryEncryptionData.first).intValue();
                drmInitDataCopyWithSchemeType = drmInitDataCopyWithSchemeType == null ? null : drmInitDataCopyWithSchemeType.copyWithSchemeType(((TrackEncryptionBox) sampleEntryEncryptionData.second).schemeType);
                stsdData2.trackEncryptionBoxes[i11] = (TrackEncryptionBox) sampleEntryEncryptionData.second;
            }
            parsableByteArray.setPosition(position);
        }
        String str2 = MimeTypes.VIDEO_H263;
        String str3 = iIntValue == 1831958048 ? MimeTypes.VIDEO_MPEG : iIntValue == 1211250227 ? MimeTypes.VIDEO_H263 : null;
        int i20 = 8;
        float paspFromParent = 1.0f;
        List<byte[]> listU = null;
        String str4 = null;
        byte[] projFromParent = null;
        int i21 = -1;
        int i22 = -1;
        int iIsoColorPrimariesToColorSpace = -1;
        int i23 = -1;
        int iIsoTransferCharacteristicsToColorTransfer = -1;
        ByteBuffer byteBufferAllocateHdrStaticInfo = null;
        EsdsData esdsFromParent = null;
        boolean z6 = false;
        int i24 = 8;
        while (position - i18 < i19) {
            parsableByteArray.setPosition(position);
            int position2 = parsableByteArray.getPosition();
            int i25 = parsableByteArray.readInt();
            if (i25 == 0 && parsableByteArray.getPosition() - i18 == i19) {
                break;
            }
            ExtractorUtil.checkContainerInput(i25 > 0, "childAtomSize must be positive");
            int i26 = parsableByteArray.readInt();
            if (i26 == 1635148611) {
                ExtractorUtil.checkContainerInput(str3 == null, null);
                parsableByteArray.setPosition(position2 + 8);
                AvcConfig avcConfig = AvcConfig.parse(parsableByteArray);
                List<byte[]> list = avcConfig.initializationData;
                stsdData2.nalUnitLengthFieldLength = avcConfig.nalUnitLengthFieldLength;
                if (!z6) {
                    paspFromParent = avcConfig.pixelWidthHeightRatio;
                }
                String str5 = avcConfig.codecs;
                int i27 = avcConfig.maxNumReorderFrames;
                int i28 = avcConfig.colorSpace;
                int i29 = avcConfig.colorRange;
                int i30 = avcConfig.colorTransfer;
                int i31 = avcConfig.bitdepthLuma;
                i12 = position;
                i13 = iIntValue;
                str = str2;
                i22 = i27;
                iIsoColorPrimariesToColorSpace = i28;
                i23 = i29;
                iIsoTransferCharacteristicsToColorTransfer = i30;
                i24 = avcConfig.bitdepthChroma;
                i20 = i31;
                listU = list;
                str3 = MimeTypes.VIDEO_H264;
                str4 = str5;
            } else if (i26 == 1752589123) {
                ExtractorUtil.checkContainerInput(str3 == null, null);
                parsableByteArray.setPosition(position2 + 8);
                HevcConfig hevcConfig = HevcConfig.parse(parsableByteArray);
                List<byte[]> list2 = hevcConfig.initializationData;
                stsdData2.nalUnitLengthFieldLength = hevcConfig.nalUnitLengthFieldLength;
                if (!z6) {
                    paspFromParent = hevcConfig.pixelWidthHeightRatio;
                }
                int i32 = hevcConfig.maxNumReorderPics;
                String str6 = hevcConfig.codecs;
                int i33 = hevcConfig.colorSpace;
                int i34 = hevcConfig.colorRange;
                int i35 = hevcConfig.colorTransfer;
                listU = list2;
                int i36 = hevcConfig.bitdepthLuma;
                int i37 = hevcConfig.bitdepthChroma;
                i12 = position;
                i22 = i32;
                i13 = iIntValue;
                str = str2;
                iIsoColorPrimariesToColorSpace = i33;
                i23 = i34;
                iIsoTransferCharacteristicsToColorTransfer = i35;
                str3 = MimeTypes.VIDEO_H265;
                i24 = i37;
                i20 = i36;
                str4 = str6;
            } else {
                if (i26 == 1685480259 || i26 == 1685485123) {
                    i12 = position;
                    i13 = iIntValue;
                    str = str2;
                    i14 = i20;
                    i15 = i24;
                    i16 = iIsoColorPrimariesToColorSpace;
                    i17 = iIsoTransferCharacteristicsToColorTransfer;
                    DolbyVisionConfig dolbyVisionConfig = DolbyVisionConfig.parse(parsableByteArray);
                    if (dolbyVisionConfig != null) {
                        String str7 = dolbyVisionConfig.codecs;
                        str3 = MimeTypes.VIDEO_DOLBY_VISION;
                        str4 = str7;
                    }
                } else if (i26 == 1987076931) {
                    ExtractorUtil.checkContainerInput(str3 == null, null);
                    String str8 = iIntValue == 1987063864 ? MimeTypes.VIDEO_VP8 : MimeTypes.VIDEO_VP9;
                    parsableByteArray.setPosition(position2 + 12);
                    parsableByteArray.skipBytes(2);
                    int unsignedByte = parsableByteArray.readUnsignedByte();
                    int i38 = unsignedByte >> 4;
                    boolean z7 = (unsignedByte & 1) != 0;
                    int unsignedByte2 = parsableByteArray.readUnsignedByte();
                    int unsignedByte3 = parsableByteArray.readUnsignedByte();
                    iIsoColorPrimariesToColorSpace = ColorInfo.isoColorPrimariesToColorSpace(unsignedByte2);
                    i23 = z7 ? 1 : 2;
                    iIsoTransferCharacteristicsToColorTransfer = ColorInfo.isoTransferCharacteristicsToColorTransfer(unsignedByte3);
                    i12 = position;
                    i20 = i38;
                    i24 = i20;
                    i13 = iIntValue;
                    str = str2;
                    str3 = str8;
                } else if (i26 == 1635135811) {
                    int i39 = i25 - 8;
                    byte[] bArr = new byte[i39];
                    parsableByteArray.readBytes(bArr, 0, i39);
                    listU = O.u(bArr);
                    parsableByteArray.setPosition(position2 + 8);
                    ColorInfo av1c = parseAv1c(parsableByteArray);
                    int i40 = av1c.lumaBitdepth;
                    int i41 = av1c.chromaBitdepth;
                    int i42 = av1c.colorSpace;
                    int i43 = av1c.colorRange;
                    iIsoTransferCharacteristicsToColorTransfer = av1c.colorTransfer;
                    i12 = position;
                    i13 = iIntValue;
                    str = str2;
                    iIsoColorPrimariesToColorSpace = i42;
                    i23 = i43;
                    str3 = MimeTypes.VIDEO_AV1;
                    i20 = i40;
                    i24 = i41;
                } else if (i26 == 1668050025) {
                    if (byteBufferAllocateHdrStaticInfo == null) {
                        byteBufferAllocateHdrStaticInfo = allocateHdrStaticInfo();
                    }
                    ByteBuffer byteBuffer = byteBufferAllocateHdrStaticInfo;
                    byteBuffer.position(21);
                    byteBuffer.putShort(parsableByteArray.readShort());
                    byteBuffer.putShort(parsableByteArray.readShort());
                    byteBufferAllocateHdrStaticInfo = byteBuffer;
                    i12 = position;
                    i13 = iIntValue;
                    str = str2;
                } else if (i26 == 1835295606) {
                    if (byteBufferAllocateHdrStaticInfo == null) {
                        byteBufferAllocateHdrStaticInfo = allocateHdrStaticInfo();
                    }
                    ByteBuffer byteBuffer2 = byteBufferAllocateHdrStaticInfo;
                    short s6 = parsableByteArray.readShort();
                    short s7 = parsableByteArray.readShort();
                    short s8 = parsableByteArray.readShort();
                    i12 = position;
                    short s9 = parsableByteArray.readShort();
                    i13 = iIntValue;
                    short s10 = parsableByteArray.readShort();
                    str = str2;
                    short s11 = parsableByteArray.readShort();
                    short s12 = parsableByteArray.readShort();
                    int i44 = i24;
                    short s13 = parsableByteArray.readShort();
                    long unsignedInt = parsableByteArray.readUnsignedInt();
                    long unsignedInt2 = parsableByteArray.readUnsignedInt();
                    byteBuffer2.position(1);
                    byteBuffer2.putShort(s10);
                    byteBuffer2.putShort(s11);
                    byteBuffer2.putShort(s6);
                    byteBuffer2.putShort(s7);
                    byteBuffer2.putShort(s8);
                    byteBuffer2.putShort(s9);
                    byteBuffer2.putShort(s12);
                    byteBuffer2.putShort(s13);
                    byteBuffer2.putShort((short) (unsignedInt / 10000));
                    byteBuffer2.putShort((short) (unsignedInt2 / 10000));
                    byteBufferAllocateHdrStaticInfo = byteBuffer2;
                    i24 = i44;
                    i20 = i20;
                } else {
                    i12 = position;
                    i13 = iIntValue;
                    str = str2;
                    i14 = i20;
                    i15 = i24;
                    if (i26 == 1681012275) {
                        ExtractorUtil.checkContainerInput(str3 == null, null);
                        str3 = str;
                    } else if (i26 == 1702061171) {
                        ExtractorUtil.checkContainerInput(str3 == null, null);
                        esdsFromParent = parseEsdsFromParent(parsableByteArray, position2);
                        String str9 = esdsFromParent.mimeType;
                        byte[] bArr2 = esdsFromParent.initializationData;
                        if (bArr2 != null) {
                            listU = O.u(bArr2);
                        }
                        str3 = str9;
                    } else if (i26 == 1885434736) {
                        paspFromParent = parsePaspFromParent(parsableByteArray, position2);
                        i24 = i15;
                        i20 = i14;
                        z6 = true;
                    } else if (i26 == 1937126244) {
                        projFromParent = parseProjFromParent(parsableByteArray, position2, i25);
                    } else if (i26 == 1936995172) {
                        int unsignedByte4 = parsableByteArray.readUnsignedByte();
                        parsableByteArray.skipBytes(3);
                        if (unsignedByte4 == 0) {
                            int unsignedByte5 = parsableByteArray.readUnsignedByte();
                            if (unsignedByte5 == 0) {
                                i21 = 0;
                            } else if (unsignedByte5 == 1) {
                                i21 = 1;
                            } else if (unsignedByte5 == 2) {
                                i21 = 2;
                            } else if (unsignedByte5 == 3) {
                                i21 = 3;
                            }
                        }
                    } else {
                        i16 = iIsoColorPrimariesToColorSpace;
                        if (i26 == 1668246642) {
                            i17 = iIsoTransferCharacteristicsToColorTransfer;
                            if (i16 == -1 && i17 == -1) {
                                int i45 = parsableByteArray.readInt();
                                if (i45 == TYPE_nclx || i45 == TYPE_nclc) {
                                    int unsignedShort3 = parsableByteArray.readUnsignedShort();
                                    int unsignedShort4 = parsableByteArray.readUnsignedShort();
                                    parsableByteArray.skipBytes(2);
                                    boolean z8 = i25 == 19 && (parsableByteArray.readUnsignedByte() & 128) != 0;
                                    iIsoColorPrimariesToColorSpace = ColorInfo.isoColorPrimariesToColorSpace(unsignedShort3);
                                    i23 = z8 ? 1 : 2;
                                    iIsoTransferCharacteristicsToColorTransfer = ColorInfo.isoTransferCharacteristicsToColorTransfer(unsignedShort4);
                                    i24 = i15;
                                    i20 = i14;
                                } else {
                                    Log.w(TAG, "Unsupported color type: " + Atom.getAtomTypeString(i45));
                                }
                            }
                        } else {
                            i17 = iIsoTransferCharacteristicsToColorTransfer;
                        }
                    }
                    i24 = i15;
                    i20 = i14;
                }
                iIsoTransferCharacteristicsToColorTransfer = i17;
                iIsoColorPrimariesToColorSpace = i16;
                i24 = i15;
                i20 = i14;
            }
            position = i12 + i25;
            i18 = i7;
            i19 = i8;
            stsdData2 = stsdData;
            iIntValue = i13;
            str2 = str;
        }
        int i46 = i20;
        int i47 = i24;
        int i48 = iIsoColorPrimariesToColorSpace;
        int i49 = iIsoTransferCharacteristicsToColorTransfer;
        if (str3 == null) {
            return;
        }
        Format.Builder colorInfo = new Format.Builder().setId(i9).setSampleMimeType(str3).setCodecs(str4).setWidth(unsignedShort).setHeight(unsignedShort2).setPixelWidthHeightRatio(paspFromParent).setRotationDegrees(i10).setProjectionData(projFromParent).setStereoMode(i21).setInitializationData(listU).setMaxNumReorderSamples(i22).setDrmInitData(drmInitDataCopyWithSchemeType).setColorInfo(new ColorInfo.Builder().setColorSpace(i48).setColorRange(i23).setColorTransfer(i49).setHdrStaticInfo(byteBufferAllocateHdrStaticInfo != null ? byteBufferAllocateHdrStaticInfo.array() : null).setLumaBitdepth(i46).setChromaBitdepth(i47).build());
        if (esdsFromParent != null) {
            colorInfo.setAverageBitrate(AbstractC0872a.d0(esdsFromParent.bitrate)).setPeakBitrate(AbstractC0872a.d0(esdsFromParent.peakBitrate));
        }
        stsdData.format = colorInfo.build();
    }

    private static Metadata parseXyz(ParsableByteArray parsableByteArray) {
        short s6 = parsableByteArray.readShort();
        parsableByteArray.skipBytes(2);
        String string = parsableByteArray.readString(s6);
        int iMax = Math.max(string.lastIndexOf(43), string.lastIndexOf(45));
        try {
            return new Metadata(new Mp4LocationData(Float.parseFloat(string.substring(0, iMax)), Float.parseFloat(string.substring(iMax, string.length() - 1))));
        } catch (IndexOutOfBoundsException | NumberFormatException unused) {
            return null;
        }
    }
}
