package androidx.media3.exoplayer.source.chunk;

import android.util.SparseArray;
import androidx.annotation.Nullable;
import androidx.media3.common.DataReader;
import androidx.media3.common.Format;
import androidx.media3.common.MimeTypes;
import androidx.media3.common.util.Assertions;
import androidx.media3.common.util.ParsableByteArray;
import androidx.media3.common.util.UnstableApi;
import androidx.media3.common.util.Util;
import androidx.media3.exoplayer.analytics.PlayerId;
import androidx.media3.exoplayer.source.chunk.ChunkExtractor;
import androidx.media3.extractor.b0;
import androidx.media3.extractor.o;
import androidx.media3.extractor.r0;
import androidx.media3.extractor.t0;
import androidx.media3.extractor.v;
import androidx.media3.extractor.y;
import androidx.media3.extractor.y0;
import androidx.media3.extractor.z;
import androidx.media3.extractor.z0;
import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.io.IOException;
import java.util.List;
import java.util.Objects;
import l2.q;
import n2.d;
import n2.j;
import n2.n;
import w1.a;

/* JADX INFO: loaded from: classes.dex */
@UnstableApi
public final class BundledChunkExtractor implements b0, ChunkExtractor {

    @Deprecated
    public static final Factory FACTORY = new Factory();
    private static final r0 POSITION_HOLDER = new r0();
    private final SparseArray<BindingTrackOutput> bindingTrackOutputs = new SparseArray<>();
    private long endTimeUs;
    private final y extractor;
    private boolean extractorInitialized;
    private final Format primaryTrackManifestFormat;
    private final int primaryTrackType;
    private Format[] sampleFormats;
    private t0 seekMap;

    @Nullable
    private ChunkExtractor.TrackOutputProvider trackOutputProvider;

    public static final class BindingTrackOutput implements z0 {
        private long endTimeUs;
        private final v fakeTrackOutput = new v();

        /* JADX INFO: renamed from: id, reason: collision with root package name */
        private final int f3168id;

        @Nullable
        private final Format manifestFormat;
        public Format sampleFormat;
        private z0 trackOutput;
        private final int type;

        public BindingTrackOutput(int i10, int i11, @Nullable Format format) {
            this.f3168id = i10;
            this.type = i11;
            this.manifestFormat = format;
        }

        public void bind(@Nullable ChunkExtractor.TrackOutputProvider trackOutputProvider, long j10) {
            if (trackOutputProvider == null) {
                this.trackOutput = this.fakeTrackOutput;
                return;
            }
            this.endTimeUs = j10;
            z0 z0VarTrack = trackOutputProvider.track(this.f3168id, this.type);
            this.trackOutput = z0VarTrack;
            Format format = this.sampleFormat;
            if (format != null) {
                z0VarTrack.format(format);
            }
        }

        @Override // androidx.media3.extractor.z0
        public /* bridge */ /* synthetic */ void durationUs(long j10) {
        }

        @Override // androidx.media3.extractor.z0
        public void format(Format format) {
            Format format2 = this.manifestFormat;
            if (format2 != null) {
                format = format.withManifestFormatInfo(format2);
            }
            this.sampleFormat = format;
            ((z0) Util.castNonNull(this.trackOutput)).format(this.sampleFormat);
        }

        @Override // androidx.media3.extractor.z0
        public int sampleData(DataReader dataReader, int i10, boolean z10) throws IOException {
            return sampleData(dataReader, i10, z10, 0);
        }

        @Override // androidx.media3.extractor.z0
        public void sampleMetadata(long j10, int i10, int i11, int i12, @Nullable y0 y0Var) {
            long j11 = this.endTimeUs;
            if (j11 != -9223372036854775807L && j10 >= j11) {
                this.trackOutput = this.fakeTrackOutput;
            }
            ((z0) Util.castNonNull(this.trackOutput)).sampleMetadata(j10, i10, i11, i12, y0Var);
        }

        @Override // androidx.media3.extractor.z0
        public void sampleData(ParsableByteArray parsableByteArray, int i10) {
            sampleData(parsableByteArray, i10, 0);
        }

        @Override // androidx.media3.extractor.z0
        public int sampleData(DataReader dataReader, int i10, boolean z10, int i11) throws IOException {
            return ((z0) Util.castNonNull(this.trackOutput)).sampleData(dataReader, i10, z10);
        }

        @Override // androidx.media3.extractor.z0
        public void sampleData(ParsableByteArray parsableByteArray, int i10, int i11) {
            ((z0) Util.castNonNull(this.trackOutput)).sampleData(parsableByteArray, i10);
        }
    }

    public static final class Factory implements ChunkExtractor.Factory {
        private int codecsToParseWithinGopSampleDependencies;
        private boolean parseSubtitlesDuringExtraction;
        private n subtitleParserFactory = new d();

        @Override // androidx.media3.exoplayer.source.chunk.ChunkExtractor.Factory
        @Nullable
        public ChunkExtractor createProgressiveMediaExtractor(int i10, Format format, boolean z10, List<Format> list, @Nullable z0 z0Var, PlayerId playerId) {
            y qVar;
            String str = format.containerMimeType;
            if (!MimeTypes.isText(str)) {
                if (MimeTypes.isMatroska(str)) {
                    qVar = new j2.d(this.parseSubtitlesDuringExtraction ? 1 : 3, this.subtitleParserFactory);
                } else if (Objects.equals(str, MimeTypes.IMAGE_JPEG)) {
                    qVar = new a(1);
                } else {
                    if (Objects.equals(str, MimeTypes.IMAGE_PNG)) {
                        qVar = new a(1, 0);
                    } else {
                        int i11 = z10 ? 4 : 0;
                        if (!this.parseSubtitlesDuringExtraction) {
                            i11 |= 32;
                        }
                        qVar = new q(this.subtitleParserFactory, i11 | q.a(this.codecsToParseWithinGopSampleDependencies), null, null, list, z0Var);
                    }
                }
            } else {
                if (!this.parseSubtitlesDuringExtraction) {
                    return null;
                }
                qVar = new j(this.subtitleParserFactory.b(format), format);
            }
            return new BundledChunkExtractor(qVar, i10, format);
        }

        @Override // androidx.media3.exoplayer.source.chunk.ChunkExtractor.Factory
        @CanIgnoreReturnValue
        public Factory experimentalParseSubtitlesDuringExtraction(boolean z10) {
            this.parseSubtitlesDuringExtraction = z10;
            return this;
        }

        @Override // androidx.media3.exoplayer.source.chunk.ChunkExtractor.Factory
        @CanIgnoreReturnValue
        public Factory experimentalSetCodecsToParseWithinGopSampleDependencies(int i10) {
            this.codecsToParseWithinGopSampleDependencies = i10;
            return this;
        }

        @Override // androidx.media3.exoplayer.source.chunk.ChunkExtractor.Factory
        public Format getOutputTextFormat(Format format) {
            String str;
            if (!this.parseSubtitlesDuringExtraction || !this.subtitleParserFactory.supportsFormat(format)) {
                return format;
            }
            Format.Builder cueReplacementBehavior = format.buildUpon().setSampleMimeType(MimeTypes.APPLICATION_MEDIA3_CUES).setCueReplacementBehavior(this.subtitleParserFactory.a(format));
            StringBuilder sb = new StringBuilder();
            sb.append(format.sampleMimeType);
            if (format.codecs != null) {
                str = " " + format.codecs;
            } else {
                str = "";
            }
            sb.append(str);
            return cueReplacementBehavior.setCodecs(sb.toString()).setSubsampleOffsetUs(Long.MAX_VALUE).build();
        }

        @Override // androidx.media3.exoplayer.source.chunk.ChunkExtractor.Factory
        @CanIgnoreReturnValue
        public Factory setSubtitleParserFactory(n nVar) {
            this.subtitleParserFactory = (n) Assertions.checkNotNull(nVar);
            return this;
        }
    }

    public BundledChunkExtractor(y yVar, int i10, Format format) {
        this.extractor = yVar;
        this.primaryTrackType = i10;
        this.primaryTrackManifestFormat = format;
    }

    @Override // androidx.media3.extractor.b0
    public void endTracks() {
        Format[] formatArr = new Format[this.bindingTrackOutputs.size()];
        for (int i10 = 0; i10 < this.bindingTrackOutputs.size(); i10++) {
            formatArr[i10] = (Format) Assertions.checkStateNotNull(this.bindingTrackOutputs.valueAt(i10).sampleFormat);
        }
        this.sampleFormats = formatArr;
    }

    @Override // androidx.media3.exoplayer.source.chunk.ChunkExtractor
    @Nullable
    public o getChunkIndex() {
        t0 t0Var = this.seekMap;
        if (t0Var instanceof o) {
            return (o) t0Var;
        }
        return null;
    }

    @Override // androidx.media3.exoplayer.source.chunk.ChunkExtractor
    @Nullable
    public Format[] getSampleFormats() {
        return this.sampleFormats;
    }

    @Override // androidx.media3.exoplayer.source.chunk.ChunkExtractor
    public void init(@Nullable ChunkExtractor.TrackOutputProvider trackOutputProvider, long j10, long j11) {
        this.trackOutputProvider = trackOutputProvider;
        this.endTimeUs = j11;
        if (!this.extractorInitialized) {
            this.extractor.init(this);
            if (j10 != -9223372036854775807L) {
                this.extractor.seek(0L, j10);
            }
            this.extractorInitialized = true;
            return;
        }
        y yVar = this.extractor;
        if (j10 == -9223372036854775807L) {
            j10 = 0;
        }
        yVar.seek(0L, j10);
        for (int i10 = 0; i10 < this.bindingTrackOutputs.size(); i10++) {
            this.bindingTrackOutputs.valueAt(i10).bind(trackOutputProvider, j11);
        }
    }

    @Override // androidx.media3.exoplayer.source.chunk.ChunkExtractor
    public boolean read(z zVar) throws IOException {
        int i10 = this.extractor.read(zVar, POSITION_HOLDER);
        Assertions.checkState(i10 != 1);
        return i10 == 0;
    }

    @Override // androidx.media3.exoplayer.source.chunk.ChunkExtractor
    public void release() {
        this.extractor.release();
    }

    @Override // androidx.media3.extractor.b0
    public void seekMap(t0 t0Var) {
        this.seekMap = t0Var;
    }

    @Override // androidx.media3.extractor.b0
    public z0 track(int i10, int i11) {
        BindingTrackOutput bindingTrackOutput = this.bindingTrackOutputs.get(i10);
        if (bindingTrackOutput == null) {
            Assertions.checkState(this.sampleFormats == null);
            bindingTrackOutput = new BindingTrackOutput(i10, i11, i11 == this.primaryTrackType ? this.primaryTrackManifestFormat : null);
            bindingTrackOutput.bind(this.trackOutputProvider, this.endTimeUs);
            this.bindingTrackOutputs.put(i10, bindingTrackOutput);
        }
        return bindingTrackOutput;
    }
}
