package androidx.media3.exoplayer.rtsp;

import android.os.Handler;
import androidx.media3.common.C;
import androidx.media3.common.util.Util;
import androidx.media3.datasource.DataSourceUtil;
import androidx.media3.exoplayer.rtsp.RtpDataChannel;
import androidx.media3.exoplayer.upstream.Loader;
import androidx.media3.extractor.DefaultExtractorInput;
import androidx.media3.extractor.ExtractorOutput;
import androidx.media3.extractor.PositionHolder;
import defpackage.rq6;
import java.io.IOException;

/* JADX INFO: loaded from: classes.dex */
final class RtpDataLoadable implements Loader.Loadable {

    @rq6
    private RtpDataChannel dataChannel;
    private final EventListener eventListener;
    private RtpExtractor extractor;
    private DefaultExtractorInput extractorInput;
    private volatile boolean loadCancelled;
    private volatile long nextRtpTimestamp;
    private final ExtractorOutput output;
    private final RtpDataChannel.Factory rtpDataChannelFactory;
    public final RtspMediaTrack rtspMediaTrack;
    public final int trackId;
    private final Handler playbackThreadHandler = Util.createHandlerForCurrentLooper();
    private volatile long pendingSeekPositionUs = C.TIME_UNSET;

    public interface EventListener {
        void onTransportReady(String str, RtpDataChannel rtpDataChannel);
    }

    public RtpDataLoadable(int i, RtspMediaTrack rtspMediaTrack, EventListener eventListener, ExtractorOutput extractorOutput, RtpDataChannel.Factory factory) {
        this.trackId = i;
        this.rtspMediaTrack = rtspMediaTrack;
        this.eventListener = eventListener;
        this.output = extractorOutput;
        this.rtpDataChannelFactory = factory;
    }

    /* JADX INFO: Access modifiers changed from: private */
    public /* synthetic */ void lambda$load$0(String str, RtpDataChannel rtpDataChannel) {
        this.eventListener.onTransportReady(str, rtpDataChannel);
    }

    @Override // androidx.media3.exoplayer.upstream.Loader.Loadable
    public void cancelLoad() {
        this.loadCancelled = true;
    }

    @Override // androidx.media3.exoplayer.upstream.Loader.Loadable
    public void load() throws IOException {
        if (this.loadCancelled) {
            this.loadCancelled = false;
        }
        try {
            if (this.dataChannel == null) {
                RtpDataChannel rtpDataChannelCreateAndOpenDataChannel = this.rtpDataChannelFactory.createAndOpenDataChannel(this.trackId);
                this.dataChannel = rtpDataChannelCreateAndOpenDataChannel;
                this.playbackThreadHandler.post(new a(this, rtpDataChannelCreateAndOpenDataChannel.getTransport(), this.dataChannel, 0));
                RtpDataChannel rtpDataChannel = this.dataChannel;
                rtpDataChannel.getClass();
                this.extractorInput = new DefaultExtractorInput(rtpDataChannel, 0L, -1L);
                RtpExtractor rtpExtractor = new RtpExtractor(this.rtspMediaTrack.payloadFormat, this.trackId);
                this.extractor = rtpExtractor;
                rtpExtractor.init(this.output);
            }
            while (!this.loadCancelled) {
                if (this.pendingSeekPositionUs != C.TIME_UNSET) {
                    RtpExtractor rtpExtractor2 = this.extractor;
                    rtpExtractor2.getClass();
                    rtpExtractor2.seek(this.nextRtpTimestamp, this.pendingSeekPositionUs);
                    this.pendingSeekPositionUs = C.TIME_UNSET;
                }
                RtpExtractor rtpExtractor3 = this.extractor;
                rtpExtractor3.getClass();
                DefaultExtractorInput defaultExtractorInput = this.extractorInput;
                defaultExtractorInput.getClass();
                if (rtpExtractor3.read(defaultExtractorInput, new PositionHolder()) == -1) {
                    break;
                }
            }
            this.loadCancelled = false;
            RtpDataChannel rtpDataChannel2 = this.dataChannel;
            rtpDataChannel2.getClass();
            if (rtpDataChannel2.needsClosingOnLoadCompletion()) {
                DataSourceUtil.closeQuietly(this.dataChannel);
                this.dataChannel = null;
            }
        } catch (Throwable th) {
            RtpDataChannel rtpDataChannel3 = this.dataChannel;
            rtpDataChannel3.getClass();
            if (rtpDataChannel3.needsClosingOnLoadCompletion()) {
                DataSourceUtil.closeQuietly(this.dataChannel);
                this.dataChannel = null;
            }
            throw th;
        }
    }

    public void resetForSeek() {
        RtpExtractor rtpExtractor = this.extractor;
        rtpExtractor.getClass();
        rtpExtractor.preSeek();
    }

    public void seekToUs(long j, long j2) {
        this.pendingSeekPositionUs = j;
        this.nextRtpTimestamp = j2;
    }

    public void setSequenceNumber(int i) {
        RtpExtractor rtpExtractor = this.extractor;
        rtpExtractor.getClass();
        if (rtpExtractor.hasReadFirstRtpPacket()) {
            return;
        }
        this.extractor.setFirstSequenceNumber(i);
    }

    public void setTimestamp(long j) {
        if (j != C.TIME_UNSET) {
            RtpExtractor rtpExtractor = this.extractor;
            rtpExtractor.getClass();
            if (rtpExtractor.hasReadFirstRtpPacket()) {
                return;
            }
            this.extractor.setFirstTimestamp(j);
        }
    }
}
