Commit e4194fc8 by bachinger Committed by Marc Baechinger

Make period durations of FakeMultiPeriodLiveTimeline configurable

PiperOrigin-RevId: 522046876
parent 5442c33a
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
*/ */
package androidx.media3.common; package androidx.media3.common;
import static androidx.media3.test.utils.FakeMultiPeriodLiveTimeline.AD_PERIOD_DURATION_MS;
import static androidx.media3.test.utils.FakeMultiPeriodLiveTimeline.PERIOD_DURATION_MS;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import android.os.Bundle; import android.os.Bundle;
...@@ -436,10 +438,13 @@ public class TimelineTest { ...@@ -436,10 +438,13 @@ public class TimelineTest {
public void periodIsLivePostrollPlaceholder_recognizesLivePostrollPlaceholder() { public void periodIsLivePostrollPlaceholder_recognizesLivePostrollPlaceholder() {
FakeMultiPeriodLiveTimeline timeline = FakeMultiPeriodLiveTimeline timeline =
new FakeMultiPeriodLiveTimeline( new FakeMultiPeriodLiveTimeline(
/* availabilityStartTimeUs= */ 0, /* availabilityStartTimeMs= */ 0,
/* liveWindowDurationUs= */ 60_000_000, /* liveWindowDurationUs= */ 60_000_000,
/* nowUs= */ 60_000_000, /* nowUs= */ 60_000_000,
/* adSequencePattern= */ new boolean[] {false, true, true}, /* adSequencePattern= */ new boolean[] {false, true, true},
/* periodDurationMsPattern= */ new long[] {
PERIOD_DURATION_MS, AD_PERIOD_DURATION_MS, AD_PERIOD_DURATION_MS
},
/* isContentTimeline= */ false, /* isContentTimeline= */ false,
/* populateAds= */ true, /* populateAds= */ true,
/* playedAds= */ false); /* playedAds= */ false);
......
...@@ -15,8 +15,11 @@ ...@@ -15,8 +15,11 @@
*/ */
package androidx.media3.exoplayer; package androidx.media3.exoplayer;
import static androidx.media3.common.util.Util.msToUs;
import static androidx.media3.test.utils.ExoPlayerTestRunner.AUDIO_FORMAT; import static androidx.media3.test.utils.ExoPlayerTestRunner.AUDIO_FORMAT;
import static androidx.media3.test.utils.ExoPlayerTestRunner.VIDEO_FORMAT; import static androidx.media3.test.utils.ExoPlayerTestRunner.VIDEO_FORMAT;
import static androidx.media3.test.utils.FakeMultiPeriodLiveTimeline.AD_PERIOD_DURATION_MS;
import static androidx.media3.test.utils.FakeMultiPeriodLiveTimeline.PERIOD_DURATION_MS;
import static androidx.media3.test.utils.FakeTimeline.TimelineWindowDefinition.DEFAULT_WINDOW_DURATION_US; import static androidx.media3.test.utils.FakeTimeline.TimelineWindowDefinition.DEFAULT_WINDOW_DURATION_US;
import static androidx.media3.test.utils.FakeTimeline.TimelineWindowDefinition.DEFAULT_WINDOW_OFFSET_IN_FIRST_PERIOD_US; import static androidx.media3.test.utils.FakeTimeline.TimelineWindowDefinition.DEFAULT_WINDOW_OFFSET_IN_FIRST_PERIOD_US;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
...@@ -430,15 +433,18 @@ public final class MediaPeriodQueueTest { ...@@ -430,15 +433,18 @@ public final class MediaPeriodQueueTest {
@Test @Test
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public void getNextMediaPeriodInfo_multiPeriodTimelineWithNoAdsAndNoPostrollPlaceholder() { public void getNextMediaPeriodInfo_multiPeriodTimelineWithNoAdsAndNoPostrollPlaceholder() {
long contentPeriodDurationUs = FakeMultiPeriodLiveTimeline.PERIOD_DURATION_US; long contentPeriodDurationUs = msToUs(PERIOD_DURATION_MS);
long adPeriodDurationUs = FakeMultiPeriodLiveTimeline.AD_PERIOD_DURATION_US; long adPeriodDurationUs = msToUs(AD_PERIOD_DURATION_MS);
// Multi period timeline without ad playback state. // Multi period timeline without ad playback state.
FakeMultiPeriodLiveTimeline multiPeriodLiveTimeline = FakeMultiPeriodLiveTimeline multiPeriodLiveTimeline =
new FakeMultiPeriodLiveTimeline( new FakeMultiPeriodLiveTimeline(
/* availabilityStartTimeUs= */ 0, /* availabilityStartTimeMs= */ 0,
/* liveWindowDurationUs= */ 60_000_000, /* liveWindowDurationUs= */ 60_000_000,
/* nowUs= */ 110_000_000, /* nowUs= */ 110_000_000,
new boolean[] {false, true, true}, /* adSequencePattern= */ new boolean[] {false, true, true},
/* periodDurationMsPattern= */ new long[] {
PERIOD_DURATION_MS, AD_PERIOD_DURATION_MS, AD_PERIOD_DURATION_MS
},
/* isContentTimeline= */ true, /* isContentTimeline= */ true,
/* populateAds= */ false, /* populateAds= */ false,
/* playedAds= */ false); /* playedAds= */ false);
...@@ -497,15 +503,18 @@ public final class MediaPeriodQueueTest { ...@@ -497,15 +503,18 @@ public final class MediaPeriodQueueTest {
@Test @Test
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public void getNextMediaPeriodInfo_multiPeriodTimelineWithPostrollPlaceHolder() { public void getNextMediaPeriodInfo_multiPeriodTimelineWithPostrollPlaceHolder() {
long contentPeriodDurationUs = FakeMultiPeriodLiveTimeline.PERIOD_DURATION_US; long contentPeriodDurationUs = msToUs(PERIOD_DURATION_MS);
long adPeriodDurationUs = FakeMultiPeriodLiveTimeline.AD_PERIOD_DURATION_US; long adPeriodDurationUs = msToUs(AD_PERIOD_DURATION_MS);
// Multi period timeline without ad playback state. // Multi period timeline without ad playback state.
FakeMultiPeriodLiveTimeline multiPeriodLiveTimeline = FakeMultiPeriodLiveTimeline multiPeriodLiveTimeline =
new FakeMultiPeriodLiveTimeline( new FakeMultiPeriodLiveTimeline(
/* availabilityStartTimeUs= */ 0, /* availabilityStartTimeMs= */ 0,
/* liveWindowDurationUs= */ 60_000_000, /* liveWindowDurationUs= */ 60_000_000,
/* nowUs= */ 110_000_000, /* nowUs= */ 110_000_000,
new boolean[] {false, true, true}, /* adSequencePattern= */ new boolean[] {false, true, true},
/* periodDurationMsPattern= */ new long[] {
PERIOD_DURATION_MS, AD_PERIOD_DURATION_MS, AD_PERIOD_DURATION_MS
},
/* isContentTimeline= */ false, /* isContentTimeline= */ false,
/* populateAds= */ false, /* populateAds= */ false,
/* playedAds= */ false); /* playedAds= */ false);
...@@ -564,14 +573,17 @@ public final class MediaPeriodQueueTest { ...@@ -564,14 +573,17 @@ public final class MediaPeriodQueueTest {
@Test @Test
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public void getNextMediaPeriodInfo_multiPeriodTimelineWithAdsAndWithPostRollPlaceHolder() { public void getNextMediaPeriodInfo_multiPeriodTimelineWithAdsAndWithPostRollPlaceHolder() {
long contentPeriodDurationUs = FakeMultiPeriodLiveTimeline.PERIOD_DURATION_US; long contentPeriodDurationUs = msToUs(PERIOD_DURATION_MS);
long adPeriodDurationUs = FakeMultiPeriodLiveTimeline.AD_PERIOD_DURATION_US; long adPeriodDurationUs = msToUs(AD_PERIOD_DURATION_MS);
FakeMultiPeriodLiveTimeline multiPeriodLiveTimeline = FakeMultiPeriodLiveTimeline multiPeriodLiveTimeline =
new FakeMultiPeriodLiveTimeline( new FakeMultiPeriodLiveTimeline(
/* availabilityStartTimeUs= */ 0, /* availabilityStartTimeMs= */ 0,
/* liveWindowDurationUs= */ 60_000_000, /* liveWindowDurationUs= */ 60_000_000,
/* nowUs= */ 110_000_000, /* nowUs= */ 110_000_000,
new boolean[] {false, true, true}, /* adSequencePattern= */ new boolean[] {false, true, true},
/* periodDurationMsPattern= */ new long[] {
PERIOD_DURATION_MS, AD_PERIOD_DURATION_MS, AD_PERIOD_DURATION_MS
},
/* isContentTimeline= */ false, /* isContentTimeline= */ false,
/* populateAds= */ true, /* populateAds= */ true,
/* playedAds= */ false); /* playedAds= */ false);
...@@ -646,13 +658,16 @@ public final class MediaPeriodQueueTest { ...@@ -646,13 +658,16 @@ public final class MediaPeriodQueueTest {
@Test @Test
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public void getNextMediaPeriodInfo_multiPeriodTimelineWithPlayedAdsAndWithPostRollPlaceHolder() { public void getNextMediaPeriodInfo_multiPeriodTimelineWithPlayedAdsAndWithPostRollPlaceHolder() {
long contentPeriodDurationUs = FakeMultiPeriodLiveTimeline.PERIOD_DURATION_US; long contentPeriodDurationUs = msToUs(PERIOD_DURATION_MS);
FakeMultiPeriodLiveTimeline multiPeriodLiveTimeline = FakeMultiPeriodLiveTimeline multiPeriodLiveTimeline =
new FakeMultiPeriodLiveTimeline( new FakeMultiPeriodLiveTimeline(
/* availabilityStartTimeUs= */ 0, /* availabilityStartTimeMs= */ 0,
/* liveWindowDurationUs= */ 60_000_000, /* liveWindowDurationUs= */ 60_000_000,
/* nowUs= */ 110_000_000, /* nowUs= */ 110_000_000,
new boolean[] {false, true, true}, /* adSequencePattern= */ new boolean[] {false, true, true},
/* periodDurationMsPattern= */ new long[] {
PERIOD_DURATION_MS, AD_PERIOD_DURATION_MS, AD_PERIOD_DURATION_MS
},
/* isContentTimeline= */ false, /* isContentTimeline= */ false,
/* populateAds= */ true, /* populateAds= */ true,
/* playedAds= */ true); /* playedAds= */ true);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment