package androidx.media3.extractor;

import androidx.media3.common.C;
import androidx.media3.common.util.UnstableApi;
import androidx.media3.extractor.SeekMap;

/* JADX INFO: loaded from: classes.dex */
@UnstableApi
public class ConstantBitrateSeekMap implements SeekMap {
    private final boolean allowSeeksIfLengthUnknown;
    private final int bitrate;
    private final long dataSize;
    private final long durationUs;
    private final long firstFrameBytePosition;
    private final int frameSize;
    private final long inputLength;

    public ConstantBitrateSeekMap(long j4, long j6, int i6, int i7) {
        this(j4, j6, i6, i7, false);
    }

    private long getFramePositionForTimeUs(long j4) {
        long j6 = (j4 * ((long) this.bitrate)) / 8000000;
        int i6 = this.frameSize;
        long jMin = (j6 / ((long) i6)) * ((long) i6);
        long j7 = this.dataSize;
        if (j7 != -1) {
            jMin = Math.min(jMin, j7 - ((long) i6));
        }
        return this.firstFrameBytePosition + Math.max(jMin, 0L);
    }

    @Override // androidx.media3.extractor.SeekMap
    public long getDurationUs() {
        return this.durationUs;
    }

    @Override // androidx.media3.extractor.SeekMap
    public SeekMap.SeekPoints getSeekPoints(long j4) {
        if (this.dataSize == -1 && !this.allowSeeksIfLengthUnknown) {
            return new SeekMap.SeekPoints(new SeekPoint(0L, this.firstFrameBytePosition));
        }
        long framePositionForTimeUs = getFramePositionForTimeUs(j4);
        long timeUsAtPosition = getTimeUsAtPosition(framePositionForTimeUs);
        SeekPoint seekPoint = new SeekPoint(timeUsAtPosition, framePositionForTimeUs);
        if (this.dataSize != -1 && timeUsAtPosition < j4) {
            int i6 = this.frameSize;
            if (((long) i6) + framePositionForTimeUs < this.inputLength) {
                long j6 = framePositionForTimeUs + ((long) i6);
                return new SeekMap.SeekPoints(seekPoint, new SeekPoint(getTimeUsAtPosition(j6), j6));
            }
        }
        return new SeekMap.SeekPoints(seekPoint);
    }

    public long getTimeUsAtPosition(long j4) {
        return getTimeUsAtPosition(j4, this.firstFrameBytePosition, this.bitrate);
    }

    @Override // androidx.media3.extractor.SeekMap
    public boolean isSeekable() {
        return this.dataSize != -1 || this.allowSeeksIfLengthUnknown;
    }

    public ConstantBitrateSeekMap(long j4, long j6, int i6, int i7, boolean z6) {
        this.inputLength = j4;
        this.firstFrameBytePosition = j6;
        this.frameSize = i7 == -1 ? 1 : i7;
        this.bitrate = i6;
        this.allowSeeksIfLengthUnknown = z6;
        if (j4 == -1) {
            this.dataSize = -1L;
            this.durationUs = C.TIME_UNSET;
        } else {
            this.dataSize = j4 - j6;
            this.durationUs = getTimeUsAtPosition(j4, j6, i6);
        }
    }

    private static long getTimeUsAtPosition(long j4, long j6, int i6) {
        return (Math.max(0L, j4 - j6) * 8000000) / ((long) i6);
    }
}
