package androidx.media3.exoplayer.source.ads;

import androidx.media3.common.AdPlaybackState;
import androidx.media3.common.C;
import androidx.media3.common.Player;
import androidx.media3.common.Timeline;
import androidx.media3.common.util.UnstableApi;
import androidx.media3.common.util.Util;
import androidx.media3.exoplayer.source.MediaSource;

/* JADX INFO: loaded from: classes.dex */
@UnstableApi
public final class ServerSideAdInsertionUtil {
    private ServerSideAdInsertionUtil() {
    }

    public static AdPlaybackState addAdGroupToAdPlaybackState(AdPlaybackState adPlaybackState, long j4, long j6, long... jArr) {
        long mediaPeriodPositionUsForContent = getMediaPeriodPositionUsForContent(j4, -1, adPlaybackState);
        int i6 = adPlaybackState.removedAdGroupCount;
        while (i6 < adPlaybackState.adGroupCount && adPlaybackState.getAdGroup(i6).timeUs != Long.MIN_VALUE && adPlaybackState.getAdGroup(i6).timeUs <= mediaPeriodPositionUsForContent) {
            i6++;
        }
        AdPlaybackState adPlaybackStateWithContentResumeOffsetUs = adPlaybackState.withNewAdGroup(i6, mediaPeriodPositionUsForContent).withIsServerSideInserted(i6, true).withAdCount(i6, jArr.length).withAdDurationsUs(i6, jArr).withContentResumeOffsetUs(i6, j6);
        AdPlaybackState adPlaybackStateWithSkippedAd = adPlaybackStateWithContentResumeOffsetUs;
        for (int i7 = 0; i7 < jArr.length && jArr[i7] == 0; i7++) {
            adPlaybackStateWithSkippedAd = adPlaybackStateWithSkippedAd.withSkippedAd(i6, i7);
        }
        return correctFollowingAdGroupTimes(adPlaybackStateWithSkippedAd, i6, Util.sum(jArr), j6);
    }

    private static AdPlaybackState correctFollowingAdGroupTimes(AdPlaybackState adPlaybackState, int i6, long j4, long j6) {
        long j7 = (-j4) + j6;
        while (true) {
            i6++;
            if (i6 >= adPlaybackState.adGroupCount) {
                return adPlaybackState;
            }
            long j8 = adPlaybackState.getAdGroup(i6).timeUs;
            if (j8 != Long.MIN_VALUE) {
                adPlaybackState = adPlaybackState.withAdGroupTimeUs(i6, j8 + j7);
            }
        }
    }

    public static int getAdCountInGroup(AdPlaybackState adPlaybackState, int i6) {
        int i7 = adPlaybackState.getAdGroup(i6).count;
        if (i7 == -1) {
            return 0;
        }
        return i7;
    }

    public static long getMediaPeriodPositionUs(long j4, MediaSource.MediaPeriodId mediaPeriodId, AdPlaybackState adPlaybackState) {
        return mediaPeriodId.isAd() ? getMediaPeriodPositionUsForAd(j4, mediaPeriodId.adGroupIndex, mediaPeriodId.adIndexInAdGroup, adPlaybackState) : getMediaPeriodPositionUsForContent(j4, mediaPeriodId.nextAdGroupIndex, adPlaybackState);
    }

    public static long getMediaPeriodPositionUsForAd(long j4, int i6, int i7, AdPlaybackState adPlaybackState) {
        int i8;
        AdPlaybackState.AdGroup adGroup = adPlaybackState.getAdGroup(i6);
        long j6 = j4 - adGroup.timeUs;
        int i9 = adPlaybackState.removedAdGroupCount;
        while (true) {
            i8 = 0;
            if (i9 >= i6) {
                break;
            }
            AdPlaybackState.AdGroup adGroup2 = adPlaybackState.getAdGroup(i9);
            while (i8 < getAdCountInGroup(adPlaybackState, i9)) {
                j6 -= adGroup2.durationsUs[i8];
                i8++;
            }
            j6 += adGroup2.contentResumeOffsetUs;
            i9++;
        }
        if (i7 < getAdCountInGroup(adPlaybackState, i6)) {
            while (i8 < i7) {
                j6 -= adGroup.durationsUs[i8];
                i8++;
            }
        }
        return j6;
    }

    public static long getMediaPeriodPositionUsForContent(long j4, int i6, AdPlaybackState adPlaybackState) {
        if (i6 == -1) {
            i6 = adPlaybackState.adGroupCount;
        }
        long j6 = 0;
        for (int i7 = adPlaybackState.removedAdGroupCount; i7 < i6; i7++) {
            AdPlaybackState.AdGroup adGroup = adPlaybackState.getAdGroup(i7);
            long j7 = adGroup.timeUs;
            if (j7 == Long.MIN_VALUE || j7 > j4 - j6) {
                break;
            }
            for (int i8 = 0; i8 < getAdCountInGroup(adPlaybackState, i7); i8++) {
                j6 += adGroup.durationsUs[i8];
            }
            long j8 = adGroup.contentResumeOffsetUs;
            j6 -= j8;
            long j9 = adGroup.timeUs;
            long j10 = j4 - j6;
            if (j8 + j9 > j10) {
                return Math.max(j9, j10);
            }
        }
        return j4 - j6;
    }

    public static long getStreamPositionUs(Player player, AdPlaybackState adPlaybackState) {
        Timeline currentTimeline = player.getCurrentTimeline();
        if (currentTimeline.isEmpty()) {
            return C.TIME_UNSET;
        }
        Timeline.Period period = currentTimeline.getPeriod(player.getCurrentPeriodIndex(), new Timeline.Period());
        if (!Util.areEqual(period.getAdsId(), adPlaybackState.adsId)) {
            return C.TIME_UNSET;
        }
        if (!player.isPlayingAd()) {
            return getStreamPositionUsForContent(Util.msToUs(player.getCurrentPosition()) - period.getPositionInWindowUs(), -1, adPlaybackState);
        }
        return getStreamPositionUsForAd(Util.msToUs(player.getCurrentPosition()), player.getCurrentAdGroupIndex(), player.getCurrentAdIndexInAdGroup(), adPlaybackState);
    }

    public static long getStreamPositionUsForAd(long j4, int i6, int i7, AdPlaybackState adPlaybackState) {
        int i8;
        AdPlaybackState.AdGroup adGroup = adPlaybackState.getAdGroup(i6);
        long j6 = j4 + adGroup.timeUs;
        int i9 = adPlaybackState.removedAdGroupCount;
        while (true) {
            i8 = 0;
            if (i9 >= i6) {
                break;
            }
            AdPlaybackState.AdGroup adGroup2 = adPlaybackState.getAdGroup(i9);
            while (i8 < getAdCountInGroup(adPlaybackState, i9)) {
                j6 += adGroup2.durationsUs[i8];
                i8++;
            }
            j6 -= adGroup2.contentResumeOffsetUs;
            i9++;
        }
        if (i7 < getAdCountInGroup(adPlaybackState, i6)) {
            while (i8 < i7) {
                j6 += adGroup.durationsUs[i8];
                i8++;
            }
        }
        return j6;
    }

    public static long getStreamPositionUsForContent(long j4, int i6, AdPlaybackState adPlaybackState) {
        if (i6 == -1) {
            i6 = adPlaybackState.adGroupCount;
        }
        long j6 = 0;
        for (int i7 = adPlaybackState.removedAdGroupCount; i7 < i6; i7++) {
            AdPlaybackState.AdGroup adGroup = adPlaybackState.getAdGroup(i7);
            long j7 = adGroup.timeUs;
            if (j7 == Long.MIN_VALUE || j7 > j4) {
                break;
            }
            long j8 = j7 + j6;
            for (int i8 = 0; i8 < getAdCountInGroup(adPlaybackState, i7); i8++) {
                j6 += adGroup.durationsUs[i8];
            }
            long j9 = adGroup.contentResumeOffsetUs;
            j6 -= j9;
            if (adGroup.timeUs + j9 > j4) {
                return Math.max(j8, j4 + j6);
            }
        }
        return j4 + j6;
    }

    public static long getStreamPositionUs(long j4, MediaSource.MediaPeriodId mediaPeriodId, AdPlaybackState adPlaybackState) {
        if (mediaPeriodId.isAd()) {
            return getStreamPositionUsForAd(j4, mediaPeriodId.adGroupIndex, mediaPeriodId.adIndexInAdGroup, adPlaybackState);
        }
        return getStreamPositionUsForContent(j4, mediaPeriodId.nextAdGroupIndex, adPlaybackState);
    }
}
