package tv.danmaku.ijk.media.player.ui.abr;

import android.os.Handler;
import androidx.annotation.NonNull;
import androidx.media3.common.util.Assertions;
import androidx.media3.common.util.UnstableApi;
import androidx.media3.datasource.DataSource;
import androidx.media3.datasource.DataSpec;
import androidx.media3.datasource.TransferListener;
import androidx.media3.exoplayer.audio.SilenceSkippingAudioProcessor;
import androidx.media3.exoplayer.audio.g;
import androidx.media3.exoplayer.upstream.BandwidthMeter;
import androidx.media3.exoplayer.upstream.SlidingPercentile;
import java.util.List;

/* JADX INFO: loaded from: classes3.dex */
@UnstableApi
public final class AbrBandwidthMeter implements BandwidthMeter, TransferListener {
    private long bitrateEstimate;
    private long bytesTransferred = 0;
    private int elapsedMs = 0;
    private Handler eventHandler;
    private BandwidthMeter.EventListener eventListener;
    private final SlidingPercentile slidingPercentile;
    private int streamCount;

    public static final class Builder {
        private long initialBitrateEstimate = SilenceSkippingAudioProcessor.DEFAULT_MAX_SILENCE_TO_KEEP_DURATION_US;

        public AbrBandwidthMeter build() {
            return new AbrBandwidthMeter(this.initialBitrateEstimate, 2000);
        }

        public Builder setInitialBitrateEstimate(long j10) {
            this.initialBitrateEstimate = j10;
            return this;
        }
    }

    public AbrBandwidthMeter(long j10, int i10) {
        this.slidingPercentile = new SlidingPercentile(i10);
        this.bitrateEstimate = j10;
    }

    /* JADX INFO: Access modifiers changed from: private */
    public /* synthetic */ void lambda$maybeNotifyListeners$0(int i10, long j10, long j11) {
        BandwidthMeter.EventListener eventListener = this.eventListener;
        if (eventListener == null) {
            return;
        }
        eventListener.onBandwidthSample(i10, j10, j11);
    }

    private void maybeNotifyListeners(int i10, long j10, long j11) {
        Handler handler = this.eventHandler;
        if (handler == null || this.eventListener == null) {
            return;
        }
        handler.post(new g(this, i10, j10, j11, 1));
    }

    @Override // androidx.media3.exoplayer.upstream.BandwidthMeter
    public void addEventListener(@NonNull Handler handler, @NonNull BandwidthMeter.EventListener eventListener) {
        this.eventHandler = handler;
        this.eventListener = eventListener;
    }

    @Override // androidx.media3.exoplayer.upstream.BandwidthMeter
    public synchronized long getBitrateEstimate() {
        return this.bitrateEstimate;
    }

    @Override // androidx.media3.exoplayer.upstream.BandwidthMeter
    public TransferListener getTransferListener() {
        return this;
    }

    @Override // androidx.media3.datasource.TransferListener
    public void onBytesTransferred(@NonNull DataSource dataSource, @NonNull DataSpec dataSpec, boolean z10, int i10) {
    }

    @Override // androidx.media3.datasource.TransferListener
    public void onTransferEnd(@NonNull DataSource dataSource, @NonNull DataSpec dataSpec, boolean z10) {
        int i10 = 0;
        Assertions.checkState(this.streamCount > 0);
        List<String> list = dataSource.getResponseHeaders().get("x-live-last-request-size-byte");
        long j10 = (list == null || list.isEmpty()) ? 0L : Long.parseLong(list.get(0));
        List<String> list2 = dataSource.getResponseHeaders().get("X-Live-Last-Request-Cost-Ms");
        if (list2 != null && !list2.isEmpty()) {
            i10 = Integer.parseInt(list2.get(0));
        }
        if (j10 <= 0 || i10 <= 0) {
            return;
        }
        if (j10 == this.bytesTransferred && i10 == this.elapsedMs) {
            return;
        }
        this.bytesTransferred = j10;
        this.elapsedMs = i10;
        float f10 = (j10 * 8000.0f) / i10;
        int iSqrt = (int) Math.sqrt(j10);
        synchronized (this.slidingPercentile) {
            this.slidingPercentile.addSample(iSqrt, f10);
            this.bitrateEstimate = (long) this.slidingPercentile.getPercentile(0.5f);
            AbrController.getInstance().setRawEstimate(this.bitrateEstimate);
        }
        maybeNotifyListeners(this.elapsedMs, this.bytesTransferred, this.bitrateEstimate);
        this.streamCount--;
    }

    @Override // androidx.media3.datasource.TransferListener
    public void onTransferInitializing(@NonNull DataSource dataSource, @NonNull DataSpec dataSpec, boolean z10) {
    }

    @Override // androidx.media3.datasource.TransferListener
    public void onTransferStart(@NonNull DataSource dataSource, @NonNull DataSpec dataSpec, boolean z10) {
        this.streamCount++;
    }

    @Override // androidx.media3.exoplayer.upstream.BandwidthMeter
    public void removeEventListener(@NonNull BandwidthMeter.EventListener eventListener) {
        this.eventListener = null;
        this.eventHandler = null;
    }
}
