package androidx.media3.exoplayer.video;

import android.util.Range;
import androidx.annotation.FloatRange;
import androidx.media3.common.util.Assertions;

/* JADX INFO: loaded from: classes.dex */
class VideoFrameReleaseEarlyTimeForecaster {
    private static final float SMOOTHING_FACTOR = 0.2f;
    private double derivativeOfEarlyTime;
    private Range<Double> derivativeOfEarlyTimeRange;
    private long lastFrameEarlyUs;
    private long lastFramePresentationTimeUs;

    public VideoFrameReleaseEarlyTimeForecaster(@FloatRange(from = 0.0d, fromInclusive = false) float f10) {
        Assertions.checkArgument(f10 > 0.0f);
        Range<Double> range = new Range<>(Double.valueOf(0.0d), Double.valueOf(1.0d / ((double) f10)));
        this.derivativeOfEarlyTimeRange = range;
        this.derivativeOfEarlyTime = ((Double) range.getUpper()).doubleValue();
        this.lastFramePresentationTimeUs = -9223372036854775807L;
        this.lastFrameEarlyUs = -9223372036854775807L;
    }

    private double calculateDerivativeFromLastFrame(long j10, long j11) {
        long j12 = this.lastFramePresentationTimeUs;
        if (j12 != -9223372036854775807L) {
            if (this.lastFrameEarlyUs != -9223372036854775807L && j10 != j12) {
                return (j11 - r4) / (j10 - j12);
            }
        }
        return ((Double) this.derivativeOfEarlyTimeRange.getUpper()).doubleValue();
    }

    private void updateDerivativeWithExponentialMovingAverage(double d10) {
        this.derivativeOfEarlyTime = (d10 * 0.20000000298023224d) + (this.derivativeOfEarlyTime * 0.800000011920929d);
    }

    public void onVideoFrameProcessed(long j10, long j11) {
        Assertions.checkArgument(j10 != -9223372036854775807L);
        Assertions.checkArgument(j11 != -9223372036854775807L);
        updateDerivativeWithExponentialMovingAverage(((Double) this.derivativeOfEarlyTimeRange.clamp(Double.valueOf(calculateDerivativeFromLastFrame(j10, j11)))).doubleValue());
        this.lastFramePresentationTimeUs = j10;
        this.lastFrameEarlyUs = j11;
    }

    public long predictEarlyUs(long j10) {
        if (this.lastFramePresentationTimeUs == -9223372036854775807L) {
            return -9223372036854775807L;
        }
        return (long) (((j10 - r0) * this.derivativeOfEarlyTime) + this.lastFrameEarlyUs);
    }

    public void reset() {
        this.derivativeOfEarlyTime = ((Double) this.derivativeOfEarlyTimeRange.getUpper()).doubleValue();
        this.lastFramePresentationTimeUs = -9223372036854775807L;
        this.lastFrameEarlyUs = -9223372036854775807L;
    }

    public void setPlaybackSpeed(@FloatRange(from = 0.0d, fromInclusive = false) float f10) {
        Assertions.checkArgument(f10 > 0.0f);
        this.derivativeOfEarlyTimeRange = new Range<>(Double.valueOf(0.0d), Double.valueOf(1.0d / ((double) f10)));
        reset();
    }
}
