package androidx.media3.exoplayer.dash;

import androidx.media3.common.Format;
import androidx.media3.common.util.Util;
import androidx.media3.exoplayer.FormatHolder;
import androidx.media3.exoplayer.dash.manifest.EventStream;
import androidx.media3.exoplayer.source.SampleStream;
import java.io.IOException;
import s1.f;

/* JADX INFO: loaded from: classes.dex */
final class EventSampleStream implements SampleStream {
    private int currentIndex;
    private EventStream eventStream;
    private boolean eventStreamAppendable;
    private long[] eventTimesUs;
    private boolean isFormatSentDownstream;
    private final Format upstreamFormat;
    private final c2.c eventMessageEncoder = new c2.c();
    private long pendingSeekPositionUs = -9223372036854775807L;

    public EventSampleStream(EventStream eventStream, Format format, boolean z10) {
        this.upstreamFormat = format;
        this.eventStream = eventStream;
        this.eventTimesUs = eventStream.presentationTimesUs;
        updateEventStream(eventStream, z10);
    }

    public String eventStreamId() {
        return this.eventStream.id();
    }

    @Override // androidx.media3.exoplayer.source.SampleStream
    public boolean isReady() {
        return true;
    }

    @Override // androidx.media3.exoplayer.source.SampleStream
    public void maybeThrowError() throws IOException {
    }

    @Override // androidx.media3.exoplayer.source.SampleStream
    public int readData(FormatHolder formatHolder, f fVar, int i10) {
        int i11 = this.currentIndex;
        boolean z10 = i11 == this.eventTimesUs.length;
        if (z10 && !this.eventStreamAppendable) {
            fVar.setFlags(4);
            return -4;
        }
        if ((i10 & 2) != 0 || !this.isFormatSentDownstream) {
            formatHolder.format = this.upstreamFormat;
            this.isFormatSentDownstream = true;
            return -5;
        }
        if (z10) {
            return -3;
        }
        if ((i10 & 1) == 0) {
            this.currentIndex = i11 + 1;
        }
        if ((i10 & 4) == 0) {
            byte[] bArrA = this.eventMessageEncoder.a(this.eventStream.events[i11]);
            fVar.ensureSpaceForWrite(bArrA.length);
            fVar.data.put(bArrA);
        }
        fVar.timeUs = this.eventTimesUs[i11];
        fVar.setFlags(1);
        return -4;
    }

    public void seekToUs(long j10) {
        int iBinarySearchCeil = Util.binarySearchCeil(this.eventTimesUs, j10, true, false);
        this.currentIndex = iBinarySearchCeil;
        if (!this.eventStreamAppendable || iBinarySearchCeil != this.eventTimesUs.length) {
            j10 = -9223372036854775807L;
        }
        this.pendingSeekPositionUs = j10;
    }

    @Override // androidx.media3.exoplayer.source.SampleStream
    public int skipData(long j10) {
        int iMax = Math.max(this.currentIndex, Util.binarySearchCeil(this.eventTimesUs, j10, true, false));
        int i10 = iMax - this.currentIndex;
        this.currentIndex = iMax;
        return i10;
    }

    public void updateEventStream(EventStream eventStream, boolean z10) {
        int i10 = this.currentIndex;
        long j10 = i10 == 0 ? -9223372036854775807L : this.eventTimesUs[i10 - 1];
        this.eventStreamAppendable = z10;
        this.eventStream = eventStream;
        long[] jArr = eventStream.presentationTimesUs;
        this.eventTimesUs = jArr;
        long j11 = this.pendingSeekPositionUs;
        if (j11 != -9223372036854775807L) {
            seekToUs(j11);
        } else if (j10 != -9223372036854775807L) {
            this.currentIndex = Util.binarySearchCeil(jArr, j10, false, false);
        }
    }
}
