package androidx.media3.extractor.mp4;

import androidx.media3.common.util.ParsableByteArray;
import androidx.media3.extractor.ExtractorInput;
import androidx.media3.extractor.SniffFailure;

/* JADX INFO: loaded from: classes.dex */
final class Sniffer {
    public static final int BRAND_HEIC = 1751476579;
    public static final int BRAND_QUICKTIME = 1903435808;
    private static final int[] COMPATIBLE_BRANDS = {1769172845, 1769172786, 1769172787, 1769172788, 1769172789, 1769172790, 1769172793, Atom.TYPE_avc1, Atom.TYPE_hvc1, Atom.TYPE_hev1, Atom.TYPE_av01, 1836069937, 1836069938, 862401121, 862401122, 862417462, 862417718, 862414134, 862414646, 1295275552, 1295270176, 1714714144, 1801741417, 1295275600, BRAND_QUICKTIME, 1297305174, 1684175153, 1769172332, 1885955686};
    private static final int SEARCH_LENGTH = 4096;

    private Sniffer() {
    }

    private static boolean isCompatibleBrand(int i6, boolean z6) {
        if ((i6 >>> 8) == 3368816) {
            return true;
        }
        if (i6 == 1751476579 && z6) {
            return true;
        }
        for (int i7 : COMPATIBLE_BRANDS) {
            if (i7 == i6) {
                return true;
            }
        }
        return false;
    }

    public static SniffFailure sniffFragmented(ExtractorInput extractorInput) {
        return sniffInternal(extractorInput, true, false);
    }

    /* JADX WARN: Removed duplicated region for block: B:23:0x007b  */
    /*
        Code decompiled incorrectly, please refer to instructions dump.
    */
    private static SniffFailure sniffInternal(ExtractorInput extractorInput, boolean z6, boolean z7) {
        SniffFailure sniffFailure;
        int i6;
        long j4;
        int i7;
        int i8;
        int i9;
        int[] iArr;
        long length = extractorInput.getLength();
        long j6 = -1;
        long j7 = 4096;
        if (length != -1 && length <= 4096) {
            j7 = length;
        }
        int i10 = (int) j7;
        ParsableByteArray parsableByteArray = new ParsableByteArray(64);
        int i11 = 0;
        int i12 = 0;
        boolean z8 = false;
        while (i12 < i10) {
            parsableByteArray.reset(8);
            boolean z9 = true;
            if (!extractorInput.peekFully(parsableByteArray.getData(), i11, 8, true)) {
                break;
            }
            long unsignedInt = parsableByteArray.readUnsignedInt();
            int i13 = parsableByteArray.readInt();
            if (unsignedInt == 1) {
                j4 = j6;
                extractorInput.peekFully(parsableByteArray.getData(), 8, 8);
                i8 = 16;
                parsableByteArray.setLimit(16);
                unsignedInt = parsableByteArray.readLong();
                i7 = i12;
            } else {
                j4 = j6;
                if (unsignedInt == 0) {
                    long length2 = extractorInput.getLength();
                    if (length2 != j4) {
                        i7 = i12;
                        unsignedInt = (length2 - extractorInput.getPeekPosition()) + ((long) 8);
                    } else {
                        i7 = i12;
                    }
                    i8 = 8;
                }
            }
            long j8 = unsignedInt;
            long j9 = i8;
            if (j8 < j9) {
                return new AtomSizeTooSmallSniffFailure(i13, j8, i8);
            }
            int i14 = i7 + i8;
            sniffFailure = null;
            if (i13 == 1836019574) {
                i10 += (int) j8;
                if (length != -1 && i10 > length) {
                    i10 = (int) length;
                }
                i12 = i14;
                j6 = j4;
                i11 = 0;
            } else {
                if (i13 == 1836019558 || i13 == 1836475768) {
                    i6 = 1;
                    break;
                }
                if (i13 == 1835295092) {
                    z8 = true;
                }
                long j10 = length;
                if ((((long) i14) + j8) - j9 >= i10) {
                    i6 = 0;
                    break;
                }
                int i15 = (int) (j8 - j9);
                i12 = i14 + i15;
                if (i13 != 1718909296) {
                    i9 = 0;
                    if (i15 != 0) {
                        extractorInput.advancePeekPosition(i15);
                    }
                } else {
                    if (i15 < 8) {
                        return new AtomSizeTooSmallSniffFailure(i13, i15, 8);
                    }
                    parsableByteArray.reset(i15);
                    i9 = 0;
                    extractorInput.peekFully(parsableByteArray.getData(), 0, i15);
                    int i16 = parsableByteArray.readInt();
                    if (isCompatibleBrand(i16, z7)) {
                        z8 = true;
                    }
                    parsableByteArray.skipBytes(4);
                    int iBytesLeft = parsableByteArray.bytesLeft() / 4;
                    if (!z8 && iBytesLeft > 0) {
                        iArr = new int[iBytesLeft];
                        int i17 = 0;
                        while (true) {
                            if (i17 >= iBytesLeft) {
                                z9 = z8;
                                break;
                            }
                            int i18 = parsableByteArray.readInt();
                            iArr[i17] = i18;
                            if (isCompatibleBrand(i18, z7)) {
                                break;
                            }
                            i17++;
                        }
                    } else {
                        z9 = z8;
                        iArr = null;
                    }
                    if (!z9) {
                        return new UnsupportedBrandsSniffFailure(i16, iArr);
                    }
                    z8 = z9;
                }
                i11 = i9;
                j6 = j4;
                length = j10;
            }
        }
        sniffFailure = null;
        i6 = i11;
        return !z8 ? NoDeclaredBrandSniffFailure.INSTANCE : z6 != i6 ? i6 != 0 ? IncorrectFragmentationSniffFailure.FILE_FRAGMENTED : IncorrectFragmentationSniffFailure.FILE_NOT_FRAGMENTED : sniffFailure;
    }

    public static SniffFailure sniffUnfragmented(ExtractorInput extractorInput, boolean z6) {
        return sniffInternal(extractorInput, false, z6);
    }
}
