package androidx.media3.extractor.metadata.id3;

import E3.f;
import F3.L;
import F3.O;
import F3.p0;
import L4.a;
import Z0.o;
import android.os.Parcelable;
import androidx.media3.common.C1118r;
import androidx.media3.common.Metadata;
import androidx.media3.common.MimeTypes;
import androidx.media3.common.util.Log;
import androidx.media3.common.util.ParsableBitArray;
import androidx.media3.common.util.ParsableByteArray;
import androidx.media3.common.util.UnstableApi;
import androidx.media3.common.util.Util;
import androidx.media3.extractor.metadata.MetadataInputBuffer;
import androidx.media3.extractor.metadata.SimpleMetadataDecoder;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Locale;

/* JADX INFO: loaded from: classes.dex */
@UnstableApi
public final class Id3Decoder extends SimpleMetadataDecoder {
    private static final int FRAME_FLAG_V3_HAS_GROUP_IDENTIFIER = 32;
    private static final int FRAME_FLAG_V3_IS_COMPRESSED = 128;
    private static final int FRAME_FLAG_V3_IS_ENCRYPTED = 64;
    private static final int FRAME_FLAG_V4_HAS_DATA_LENGTH = 1;
    private static final int FRAME_FLAG_V4_HAS_GROUP_IDENTIFIER = 64;
    private static final int FRAME_FLAG_V4_IS_COMPRESSED = 8;
    private static final int FRAME_FLAG_V4_IS_ENCRYPTED = 4;
    private static final int FRAME_FLAG_V4_IS_UNSYNCHRONIZED = 2;
    public static final int ID3_HEADER_LENGTH = 10;
    public static final int ID3_TAG = 4801587;
    private static final int ID3_TEXT_ENCODING_ISO_8859_1 = 0;
    private static final int ID3_TEXT_ENCODING_UTF_16 = 1;
    private static final int ID3_TEXT_ENCODING_UTF_16BE = 2;
    private static final int ID3_TEXT_ENCODING_UTF_8 = 3;
    public static final FramePredicate NO_FRAMES_PREDICATE = new C1118r(10);
    private static final String TAG = "Id3Decoder";
    private final FramePredicate framePredicate;

    public interface FramePredicate {
        boolean evaluate(int i6, int i7, int i8, int i9, int i10);
    }

    public static final class Id3Header {
        private final int framesSize;
        private final boolean isUnsynchronized;
        private final int majorVersion;

        public Id3Header(int i6, boolean z6, int i7) {
            this.majorVersion = i6;
            this.isUnsynchronized = z6;
            this.framesSize = i7;
        }
    }

    public Id3Decoder() {
        this(null);
    }

    private static byte[] copyOfRangeIfValid(byte[] bArr, int i6, int i7) {
        return i7 <= i6 ? Util.EMPTY_BYTE_ARRAY : Arrays.copyOfRange(bArr, i6, i7);
    }

    private static ApicFrame decodeApicFrame(ParsableByteArray parsableByteArray, int i6, int i7) {
        int iIndexOfZeroByte;
        String strConcat;
        int unsignedByte = parsableByteArray.readUnsignedByte();
        Charset charset = getCharset(unsignedByte);
        int i8 = i6 - 1;
        byte[] bArr = new byte[i8];
        parsableByteArray.readBytes(bArr, 0, i8);
        if (i7 == 2) {
            strConcat = "image/" + a.j0(new String(bArr, 0, 3, f.f1144b));
            if ("image/jpg".equals(strConcat)) {
                strConcat = "image/jpeg";
            }
            iIndexOfZeroByte = 2;
        } else {
            iIndexOfZeroByte = indexOfZeroByte(bArr, 0);
            String strJ0 = a.j0(new String(bArr, 0, iIndexOfZeroByte, f.f1144b));
            strConcat = strJ0.indexOf(47) == -1 ? "image/".concat(strJ0) : strJ0;
        }
        int i9 = bArr[iIndexOfZeroByte + 1] & 255;
        int i10 = iIndexOfZeroByte + 2;
        int iIndexOfTerminator = indexOfTerminator(bArr, i10, unsignedByte);
        return new ApicFrame(strConcat, new String(bArr, i10, iIndexOfTerminator - i10, charset), i9, copyOfRangeIfValid(bArr, iIndexOfTerminator + delimiterLength(unsignedByte), i8));
    }

    private static BinaryFrame decodeBinaryFrame(ParsableByteArray parsableByteArray, int i6, String str) {
        byte[] bArr = new byte[i6];
        parsableByteArray.readBytes(bArr, 0, i6);
        return new BinaryFrame(str, bArr);
    }

    private static ChapterFrame decodeChapterFrame(ParsableByteArray parsableByteArray, int i6, int i7, boolean z6, int i8, FramePredicate framePredicate) throws Throwable {
        int position = parsableByteArray.getPosition();
        int iIndexOfZeroByte = indexOfZeroByte(parsableByteArray.getData(), position);
        String str = new String(parsableByteArray.getData(), position, iIndexOfZeroByte - position, f.f1144b);
        parsableByteArray.setPosition(iIndexOfZeroByte + 1);
        int i9 = parsableByteArray.readInt();
        int i10 = parsableByteArray.readInt();
        long unsignedInt = parsableByteArray.readUnsignedInt();
        if (unsignedInt == 4294967295L) {
            unsignedInt = -1;
        }
        long unsignedInt2 = parsableByteArray.readUnsignedInt();
        long j4 = unsignedInt2 == 4294967295L ? -1L : unsignedInt2;
        ArrayList arrayList = new ArrayList();
        int i11 = position + i6;
        while (parsableByteArray.getPosition() < i11) {
            Id3Frame id3FrameDecodeFrame = decodeFrame(i7, parsableByteArray, z6, i8, framePredicate);
            if (id3FrameDecodeFrame != null) {
                arrayList.add(id3FrameDecodeFrame);
            }
        }
        return new ChapterFrame(str, i9, i10, unsignedInt, j4, (Id3Frame[]) arrayList.toArray(new Id3Frame[0]));
    }

    private static ChapterTocFrame decodeChapterTOCFrame(ParsableByteArray parsableByteArray, int i6, int i7, boolean z6, int i8, FramePredicate framePredicate) throws Throwable {
        int position = parsableByteArray.getPosition();
        int iIndexOfZeroByte = indexOfZeroByte(parsableByteArray.getData(), position);
        String str = new String(parsableByteArray.getData(), position, iIndexOfZeroByte - position, f.f1144b);
        parsableByteArray.setPosition(iIndexOfZeroByte + 1);
        int unsignedByte = parsableByteArray.readUnsignedByte();
        boolean z7 = (unsignedByte & 2) != 0;
        boolean z8 = (unsignedByte & 1) != 0;
        int unsignedByte2 = parsableByteArray.readUnsignedByte();
        String[] strArr = new String[unsignedByte2];
        for (int i9 = 0; i9 < unsignedByte2; i9++) {
            int position2 = parsableByteArray.getPosition();
            int iIndexOfZeroByte2 = indexOfZeroByte(parsableByteArray.getData(), position2);
            strArr[i9] = new String(parsableByteArray.getData(), position2, iIndexOfZeroByte2 - position2, f.f1144b);
            parsableByteArray.setPosition(iIndexOfZeroByte2 + 1);
        }
        ArrayList arrayList = new ArrayList();
        int i10 = position + i6;
        while (parsableByteArray.getPosition() < i10) {
            Id3Frame id3FrameDecodeFrame = decodeFrame(i7, parsableByteArray, z6, i8, framePredicate);
            if (id3FrameDecodeFrame != null) {
                arrayList.add(id3FrameDecodeFrame);
            }
        }
        return new ChapterTocFrame(str, z7, z8, strArr, (Id3Frame[]) arrayList.toArray(new Id3Frame[0]));
    }

    private static CommentFrame decodeCommentFrame(ParsableByteArray parsableByteArray, int i6) {
        if (i6 < 4) {
            return null;
        }
        int unsignedByte = parsableByteArray.readUnsignedByte();
        Charset charset = getCharset(unsignedByte);
        byte[] bArr = new byte[3];
        parsableByteArray.readBytes(bArr, 0, 3);
        String str = new String(bArr, 0, 3);
        int i7 = i6 - 4;
        byte[] bArr2 = new byte[i7];
        parsableByteArray.readBytes(bArr2, 0, i7);
        int iIndexOfTerminator = indexOfTerminator(bArr2, 0, unsignedByte);
        String str2 = new String(bArr2, 0, iIndexOfTerminator, charset);
        int iDelimiterLength = iIndexOfTerminator + delimiterLength(unsignedByte);
        return new CommentFrame(str, str2, decodeStringIfValid(bArr2, iDelimiterLength, indexOfTerminator(bArr2, iDelimiterLength, unsignedByte), charset));
    }

    /* JADX WARN: Multi-variable type inference failed */
    /* JADX WARN: Removed duplicated region for block: B:190:0x024b  */
    /* JADX WARN: Type inference failed for: r12v1 */
    /* JADX WARN: Type inference failed for: r12v2, types: [androidx.media3.extractor.metadata.id3.Id3Frame] */
    /* JADX WARN: Type inference failed for: r12v4 */
    /* JADX WARN: Type inference failed for: r1v1 */
    /* JADX WARN: Type inference failed for: r1v10, types: [androidx.media3.common.util.ParsableByteArray] */
    /* JADX WARN: Type inference failed for: r1v13 */
    /* JADX WARN: Type inference failed for: r1v14 */
    /* JADX WARN: Type inference failed for: r1v15 */
    /* JADX WARN: Type inference failed for: r1v16 */
    /* JADX WARN: Type inference failed for: r1v17 */
    /* JADX WARN: Type inference failed for: r1v18 */
    /* JADX WARN: Type inference failed for: r1v19 */
    /* JADX WARN: Type inference failed for: r1v2, types: [int] */
    /* JADX WARN: Type inference failed for: r1v21 */
    /* JADX WARN: Type inference failed for: r1v24 */
    /* JADX WARN: Type inference failed for: r1v25 */
    /* JADX WARN: Type inference failed for: r1v26 */
    /* JADX WARN: Type inference failed for: r1v27 */
    /* JADX WARN: Type inference failed for: r1v28, types: [androidx.media3.common.util.ParsableByteArray] */
    /* JADX WARN: Type inference failed for: r1v29 */
    /* JADX WARN: Type inference failed for: r1v31 */
    /* JADX WARN: Type inference failed for: r1v32 */
    /* JADX WARN: Type inference failed for: r1v33 */
    /* JADX WARN: Type inference failed for: r1v34 */
    /* JADX WARN: Type inference failed for: r1v35 */
    /* JADX WARN: Type inference failed for: r1v36 */
    /* JADX WARN: Type inference failed for: r1v37 */
    /* JADX WARN: Type inference failed for: r1v4 */
    /* JADX WARN: Type inference failed for: r1v5 */
    /* JADX WARN: Type inference failed for: r1v6 */
    /* JADX WARN: Type inference failed for: r1v7 */
    /* JADX WARN: Type inference failed for: r1v8 */
    /* JADX WARN: Type inference failed for: r1v9, types: [androidx.media3.common.util.ParsableByteArray] */
    /* JADX WARN: Type inference failed for: r9v1 */
    /* JADX WARN: Type inference failed for: r9v10 */
    /* JADX WARN: Type inference failed for: r9v11 */
    /* JADX WARN: Type inference failed for: r9v13 */
    /* JADX WARN: Type inference failed for: r9v14 */
    /* JADX WARN: Type inference failed for: r9v15 */
    /* JADX WARN: Type inference failed for: r9v16 */
    /* JADX WARN: Type inference failed for: r9v17 */
    /* JADX WARN: Type inference failed for: r9v2 */
    /* JADX WARN: Type inference failed for: r9v3, types: [int] */
    /* JADX WARN: Type inference failed for: r9v6 */
    /* JADX WARN: Type inference failed for: r9v7 */
    /* JADX WARN: Type inference failed for: r9v8 */
    /* JADX WARN: Type inference failed for: r9v9 */
    /*
        Code decompiled incorrectly, please refer to instructions dump.
    */
    private static Id3Frame decodeFrame(int i6, ParsableByteArray parsableByteArray, boolean z6, int i7, FramePredicate framePredicate) throws Throwable {
        int unsignedIntToInt;
        int i8;
        ?? r12;
        boolean z7;
        boolean z8;
        boolean z9;
        boolean z10;
        ?? r9;
        int i9;
        int i10;
        ?? r13;
        Throwable th;
        ?? r14;
        ?? r122;
        ?? r92;
        ?? r93;
        Parcelable parcelableDecodeChapterFrame;
        int i11 = i6;
        int unsignedByte = parsableByteArray.readUnsignedByte();
        int unsignedByte2 = parsableByteArray.readUnsignedByte();
        int unsignedByte3 = parsableByteArray.readUnsignedByte();
        int unsignedByte4 = i11 >= 3 ? parsableByteArray.readUnsignedByte() : 0;
        if (i11 == 4) {
            unsignedIntToInt = parsableByteArray.readUnsignedIntToInt();
            if (!z6) {
                unsignedIntToInt = (((unsignedIntToInt >> 24) & 255) << 21) | (unsignedIntToInt & 255) | (((unsignedIntToInt >> 8) & 255) << 7) | (((unsignedIntToInt >> 16) & 255) << 14);
            }
        } else {
            unsignedIntToInt = i11 == 3 ? parsableByteArray.readUnsignedIntToInt() : parsableByteArray.readUnsignedInt24();
        }
        int iRemoveUnsynchronization = unsignedIntToInt;
        int unsignedShort = i11 >= 3 ? parsableByteArray.readUnsignedShort() : 0;
        if (unsignedByte == 0 && unsignedByte2 == 0 && unsignedByte3 == 0 && unsignedByte4 == 0 && iRemoveUnsynchronization == 0 && unsignedShort == 0) {
            parsableByteArray.setPosition(parsableByteArray.limit());
            return null;
        }
        int position = parsableByteArray.getPosition() + iRemoveUnsynchronization;
        if (position > parsableByteArray.limit()) {
            Log.w(TAG, "Frame size exceeds remaining tag data");
            parsableByteArray.setPosition(parsableByteArray.limit());
            return null;
        }
        if (framePredicate != null) {
            boolean zEvaluate = framePredicate.evaluate(i11, unsignedByte, unsignedByte2, unsignedByte3, unsignedByte4);
            i11 = i11;
            r12 = unsignedByte;
            i8 = unsignedByte2;
            if (!zEvaluate) {
                parsableByteArray.setPosition(position);
                return null;
            }
        } else {
            i8 = unsignedByte2;
            r12 = unsignedByte;
        }
        if (i11 == 3) {
            z7 = (unsignedShort & 128) != 0;
            boolean z11 = (unsignedShort & 64) != 0;
            z10 = false;
            z = z7;
            z8 = (unsignedShort & 32) != 0;
            z9 = z11;
        } else if (i11 == 4) {
            boolean z12 = (unsignedShort & 64) != 0;
            boolean z13 = (unsignedShort & 8) != 0;
            boolean z14 = (unsignedShort & 4) != 0;
            boolean z15 = (unsignedShort & 2) != 0;
            z = (unsignedShort & 1) != 0;
            z8 = z12;
            z7 = z;
            z = z13;
            z9 = z14;
            z10 = z15;
        } else {
            z7 = false;
            z8 = false;
            z9 = false;
            z10 = false;
        }
        if (z || z9) {
            Log.w(TAG, "Skipping unsupported compressed or encrypted frame");
            parsableByteArray.setPosition(position);
            return null;
        }
        if (z8) {
            iRemoveUnsynchronization--;
            parsableByteArray.skipBytes(1);
        }
        if (z7) {
            iRemoveUnsynchronization -= 4;
            parsableByteArray.skipBytes(4);
        }
        if (z10) {
            iRemoveUnsynchronization = removeUnsynchronization(parsableByteArray, iRemoveUnsynchronization);
        }
        try {
            try {
            } catch (Throwable th2) {
                th = th2;
                r14 = parsableByteArray;
            }
        } catch (Exception e6) {
            e = e6;
            int i12 = iRemoveUnsynchronization;
            iRemoveUnsynchronization = i8;
            i8 = i12;
            r9 = r12;
            i9 = unsignedByte3;
            i10 = unsignedByte4;
            r13 = parsableByteArray;
            th = null;
            r13.setPosition(position);
            r122 = th;
            r92 = r9;
            if (r122 == 0) {
            }
            return r122;
        } catch (OutOfMemoryError e7) {
            e = e7;
            int i122 = iRemoveUnsynchronization;
            iRemoveUnsynchronization = i8;
            i8 = i122;
            r9 = r12;
            i9 = unsignedByte3;
            i10 = unsignedByte4;
            r13 = parsableByteArray;
            th = null;
            r13.setPosition(position);
            r122 = th;
            r92 = r9;
            if (r122 == 0) {
            }
            return r122;
        }
        if (r12 == 84 && i8 == 88 && unsignedByte3 == 88 && (i11 == 2 || unsignedByte4 == 88)) {
            parcelableDecodeChapterFrame = decodeTxxxFrame(parsableByteArray, iRemoveUnsynchronization);
        } else if (r12 == 84) {
            parcelableDecodeChapterFrame = decodeTextInformationFrame(parsableByteArray, iRemoveUnsynchronization, getFrameId(i11, r12, i8, unsignedByte3, unsignedByte4));
        } else if (r12 == 87 && i8 == 88 && unsignedByte3 == 88 && (i11 == 2 || unsignedByte4 == 88)) {
            parcelableDecodeChapterFrame = decodeWxxxFrame(parsableByteArray, iRemoveUnsynchronization);
        } else if (r12 == 87) {
            parcelableDecodeChapterFrame = decodeUrlLinkFrame(parsableByteArray, iRemoveUnsynchronization, getFrameId(i11, r12, i8, unsignedByte3, unsignedByte4));
        } else if (r12 == 80 && i8 == 82 && unsignedByte3 == 73 && unsignedByte4 == 86) {
            parcelableDecodeChapterFrame = decodePrivFrame(parsableByteArray, iRemoveUnsynchronization);
        } else {
            if (r12 != 71 || i8 != 69 || unsignedByte3 != 79 || (unsignedByte4 != 66 && i11 != 2)) {
                th = null;
                try {
                } catch (Exception e8) {
                    e = e8;
                    int i13 = iRemoveUnsynchronization;
                    iRemoveUnsynchronization = i8;
                    i8 = i13;
                    r9 = r12;
                    i9 = unsignedByte3;
                    i10 = unsignedByte4;
                    r13 = parsableByteArray;
                    r13.setPosition(position);
                    r122 = th;
                    r92 = r9;
                    if (r122 == 0) {
                    }
                    return r122;
                } catch (OutOfMemoryError e9) {
                    e = e9;
                    int i132 = iRemoveUnsynchronization;
                    iRemoveUnsynchronization = i8;
                    i8 = i132;
                    r9 = r12;
                    i9 = unsignedByte3;
                    i10 = unsignedByte4;
                    r13 = parsableByteArray;
                    r13.setPosition(position);
                    r122 = th;
                    r92 = r9;
                    if (r122 == 0) {
                    }
                    return r122;
                }
                if (i11 != 2 ? r12 == 65 && i8 == 80 && unsignedByte3 == 73 && unsignedByte4 == 67 : r12 == 80 && i8 == 73 && unsignedByte3 == 67) {
                    parcelableDecodeChapterFrame = decodeApicFrame(parsableByteArray, iRemoveUnsynchronization, i11);
                } else {
                    if (r12 != 67 || i8 != 79 || unsignedByte3 != 77 || (unsignedByte4 != 77 && i11 != 2)) {
                        if (r12 == 67 && i8 == 72 && unsignedByte3 == 65 && unsignedByte4 == 80) {
                            int i14 = iRemoveUnsynchronization;
                            iRemoveUnsynchronization = i8;
                            i8 = i14;
                            r93 = r12;
                            i9 = unsignedByte3;
                            i10 = unsignedByte4;
                            try {
                                parcelableDecodeChapterFrame = decodeChapterFrame(parsableByteArray, i8, i11, z6, i7, framePredicate);
                                i11 = i6;
                                r12 = parsableByteArray;
                                r12.setPosition(position);
                                r122 = parcelableDecodeChapterFrame;
                                e = th;
                                r92 = r93;
                            } catch (Exception e10) {
                                e = e10;
                                i11 = i6;
                                r13 = parsableByteArray;
                                r9 = r93;
                                r13.setPosition(position);
                                r122 = th;
                                r92 = r9;
                            } catch (OutOfMemoryError e11) {
                                e = e11;
                                i11 = i6;
                                r13 = parsableByteArray;
                                r9 = r93;
                                r13.setPosition(position);
                                r122 = th;
                                r92 = r9;
                            } catch (Throwable th3) {
                                th = th3;
                                r14 = parsableByteArray;
                                r14.setPosition(position);
                                throw th;
                            }
                        } else {
                            int i15 = iRemoveUnsynchronization;
                            iRemoveUnsynchronization = i8;
                            i8 = i15;
                            r93 = r12;
                            i9 = unsignedByte3;
                            i10 = unsignedByte4;
                            try {
                                if (r93 == 67 && iRemoveUnsynchronization == 84 && i9 == 79 && i10 == 67) {
                                    i11 = i6;
                                    ParsableByteArray parsableByteArray2 = parsableByteArray;
                                    parcelableDecodeChapterFrame = decodeChapterTOCFrame(parsableByteArray2, i8, i11, z6, i7, framePredicate);
                                    r12 = parsableByteArray2;
                                } else {
                                    i11 = i6;
                                    ParsableByteArray parsableByteArray3 = parsableByteArray;
                                    if (r93 == 77 && iRemoveUnsynchronization == 76 && i9 == 76 && i10 == 84) {
                                        parcelableDecodeChapterFrame = decodeMlltFrame(parsableByteArray3, i8);
                                        r12 = parsableByteArray3;
                                    } else {
                                        parcelableDecodeChapterFrame = decodeBinaryFrame(parsableByteArray3, i8, getFrameId(i11, r93 == true ? 1 : 0, iRemoveUnsynchronization, i9, i10));
                                        r12 = parsableByteArray3;
                                    }
                                }
                                r12.setPosition(position);
                                r122 = parcelableDecodeChapterFrame;
                                e = th;
                                r92 = r93;
                            } catch (Exception e12) {
                                e = e12;
                                r13 = r12;
                                r9 = r93;
                                r13.setPosition(position);
                                r122 = th;
                                r92 = r9;
                            } catch (OutOfMemoryError e13) {
                                e = e13;
                                r13 = r12;
                                r9 = r93;
                                r13.setPosition(position);
                                r122 = th;
                                r92 = r9;
                            } catch (Throwable th4) {
                                th = th4;
                                r14 = r12;
                                r14.setPosition(position);
                                throw th;
                            }
                        }
                        if (r122 == 0) {
                            Log.w(TAG, "Failed to decode frame: id=" + getFrameId(i11, r92, iRemoveUnsynchronization, i9, i10) + ", frameSize=" + i8, e);
                        }
                        return r122;
                    }
                    parcelableDecodeChapterFrame = decodeCommentFrame(parsableByteArray, iRemoveUnsynchronization);
                }
                int i16 = iRemoveUnsynchronization;
                iRemoveUnsynchronization = i8;
                i8 = i16;
                r93 = r12;
                i9 = unsignedByte3;
                i10 = unsignedByte4;
                r12 = parsableByteArray;
                r12.setPosition(position);
                r122 = parcelableDecodeChapterFrame;
                e = th;
                r92 = r93;
                if (r122 == 0) {
                }
                return r122;
            }
            parcelableDecodeChapterFrame = decodeGeobFrame(parsableByteArray, iRemoveUnsynchronization);
        }
        int i17 = iRemoveUnsynchronization;
        iRemoveUnsynchronization = i8;
        i8 = i17;
        r93 = r12;
        i9 = unsignedByte3;
        i10 = unsignedByte4;
        r12 = parsableByteArray;
        th = null;
        r12.setPosition(position);
        r122 = parcelableDecodeChapterFrame;
        e = th;
        r92 = r93;
        if (r122 == 0) {
        }
        return r122;
    }

    private static GeobFrame decodeGeobFrame(ParsableByteArray parsableByteArray, int i6) {
        int unsignedByte = parsableByteArray.readUnsignedByte();
        Charset charset = getCharset(unsignedByte);
        int i7 = i6 - 1;
        byte[] bArr = new byte[i7];
        parsableByteArray.readBytes(bArr, 0, i7);
        int iIndexOfZeroByte = indexOfZeroByte(bArr, 0);
        String strNormalizeMimeType = MimeTypes.normalizeMimeType(new String(bArr, 0, iIndexOfZeroByte, f.f1144b));
        int i8 = iIndexOfZeroByte + 1;
        int iIndexOfTerminator = indexOfTerminator(bArr, i8, unsignedByte);
        String strDecodeStringIfValid = decodeStringIfValid(bArr, i8, iIndexOfTerminator, charset);
        int iDelimiterLength = iIndexOfTerminator + delimiterLength(unsignedByte);
        int iIndexOfTerminator2 = indexOfTerminator(bArr, iDelimiterLength, unsignedByte);
        return new GeobFrame(strNormalizeMimeType, strDecodeStringIfValid, decodeStringIfValid(bArr, iDelimiterLength, iIndexOfTerminator2, charset), copyOfRangeIfValid(bArr, iIndexOfTerminator2 + delimiterLength(unsignedByte), i7));
    }

    private static Id3Header decodeHeader(ParsableByteArray parsableByteArray) {
        if (parsableByteArray.bytesLeft() < 10) {
            Log.w(TAG, "Data too short to be an ID3 tag");
            return null;
        }
        int unsignedInt24 = parsableByteArray.readUnsignedInt24();
        if (unsignedInt24 != 4801587) {
            Log.w(TAG, "Unexpected first three bytes of ID3 tag header: 0x".concat(String.format("%06X", Integer.valueOf(unsignedInt24))));
            return null;
        }
        int unsignedByte = parsableByteArray.readUnsignedByte();
        parsableByteArray.skipBytes(1);
        int unsignedByte2 = parsableByteArray.readUnsignedByte();
        int synchSafeInt = parsableByteArray.readSynchSafeInt();
        if (unsignedByte == 2) {
            if ((unsignedByte2 & 64) != 0) {
                Log.w(TAG, "Skipped ID3 tag with majorVersion=2 and undefined compression scheme");
                return null;
            }
        } else if (unsignedByte == 3) {
            if ((unsignedByte2 & 64) != 0) {
                int i6 = parsableByteArray.readInt();
                parsableByteArray.skipBytes(i6);
                synchSafeInt -= i6 + 4;
            }
        } else {
            if (unsignedByte != 4) {
                o.v(unsignedByte, "Skipped ID3 tag with unsupported majorVersion=", TAG);
                return null;
            }
            if ((unsignedByte2 & 64) != 0) {
                int synchSafeInt2 = parsableByteArray.readSynchSafeInt();
                parsableByteArray.skipBytes(synchSafeInt2 - 4);
                synchSafeInt -= synchSafeInt2;
            }
            if ((unsignedByte2 & 16) != 0) {
                synchSafeInt -= 10;
            }
        }
        return new Id3Header(unsignedByte, unsignedByte < 4 && (unsignedByte2 & 128) != 0, synchSafeInt);
    }

    private static MlltFrame decodeMlltFrame(ParsableByteArray parsableByteArray, int i6) {
        int unsignedShort = parsableByteArray.readUnsignedShort();
        int unsignedInt24 = parsableByteArray.readUnsignedInt24();
        int unsignedInt242 = parsableByteArray.readUnsignedInt24();
        int unsignedByte = parsableByteArray.readUnsignedByte();
        int unsignedByte2 = parsableByteArray.readUnsignedByte();
        ParsableBitArray parsableBitArray = new ParsableBitArray();
        parsableBitArray.reset(parsableByteArray);
        int i7 = ((i6 - 10) * 8) / (unsignedByte + unsignedByte2);
        int[] iArr = new int[i7];
        int[] iArr2 = new int[i7];
        for (int i8 = 0; i8 < i7; i8++) {
            int bits = parsableBitArray.readBits(unsignedByte);
            int bits2 = parsableBitArray.readBits(unsignedByte2);
            iArr[i8] = bits;
            iArr2[i8] = bits2;
        }
        return new MlltFrame(unsignedShort, unsignedInt24, unsignedInt242, iArr, iArr2);
    }

    private static PrivFrame decodePrivFrame(ParsableByteArray parsableByteArray, int i6) {
        byte[] bArr = new byte[i6];
        parsableByteArray.readBytes(bArr, 0, i6);
        int iIndexOfZeroByte = indexOfZeroByte(bArr, 0);
        return new PrivFrame(new String(bArr, 0, iIndexOfZeroByte, f.f1144b), copyOfRangeIfValid(bArr, iIndexOfZeroByte + 1, i6));
    }

    private static String decodeStringIfValid(byte[] bArr, int i6, int i7, Charset charset) {
        return (i7 <= i6 || i7 > bArr.length) ? "" : new String(bArr, i6, i7 - i6, charset);
    }

    private static TextInformationFrame decodeTextInformationFrame(ParsableByteArray parsableByteArray, int i6, String str) {
        if (i6 < 1) {
            return null;
        }
        int unsignedByte = parsableByteArray.readUnsignedByte();
        int i7 = i6 - 1;
        byte[] bArr = new byte[i7];
        parsableByteArray.readBytes(bArr, 0, i7);
        return new TextInformationFrame(str, (String) null, decodeTextInformationFrameValues(bArr, unsignedByte, 0));
    }

    private static O decodeTextInformationFrameValues(byte[] bArr, int i6, int i7) {
        if (i7 >= bArr.length) {
            return O.u("");
        }
        L lO = O.o();
        int iIndexOfTerminator = indexOfTerminator(bArr, i7, i6);
        while (i7 < iIndexOfTerminator) {
            lO.a(new String(bArr, i7, iIndexOfTerminator - i7, getCharset(i6)));
            i7 = delimiterLength(i6) + iIndexOfTerminator;
            iIndexOfTerminator = indexOfTerminator(bArr, i7, i6);
        }
        p0 p0VarF = lO.f();
        return p0VarF.isEmpty() ? O.u("") : p0VarF;
    }

    private static TextInformationFrame decodeTxxxFrame(ParsableByteArray parsableByteArray, int i6) {
        if (i6 < 1) {
            return null;
        }
        int unsignedByte = parsableByteArray.readUnsignedByte();
        int i7 = i6 - 1;
        byte[] bArr = new byte[i7];
        parsableByteArray.readBytes(bArr, 0, i7);
        int iIndexOfTerminator = indexOfTerminator(bArr, 0, unsignedByte);
        return new TextInformationFrame("TXXX", new String(bArr, 0, iIndexOfTerminator, getCharset(unsignedByte)), decodeTextInformationFrameValues(bArr, unsignedByte, iIndexOfTerminator + delimiterLength(unsignedByte)));
    }

    private static UrlLinkFrame decodeUrlLinkFrame(ParsableByteArray parsableByteArray, int i6, String str) {
        byte[] bArr = new byte[i6];
        parsableByteArray.readBytes(bArr, 0, i6);
        return new UrlLinkFrame(str, null, new String(bArr, 0, indexOfZeroByte(bArr, 0), f.f1144b));
    }

    private static UrlLinkFrame decodeWxxxFrame(ParsableByteArray parsableByteArray, int i6) {
        if (i6 < 1) {
            return null;
        }
        int unsignedByte = parsableByteArray.readUnsignedByte();
        int i7 = i6 - 1;
        byte[] bArr = new byte[i7];
        parsableByteArray.readBytes(bArr, 0, i7);
        int iIndexOfTerminator = indexOfTerminator(bArr, 0, unsignedByte);
        String str = new String(bArr, 0, iIndexOfTerminator, getCharset(unsignedByte));
        int iDelimiterLength = iIndexOfTerminator + delimiterLength(unsignedByte);
        return new UrlLinkFrame("WXXX", str, decodeStringIfValid(bArr, iDelimiterLength, indexOfZeroByte(bArr, iDelimiterLength), f.f1144b));
    }

    private static int delimiterLength(int i6) {
        return (i6 == 0 || i6 == 3) ? 1 : 2;
    }

    private static Charset getCharset(int i6) {
        return i6 != 1 ? i6 != 2 ? i6 != 3 ? f.f1144b : f.f1145c : f.f1146d : f.f1148f;
    }

    private static String getFrameId(int i6, int i7, int i8, int i9, int i10) {
        return i6 == 2 ? String.format(Locale.US, "%c%c%c", Integer.valueOf(i7), Integer.valueOf(i8), Integer.valueOf(i9)) : String.format(Locale.US, "%c%c%c%c", Integer.valueOf(i7), Integer.valueOf(i8), Integer.valueOf(i9), Integer.valueOf(i10));
    }

    private static int indexOfTerminator(byte[] bArr, int i6, int i7) {
        int iIndexOfZeroByte = indexOfZeroByte(bArr, i6);
        if (i7 == 0 || i7 == 3) {
            return iIndexOfZeroByte;
        }
        while (iIndexOfZeroByte < bArr.length - 1) {
            if ((iIndexOfZeroByte - i6) % 2 == 0 && bArr[iIndexOfZeroByte + 1] == 0) {
                return iIndexOfZeroByte;
            }
            iIndexOfZeroByte = indexOfZeroByte(bArr, iIndexOfZeroByte + 1);
        }
        return bArr.length;
    }

    private static int indexOfZeroByte(byte[] bArr, int i6) {
        while (i6 < bArr.length) {
            if (bArr[i6] == 0) {
                return i6;
            }
            i6++;
        }
        return bArr.length;
    }

    /* JADX INFO: Access modifiers changed from: private */
    public static /* synthetic */ boolean lambda$static$0(int i6, int i7, int i8, int i9, int i10) {
        return false;
    }

    private static int removeUnsynchronization(ParsableByteArray parsableByteArray, int i6) {
        byte[] data = parsableByteArray.getData();
        int position = parsableByteArray.getPosition();
        int i7 = position;
        while (true) {
            int i8 = i7 + 1;
            if (i8 >= position + i6) {
                return i6;
            }
            if ((data[i7] & 255) == 255 && data[i8] == 0) {
                System.arraycopy(data, i7 + 2, data, i8, (i6 - (i7 - position)) - 2);
                i6--;
            }
            i7 = i8;
        }
    }

    /* JADX WARN: Removed duplicated region for block: B:35:0x007c A[PHI: r3
      0x007c: PHI (r3v16 int) = (r3v5 int), (r3v19 int) binds: [B:42:0x0089, B:33:0x0079] A[DONT_GENERATE, DONT_INLINE]] */
    /*
        Code decompiled incorrectly, please refer to instructions dump.
    */
    private static boolean validateFrames(ParsableByteArray parsableByteArray, int i6, int i7, boolean z6) {
        int unsignedInt24;
        long unsignedInt242;
        int unsignedShort;
        int i8;
        int position = parsableByteArray.getPosition();
        while (true) {
            try {
                boolean z7 = true;
                if (parsableByteArray.bytesLeft() < i7) {
                    parsableByteArray.setPosition(position);
                    return true;
                }
                if (i6 >= 3) {
                    unsignedInt24 = parsableByteArray.readInt();
                    unsignedInt242 = parsableByteArray.readUnsignedInt();
                    unsignedShort = parsableByteArray.readUnsignedShort();
                } else {
                    unsignedInt24 = parsableByteArray.readUnsignedInt24();
                    unsignedInt242 = parsableByteArray.readUnsignedInt24();
                    unsignedShort = 0;
                }
                if (unsignedInt24 == 0 && unsignedInt242 == 0 && unsignedShort == 0) {
                    parsableByteArray.setPosition(position);
                    return true;
                }
                if (i6 == 4 && !z6) {
                    if ((8421504 & unsignedInt242) != 0) {
                        parsableByteArray.setPosition(position);
                        return false;
                    }
                    unsignedInt242 = (((unsignedInt242 >> 24) & 255) << 21) | (unsignedInt242 & 255) | (((unsignedInt242 >> 8) & 255) << 7) | (((unsignedInt242 >> 16) & 255) << 14);
                }
                if (i6 == 4) {
                    i8 = (unsignedShort & 64) != 0 ? 1 : 0;
                    if ((unsignedShort & 1) == 0) {
                        z7 = false;
                    }
                } else if (i6 == 3) {
                    i8 = (unsignedShort & 32) != 0 ? 1 : 0;
                    if ((unsignedShort & 128) == 0) {
                    }
                } else {
                    i8 = 0;
                    z7 = false;
                }
                if (z7) {
                    i8 += 4;
                }
                if (unsignedInt242 < i8) {
                    parsableByteArray.setPosition(position);
                    return false;
                }
                if (parsableByteArray.bytesLeft() < unsignedInt242) {
                    parsableByteArray.setPosition(position);
                    return false;
                }
                parsableByteArray.skipBytes((int) unsignedInt242);
            } catch (Throwable th) {
                parsableByteArray.setPosition(position);
                throw th;
            }
        }
    }

    @Override // androidx.media3.extractor.metadata.SimpleMetadataDecoder
    public Metadata decode(MetadataInputBuffer metadataInputBuffer, ByteBuffer byteBuffer) {
        return decode(byteBuffer.array(), byteBuffer.limit());
    }

    public Id3Decoder(FramePredicate framePredicate) {
        this.framePredicate = framePredicate;
    }

    public Metadata decode(byte[] bArr, int i6) throws Throwable {
        ArrayList arrayList = new ArrayList();
        ParsableByteArray parsableByteArray = new ParsableByteArray(bArr, i6);
        Id3Header id3HeaderDecodeHeader = decodeHeader(parsableByteArray);
        if (id3HeaderDecodeHeader == null) {
            return null;
        }
        int position = parsableByteArray.getPosition();
        int i7 = id3HeaderDecodeHeader.majorVersion == 2 ? 6 : 10;
        int iRemoveUnsynchronization = id3HeaderDecodeHeader.framesSize;
        if (id3HeaderDecodeHeader.isUnsynchronized) {
            iRemoveUnsynchronization = removeUnsynchronization(parsableByteArray, id3HeaderDecodeHeader.framesSize);
        }
        parsableByteArray.setLimit(position + iRemoveUnsynchronization);
        boolean z6 = false;
        if (!validateFrames(parsableByteArray, id3HeaderDecodeHeader.majorVersion, i7, false)) {
            if (id3HeaderDecodeHeader.majorVersion != 4 || !validateFrames(parsableByteArray, 4, i7, true)) {
                Log.w(TAG, "Failed to validate ID3 tag with majorVersion=" + id3HeaderDecodeHeader.majorVersion);
                return null;
            }
            z6 = true;
        }
        while (parsableByteArray.bytesLeft() >= i7) {
            Id3Frame id3FrameDecodeFrame = decodeFrame(id3HeaderDecodeHeader.majorVersion, parsableByteArray, z6, i7, this.framePredicate);
            if (id3FrameDecodeFrame != null) {
                arrayList.add(id3FrameDecodeFrame);
            }
        }
        return new Metadata(arrayList);
    }
}
