package m2;

import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import androidx.media3.common.Format;
import androidx.media3.common.MimeTypes;
import androidx.media3.common.ParserException;
import androidx.media3.common.util.Assertions;
import androidx.media3.common.util.Log;
import androidx.media3.common.util.ParsableByteArray;
import androidx.media3.extractor.b1;
import androidx.media3.extractor.c1;
import androidx.media3.extractor.d1;
import androidx.media3.extractor.e1;
import androidx.media3.extractor.f1;
import com.google.common.collect.ImmutableList;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;

/* JADX INFO: loaded from: classes.dex */
public final class m extends k {

    @Nullable
    private c1 commentHeader;

    /* JADX INFO: renamed from: n, reason: collision with root package name */
    public int f30343n;

    /* JADX INFO: renamed from: o, reason: collision with root package name */
    public boolean f30344o;

    @Nullable
    private e1 vorbisIdHeader;

    @Nullable
    private l vorbisSetup;

    @Override // m2.k
    public final void a(long j10) {
        this.f30327c = j10;
        this.f30344o = j10 != 0;
        e1 e1Var = this.vorbisIdHeader;
        this.f30343n = e1Var != null ? e1Var.f3357e : 0;
    }

    @Override // m2.k
    public final long b(ParsableByteArray parsableByteArray) {
        if ((parsableByteArray.getData()[0] & 1) == 1) {
            return -1L;
        }
        byte b10 = parsableByteArray.getData()[0];
        l lVar = (l) Assertions.checkStateNotNull(this.vorbisSetup);
        boolean z10 = lVar.f30341d[(b10 >> 1) & (255 >>> (8 - lVar.f30342e))].f3344a;
        e1 e1Var = lVar.f30338a;
        int i10 = !z10 ? e1Var.f3357e : e1Var.f3358f;
        long j10 = this.f30344o ? (this.f30343n + i10) / 4 : 0;
        if (parsableByteArray.capacity() < parsableByteArray.limit() + 4) {
            parsableByteArray.reset(Arrays.copyOf(parsableByteArray.getData(), parsableByteArray.limit() + 4));
        } else {
            parsableByteArray.setLimit(parsableByteArray.limit() + 4);
        }
        byte[] data = parsableByteArray.getData();
        data[parsableByteArray.limit() - 4] = (byte) (j10 & 255);
        data[parsableByteArray.limit() - 3] = (byte) ((j10 >>> 8) & 255);
        data[parsableByteArray.limit() - 2] = (byte) ((j10 >>> 16) & 255);
        data[parsableByteArray.limit() - 1] = (byte) ((j10 >>> 24) & 255);
        this.f30344o = true;
        this.f30343n = i10;
        return j10;
    }

    @Override // m2.k
    public final boolean c(ParsableByteArray parsableByteArray, long j10, xyz.stream.utils.f fVar) throws IOException {
        if (this.vorbisSetup != null) {
            Assertions.checkNotNull((Format) fVar.f36132b);
            return false;
        }
        l setupHeaders = readSetupHeaders(parsableByteArray);
        this.vorbisSetup = setupHeaders;
        if (setupHeaders == null) {
            return true;
        }
        e1 e1Var = setupHeaders.f30338a;
        ArrayList arrayList = new ArrayList();
        arrayList.add(e1Var.f3359g);
        arrayList.add(setupHeaders.f30340c);
        fVar.f36132b = new Format.Builder().setContainerMimeType(MimeTypes.AUDIO_OGG).setSampleMimeType(MimeTypes.AUDIO_VORBIS).setAverageBitrate(e1Var.f3356d).setPeakBitrate(e1Var.f3355c).setChannelCount(e1Var.f3353a).setSampleRate(e1Var.f3354b).setInitializationData(arrayList).setMetadata(f1.parseVorbisComments(ImmutableList.r(setupHeaders.f30339b.f3336a))).build();
        return true;
    }

    @Override // m2.k
    public final void d(boolean z10) {
        super.d(z10);
        if (z10) {
            this.vorbisSetup = null;
            this.vorbisIdHeader = null;
            this.commentHeader = null;
        }
        this.f30343n = 0;
        this.f30344o = false;
    }

    @Nullable
    @VisibleForTesting
    public l readSetupHeaders(ParsableByteArray parsableByteArray) throws IOException {
        int i10;
        long jFloor;
        e1 e1Var = this.vorbisIdHeader;
        int i11 = 4;
        if (e1Var == null) {
            f1.c(1, parsableByteArray, false);
            parsableByteArray.readLittleEndianUnsignedIntToInt();
            int unsignedByte = parsableByteArray.readUnsignedByte();
            int littleEndianUnsignedIntToInt = parsableByteArray.readLittleEndianUnsignedIntToInt();
            int littleEndianInt = parsableByteArray.readLittleEndianInt();
            int i12 = littleEndianInt <= 0 ? -1 : littleEndianInt;
            int littleEndianInt2 = parsableByteArray.readLittleEndianInt();
            int i13 = littleEndianInt2 <= 0 ? -1 : littleEndianInt2;
            parsableByteArray.readLittleEndianInt();
            int unsignedByte2 = parsableByteArray.readUnsignedByte();
            int iPow = (int) Math.pow(2.0d, unsignedByte2 & 15);
            int iPow2 = (int) Math.pow(2.0d, (unsignedByte2 & 240) >> 4);
            parsableByteArray.readUnsignedByte();
            this.vorbisIdHeader = new e1(unsignedByte, littleEndianUnsignedIntToInt, i12, i13, iPow, iPow2, Arrays.copyOf(parsableByteArray.getData(), parsableByteArray.limit()));
            return null;
        }
        c1 c1Var = this.commentHeader;
        if (c1Var == null) {
            this.commentHeader = f1.b(parsableByteArray, true, true);
            return null;
        }
        byte[] bArr = new byte[parsableByteArray.limit()];
        System.arraycopy(parsableByteArray.getData(), 0, bArr, 0, parsableByteArray.limit());
        int i14 = 5;
        f1.c(5, parsableByteArray, false);
        int unsignedByte3 = parsableByteArray.readUnsignedByte() + 1;
        b1 b1Var = new b1(parsableByteArray.getData(), 0, 0);
        b1Var.d(parsableByteArray.getPosition() * 8);
        int i15 = 0;
        while (true) {
            int i16 = 2;
            int i17 = 16;
            if (i15 >= unsignedByte3) {
                int i18 = 6;
                int iC = b1Var.c(6) + 1;
                for (int i19 = 0; i19 < iC; i19++) {
                    if (b1Var.c(16) != 0) {
                        throw ParserException.createForMalformedContainer("placeholder of time domain transforms not zeroed out", null);
                    }
                }
                int iC2 = b1Var.c(6) + 1;
                int i20 = 0;
                while (true) {
                    int i21 = 3;
                    if (i20 >= iC2) {
                        int i22 = i18;
                        int iC3 = b1Var.c(i22) + 1;
                        int i23 = 0;
                        while (i23 < iC3) {
                            if (b1Var.c(16) > 2) {
                                throw ParserException.createForMalformedContainer("residueType greater than 2 is not decodable", null);
                            }
                            b1Var.d(24);
                            b1Var.d(24);
                            b1Var.d(24);
                            int iC4 = b1Var.c(i22) + 1;
                            int i24 = 8;
                            b1Var.d(8);
                            int[] iArr = new int[iC4];
                            for (int i25 = 0; i25 < iC4; i25++) {
                                iArr[i25] = ((b1Var.b() ? b1Var.c(5) : 0) * 8) + b1Var.c(3);
                            }
                            int i26 = 0;
                            while (i26 < iC4) {
                                int i27 = 0;
                                while (i27 < i24) {
                                    if ((iArr[i26] & (1 << i27)) != 0) {
                                        b1Var.d(i24);
                                    }
                                    i27++;
                                    i24 = 8;
                                }
                                i26++;
                                i24 = 8;
                            }
                            i23++;
                            i22 = 6;
                        }
                        int iC5 = b1Var.c(i22) + 1;
                        for (int i28 = 0; i28 < iC5; i28++) {
                            int iC6 = b1Var.c(16);
                            if (iC6 != 0) {
                                Log.e("VorbisUtil", "mapping type other than 0 not supported: " + iC6);
                            } else {
                                int iC7 = b1Var.b() ? b1Var.c(4) + 1 : 1;
                                boolean zB = b1Var.b();
                                int i29 = e1Var.f3353a;
                                if (zB) {
                                    int iC8 = b1Var.c(8) + 1;
                                    for (int i30 = 0; i30 < iC8; i30++) {
                                        int i31 = i29 - 1;
                                        b1Var.d(f1.a(i31));
                                        b1Var.d(f1.a(i31));
                                    }
                                }
                                if (b1Var.c(2) != 0) {
                                    throw ParserException.createForMalformedContainer("to reserved bits must be zero after mapping coupling steps", null);
                                }
                                if (iC7 > 1) {
                                    for (int i32 = 0; i32 < i29; i32++) {
                                        b1Var.d(4);
                                    }
                                }
                                for (int i33 = 0; i33 < iC7; i33++) {
                                    b1Var.d(8);
                                    b1Var.d(8);
                                    b1Var.d(8);
                                }
                            }
                        }
                        int iC9 = b1Var.c(6);
                        int i34 = iC9 + 1;
                        d1[] d1VarArr = new d1[i34];
                        for (int i35 = 0; i35 < i34; i35++) {
                            boolean zB2 = b1Var.b();
                            b1Var.c(16);
                            b1Var.c(16);
                            b1Var.c(8);
                            d1VarArr[i35] = new d1(zB2);
                        }
                        if (b1Var.b()) {
                            return new l(e1Var, c1Var, bArr, d1VarArr, f1.a(iC9));
                        }
                        throw ParserException.createForMalformedContainer("framing bit after modes not set as expected", null);
                    }
                    int iC10 = b1Var.c(i17);
                    if (iC10 == 0) {
                        int i36 = 8;
                        b1Var.d(8);
                        b1Var.d(16);
                        b1Var.d(16);
                        b1Var.d(6);
                        b1Var.d(8);
                        int iC11 = b1Var.c(4) + 1;
                        int i37 = 0;
                        while (i37 < iC11) {
                            b1Var.d(i36);
                            i37++;
                            i36 = 8;
                        }
                    } else {
                        if (iC10 != 1) {
                            throw ParserException.createForMalformedContainer("floor type greater than 1 not decodable: " + iC10, null);
                        }
                        int iC12 = b1Var.c(5);
                        int[] iArr2 = new int[iC12];
                        int i38 = -1;
                        for (int i39 = 0; i39 < iC12; i39++) {
                            int iC13 = b1Var.c(4);
                            iArr2[i39] = iC13;
                            if (iC13 > i38) {
                                i38 = iC13;
                            }
                        }
                        int i40 = i38 + 1;
                        int[] iArr3 = new int[i40];
                        int i41 = 0;
                        while (i41 < i40) {
                            iArr3[i41] = b1Var.c(i21) + 1;
                            int iC14 = b1Var.c(i16);
                            int i42 = 8;
                            if (iC14 > 0) {
                                b1Var.d(8);
                            }
                            int i43 = 0;
                            while (i43 < (1 << iC14)) {
                                b1Var.d(i42);
                                i43++;
                                i42 = 8;
                            }
                            i41++;
                            i21 = 3;
                            i16 = 2;
                        }
                        b1Var.d(i16);
                        int iC15 = b1Var.c(4);
                        int i44 = 0;
                        int i45 = 0;
                        for (int i46 = 0; i46 < iC12; i46++) {
                            i44 += iArr3[iArr2[i46]];
                            while (i45 < i44) {
                                b1Var.d(iC15);
                                i45++;
                            }
                        }
                    }
                    i20++;
                    i18 = 6;
                    i17 = 16;
                    i16 = 2;
                }
            } else {
                if (b1Var.c(24) != 5653314) {
                    throw ParserException.createForMalformedContainer("expected code book to start with [0x56, 0x43, 0x42] at " + ((b1Var.f3329d * 8) + b1Var.f3330e), null);
                }
                int iC16 = b1Var.c(16);
                int iC17 = b1Var.c(24);
                if (b1Var.b()) {
                    b1Var.d(i14);
                    for (int iC18 = 0; iC18 < iC17; iC18 += b1Var.c(f1.a(iC17 - iC18))) {
                    }
                } else {
                    boolean zB3 = b1Var.b();
                    for (int i47 = 0; i47 < iC17; i47++) {
                        if (!zB3) {
                            b1Var.d(i14);
                        } else if (b1Var.b()) {
                            b1Var.d(i14);
                        }
                    }
                }
                int iC19 = b1Var.c(i11);
                if (iC19 > 2) {
                    throw ParserException.createForMalformedContainer("lookup type greater than 2 not decodable: " + iC19, null);
                }
                if (iC19 == 1 || iC19 == 2) {
                    b1Var.d(32);
                    b1Var.d(32);
                    int iC20 = b1Var.c(i11) + 1;
                    b1Var.d(1);
                    if (iC19 != 1) {
                        i10 = unsignedByte3;
                        jFloor = ((long) iC16) * ((long) iC17);
                    } else if (iC16 != 0) {
                        i10 = unsignedByte3;
                        jFloor = (long) Math.floor(Math.pow(iC17, 1.0d / ((double) iC16)));
                    } else {
                        i10 = unsignedByte3;
                        jFloor = 0;
                    }
                    b1Var.d((int) (jFloor * ((long) iC20)));
                } else {
                    i10 = unsignedByte3;
                }
                i15++;
                unsignedByte3 = i10;
                i11 = 4;
                i14 = 5;
            }
        }
    }
}
