diff --git a/library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java b/library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java index e4f14cfbb7..25ce2a587c 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java @@ -109,7 +109,6 @@ import com.google.android.exoplayer2.util.Clock; import com.google.android.exoplayer2.util.MimeTypes; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; import com.google.common.collect.Range; import java.io.IOException; import java.util.ArrayList; @@ -196,7 +195,7 @@ public final class ExoPlayerTest { /** Tests playback of a source that exposes a single period. */ @Test public void playSinglePeriodTimeline() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); FakeRenderer renderer = new FakeRenderer(C.TRACK_TYPE_VIDEO); SimpleExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(renderer).build(); EventListener mockEventListener = mock(EventListener.class); @@ -391,8 +390,7 @@ public final class ExoPlayerTest { MediaSource firstSource = new FakeMediaSource(firstTimeline, ExoPlayerTestRunner.VIDEO_FORMAT); AtomicBoolean secondSourcePrepared = new AtomicBoolean(); MediaSource secondSource = - new FakeMediaSource( - new FakeTimeline(/* windowCount= */ 1), ExoPlayerTestRunner.VIDEO_FORMAT) { + new FakeMediaSource(new FakeTimeline(), ExoPlayerTestRunner.VIDEO_FORMAT) { @Override public synchronized void prepareSourceInternal( @Nullable TransferListener mediaTransferListener) { @@ -400,7 +398,7 @@ public final class ExoPlayerTest { secondSourcePrepared.set(true); } }; - Timeline thirdTimeline = new FakeTimeline(/* windowCount= */ 1); + Timeline thirdTimeline = new FakeTimeline(); MediaSource thirdSource = new FakeMediaSource(thirdTimeline, ExoPlayerTestRunner.VIDEO_FORMAT); SimpleExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(renderer).build(); EventListener mockEventListener = mock(EventListener.class); @@ -490,7 +488,7 @@ public final class ExoPlayerTest { @Test public void shuffleModeEnabledChanges() throws Exception { - Timeline fakeTimeline = new FakeTimeline(/* windowCount= */ 1); + Timeline fakeTimeline = new FakeTimeline(); MediaSource[] fakeMediaSources = { new FakeMediaSource(fakeTimeline, ExoPlayerTestRunner.VIDEO_FORMAT), new FakeMediaSource(fakeTimeline, ExoPlayerTestRunner.VIDEO_FORMAT), @@ -725,7 +723,7 @@ public final class ExoPlayerTest { @Test public void internalDiscontinuityAtInitialPosition() throws Exception { - FakeTimeline timeline = new FakeTimeline(/* windowCount= */ 1); + FakeTimeline timeline = new FakeTimeline(); FakeMediaSource mediaSource = new FakeMediaSource(timeline, ExoPlayerTestRunner.VIDEO_FORMAT) { @Override @@ -760,10 +758,9 @@ public final class ExoPlayerTest { @Test public void allActivatedTrackSelectionAreReleasedForSinglePeriod() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); MediaSource mediaSource = new FakeMediaSource( - timeline, ExoPlayerTestRunner.VIDEO_FORMAT, ExoPlayerTestRunner.AUDIO_FORMAT); + new FakeTimeline(), ExoPlayerTestRunner.VIDEO_FORMAT, ExoPlayerTestRunner.AUDIO_FORMAT); FakeRenderer videoRenderer = new FakeRenderer(C.TRACK_TYPE_VIDEO); FakeRenderer audioRenderer = new FakeRenderer(C.TRACK_TYPE_AUDIO); FakeTrackSelector trackSelector = new FakeTrackSelector(); @@ -820,10 +817,9 @@ public final class ExoPlayerTest { @Test public void allActivatedTrackSelectionAreReleasedWhenTrackSelectionsAreRemade() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); MediaSource mediaSource = new FakeMediaSource( - timeline, ExoPlayerTestRunner.VIDEO_FORMAT, ExoPlayerTestRunner.AUDIO_FORMAT); + new FakeTimeline(), ExoPlayerTestRunner.VIDEO_FORMAT, ExoPlayerTestRunner.AUDIO_FORMAT); FakeRenderer videoRenderer = new FakeRenderer(C.TRACK_TYPE_VIDEO); FakeRenderer audioRenderer = new FakeRenderer(C.TRACK_TYPE_AUDIO); final FakeTrackSelector trackSelector = new FakeTrackSelector(); @@ -859,10 +855,9 @@ public final class ExoPlayerTest { @Test public void allActivatedTrackSelectionAreReleasedWhenTrackSelectionsAreReused() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); MediaSource mediaSource = new FakeMediaSource( - timeline, ExoPlayerTestRunner.VIDEO_FORMAT, ExoPlayerTestRunner.AUDIO_FORMAT); + new FakeTimeline(), ExoPlayerTestRunner.VIDEO_FORMAT, ExoPlayerTestRunner.AUDIO_FORMAT); FakeRenderer videoRenderer = new FakeRenderer(C.TRACK_TYPE_VIDEO); FakeRenderer audioRenderer = new FakeRenderer(C.TRACK_TYPE_AUDIO); final FakeTrackSelector trackSelector = @@ -976,8 +971,7 @@ public final class ExoPlayerTest { final CountDownLatch createPeriodCalledCountDownLatch = new CountDownLatch(1); final FakeMediaPeriod[] fakeMediaPeriodHolder = new FakeMediaPeriod[1]; MediaSource mediaSource = - new FakeMediaSource( - new FakeTimeline(/* windowCount= */ 1), ExoPlayerTestRunner.VIDEO_FORMAT) { + new FakeMediaSource(new FakeTimeline(), ExoPlayerTestRunner.VIDEO_FORMAT) { @Override protected FakeMediaPeriod createFakeMediaPeriod( MediaPeriodId id, @@ -1029,7 +1023,6 @@ public final class ExoPlayerTest { public void seekBeforePreparationCompletes_seeksToCorrectPosition() throws Exception { CountDownLatch createPeriodCalledCountDownLatch = new CountDownLatch(1); FakeMediaPeriod[] fakeMediaPeriodHolder = new FakeMediaPeriod[1]; - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); FakeMediaSource mediaSource = new FakeMediaSource(/* timeline= */ null, ExoPlayerTestRunner.VIDEO_FORMAT) { @Override @@ -1061,7 +1054,7 @@ public final class ExoPlayerTest { .waitForPlaybackState(Player.STATE_BUFFERING) // Ensure we use the MaskingMediaPeriod by delaying the initial timeline update. .delay(1) - .executeRunnable(() -> mediaSource.setNewSourceInfo(timeline)) + .executeRunnable(() -> mediaSource.setNewSourceInfo(new FakeTimeline())) .waitForTimelineChanged() // Block until createPeriod has been called on the fake media source. .executeRunnable( @@ -1099,13 +1092,12 @@ public final class ExoPlayerTest { @Test public void stop_withoutReset_doesNotResetPosition_correctMasking() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); int[] currentWindowIndex = {C.INDEX_UNSET, C.INDEX_UNSET, C.INDEX_UNSET}; long[] currentPosition = {C.TIME_UNSET, C.TIME_UNSET, C.TIME_UNSET}; long[] bufferedPosition = {C.TIME_UNSET, C.TIME_UNSET, C.TIME_UNSET}; long[] totalBufferedDuration = {C.TIME_UNSET, C.TIME_UNSET, C.TIME_UNSET}; final FakeMediaSource mediaSource = - new FakeMediaSource(timeline, ExoPlayerTestRunner.VIDEO_FORMAT); + new FakeMediaSource(new FakeTimeline(), ExoPlayerTestRunner.VIDEO_FORMAT); ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) .pause() @@ -1170,7 +1162,7 @@ public final class ExoPlayerTest { @Test public void stop_withoutReset_releasesMediaSource() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); final FakeMediaSource mediaSource = new FakeMediaSource(timeline, ExoPlayerTestRunner.VIDEO_FORMAT); ActionSchedule actionSchedule = @@ -1192,13 +1184,12 @@ public final class ExoPlayerTest { @Test public void stop_withReset_doesResetPosition_correctMasking() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); int[] currentWindowIndex = {C.INDEX_UNSET, C.INDEX_UNSET, C.INDEX_UNSET}; long[] currentPosition = {C.TIME_UNSET, C.TIME_UNSET, C.TIME_UNSET}; long[] bufferedPosition = {C.TIME_UNSET, C.TIME_UNSET, C.TIME_UNSET}; long[] totalBufferedDuration = {C.TIME_UNSET, C.TIME_UNSET, C.TIME_UNSET}; final FakeMediaSource mediaSource = - new FakeMediaSource(timeline, ExoPlayerTestRunner.VIDEO_FORMAT); + new FakeMediaSource(new FakeTimeline(), ExoPlayerTestRunner.VIDEO_FORMAT); ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) .pause() @@ -1264,7 +1255,7 @@ public final class ExoPlayerTest { @Test public void stop_withReset_releasesMediaSource() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); final FakeMediaSource mediaSource = new FakeMediaSource(timeline, ExoPlayerTestRunner.VIDEO_FORMAT); ActionSchedule actionSchedule = @@ -1286,13 +1277,12 @@ public final class ExoPlayerTest { @Test public void release_correctMasking() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); int[] currentWindowIndex = {C.INDEX_UNSET, C.INDEX_UNSET, C.INDEX_UNSET}; long[] currentPosition = {C.TIME_UNSET, C.TIME_UNSET, C.TIME_UNSET}; long[] bufferedPosition = {C.TIME_UNSET, C.TIME_UNSET, C.TIME_UNSET}; long[] totalBufferedDuration = {C.TIME_UNSET, C.TIME_UNSET, C.TIME_UNSET}; final FakeMediaSource mediaSource = - new FakeMediaSource(timeline, ExoPlayerTestRunner.VIDEO_FORMAT); + new FakeMediaSource(new FakeTimeline(), ExoPlayerTestRunner.VIDEO_FORMAT); ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) .pause() @@ -1351,7 +1341,7 @@ public final class ExoPlayerTest { @Test public void settingNewStartPositionPossibleAfterStopWithReset() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); Timeline secondTimeline = new FakeTimeline(/* windowCount= */ 2); MediaSource secondSource = new FakeMediaSource(secondTimeline, ExoPlayerTestRunner.VIDEO_FORMAT); @@ -1577,7 +1567,6 @@ public final class ExoPlayerTest { @Test public void stopDuringPreparationOverwritesPreparation() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) .waitForPlaybackState(Player.STATE_BUFFERING) @@ -1586,7 +1575,7 @@ public final class ExoPlayerTest { .build(); ExoPlayerTestRunner testRunner = new ExoPlayerTestRunner.Builder(context) - .setTimeline(timeline) + .setTimeline(new FakeTimeline()) .setActionSchedule(actionSchedule) .build() .start() @@ -1600,7 +1589,7 @@ public final class ExoPlayerTest { @Test public void stopAndSeekAfterStopDoesNotResetTimeline() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) .waitForPlaybackState(Player.STATE_READY) @@ -1626,7 +1615,7 @@ public final class ExoPlayerTest { @Test public void reprepareAfterPlaybackError() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) .waitForPlaybackState(Player.STATE_READY) @@ -1654,7 +1643,7 @@ public final class ExoPlayerTest { @Test public void seekAndReprepareAfterPlaybackError() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); final long[] positionHolder = new long[2]; ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) @@ -1741,8 +1730,6 @@ public final class ExoPlayerTest { @Test public void restartAfterEmptyTimelineWithShuffleModeEnabledUsesCorrectFirstPeriod() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); - FakeMediaSource mediaSource = new FakeMediaSource(timeline); ConcatenatingMediaSource concatenatingMediaSource = new ConcatenatingMediaSource(/* isAtomic= */ false, new FakeShuffleOrder(0)); AtomicInteger windowIndexAfterAddingSources = new AtomicInteger(); @@ -1756,7 +1743,7 @@ public final class ExoPlayerTest { .executeRunnable( () -> concatenatingMediaSource.addMediaSources( - Arrays.asList(mediaSource, mediaSource))) + ImmutableList.of(new FakeMediaSource(), new FakeMediaSource()))) .waitForTimelineChanged() .executeRunnable( new PlayerRunnable() { @@ -1908,7 +1895,6 @@ public final class ExoPlayerTest { @Test public void playbackErrorAndReprepareWithPositionResetKeepsWindowSequenceNumber() throws Exception { - FakeMediaSource mediaSource = new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)); ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) .pause() @@ -1942,7 +1928,6 @@ public final class ExoPlayerTest { }; ExoPlayerTestRunner testRunner = new ExoPlayerTestRunner.Builder(context) - .setMediaSources(mediaSource) .setActionSchedule(actionSchedule) .setAnalyticsListener(listener) .build(); @@ -1957,7 +1942,7 @@ public final class ExoPlayerTest { @Test public void playbackErrorTwiceStillKeepsTimeline() throws Exception { - final Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + final Timeline timeline = new FakeTimeline(); final FakeMediaSource mediaSource2 = new FakeMediaSource(timeline); ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) @@ -1993,7 +1978,6 @@ public final class ExoPlayerTest { @Test public void sendMessagesDuringPreparation() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); PositionGrabbingMessageTarget target = new PositionGrabbingMessageTarget(); ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) @@ -2003,7 +1987,6 @@ public final class ExoPlayerTest { .play() .build(); new ExoPlayerTestRunner.Builder(context) - .setTimeline(timeline) .setActionSchedule(actionSchedule) .build() .start() @@ -2013,7 +1996,7 @@ public final class ExoPlayerTest { @Test public void sendMessagesAfterPreparation() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); PositionGrabbingMessageTarget target = new PositionGrabbingMessageTarget(); ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) @@ -2034,7 +2017,6 @@ public final class ExoPlayerTest { @Test public void multipleSendMessages() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); PositionGrabbingMessageTarget target50 = new PositionGrabbingMessageTarget(); PositionGrabbingMessageTarget target80 = new PositionGrabbingMessageTarget(); ActionSchedule actionSchedule = @@ -2046,7 +2028,6 @@ public final class ExoPlayerTest { .play() .build(); new ExoPlayerTestRunner.Builder(context) - .setTimeline(timeline) .setActionSchedule(actionSchedule) .build() .start() @@ -2058,7 +2039,6 @@ public final class ExoPlayerTest { @Test public void sendMessagesFromStartPositionOnlyOnce() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); AtomicInteger counter = new AtomicInteger(); ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) @@ -2074,7 +2054,6 @@ public final class ExoPlayerTest { .play() .build(); new ExoPlayerTestRunner.Builder(context) - .setTimeline(timeline) .setActionSchedule(actionSchedule) .build() .start() @@ -2085,7 +2064,6 @@ public final class ExoPlayerTest { @Test public void multipleSendMessagesAtSameTime() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); PositionGrabbingMessageTarget target1 = new PositionGrabbingMessageTarget(); PositionGrabbingMessageTarget target2 = new PositionGrabbingMessageTarget(); ActionSchedule actionSchedule = @@ -2097,7 +2075,6 @@ public final class ExoPlayerTest { .play() .build(); new ExoPlayerTestRunner.Builder(context) - .setTimeline(timeline) .setActionSchedule(actionSchedule) .build() .start() @@ -2190,7 +2167,6 @@ public final class ExoPlayerTest { @Test public void sendMessagesSeekOnDeliveryTimeDuringPreparation() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); PositionGrabbingMessageTarget target = new PositionGrabbingMessageTarget(); ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) @@ -2199,7 +2175,6 @@ public final class ExoPlayerTest { .seek(/* positionMs= */ 50) .build(); new ExoPlayerTestRunner.Builder(context) - .setTimeline(timeline) .setActionSchedule(actionSchedule) .build() .start() @@ -2209,7 +2184,7 @@ public final class ExoPlayerTest { @Test public void sendMessagesSeekOnDeliveryTimeAfterPreparation() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); PositionGrabbingMessageTarget target = new PositionGrabbingMessageTarget(); ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) @@ -2230,7 +2205,6 @@ public final class ExoPlayerTest { @Test public void sendMessagesSeekAfterDeliveryTimeDuringPreparation() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); PositionGrabbingMessageTarget target = new PositionGrabbingMessageTarget(); ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) @@ -2241,7 +2215,6 @@ public final class ExoPlayerTest { .play() .build(); new ExoPlayerTestRunner.Builder(context) - .setTimeline(timeline) .setActionSchedule(actionSchedule) .build() .start() @@ -2251,7 +2224,7 @@ public final class ExoPlayerTest { @Test public void sendMessagesSeekAfterDeliveryTimeAfterPreparation() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); PositionGrabbingMessageTarget target = new PositionGrabbingMessageTarget(); ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) @@ -2273,7 +2246,6 @@ public final class ExoPlayerTest { @Test public void sendMessagesRepeatDoesNotRepost() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); PositionGrabbingMessageTarget target = new PositionGrabbingMessageTarget(); ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) @@ -2286,7 +2258,6 @@ public final class ExoPlayerTest { .setRepeatMode(Player.REPEAT_MODE_OFF) .build(); new ExoPlayerTestRunner.Builder(context) - .setTimeline(timeline) .setActionSchedule(actionSchedule) .build() .start() @@ -2297,7 +2268,6 @@ public final class ExoPlayerTest { @Test public void sendMessagesRepeatWithoutDeletingDoesRepost() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); PositionGrabbingMessageTarget target = new PositionGrabbingMessageTarget(); ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) @@ -2315,7 +2285,6 @@ public final class ExoPlayerTest { .play() .build(); new ExoPlayerTestRunner.Builder(context) - .setTimeline(timeline) .setActionSchedule(actionSchedule) .build() .start() @@ -2436,7 +2405,7 @@ public final class ExoPlayerTest { @Test public void sendMessagesNonLinearPeriodOrder() throws Exception { - Timeline fakeTimeline = new FakeTimeline(/* windowCount= */ 1); + Timeline fakeTimeline = new FakeTimeline(); MediaSource[] fakeMediaSources = { new FakeMediaSource(fakeTimeline, ExoPlayerTestRunner.VIDEO_FORMAT), new FakeMediaSource(fakeTimeline, ExoPlayerTestRunner.VIDEO_FORMAT), @@ -2471,7 +2440,6 @@ public final class ExoPlayerTest { @Test public void cancelMessageBeforeDelivery() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); final PositionGrabbingMessageTarget target = new PositionGrabbingMessageTarget(); final AtomicReference message = new AtomicReference<>(); ActionSchedule actionSchedule = @@ -2492,7 +2460,6 @@ public final class ExoPlayerTest { .play() .build(); new ExoPlayerTestRunner.Builder(context) - .setTimeline(timeline) .setActionSchedule(actionSchedule) .build() .start() @@ -2503,7 +2470,6 @@ public final class ExoPlayerTest { @Test public void cancelRepeatedMessageAfterDelivery() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); final CountingMessageTarget target = new CountingMessageTarget(); final AtomicReference message = new AtomicReference<>(); ActionSchedule actionSchedule = @@ -2530,7 +2496,6 @@ public final class ExoPlayerTest { .play() .build(); new ExoPlayerTestRunner.Builder(context) - .setTimeline(timeline) .setActionSchedule(actionSchedule) .build() .start() @@ -2543,8 +2508,7 @@ public final class ExoPlayerTest { public void sendMessages_withMediaRemoval_triggersCorrectMessagesAndDoesNotThrow() throws Exception { ExoPlayer player = new TestExoPlayerBuilder(context).build(); - MediaSource mediaSource = new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)); - player.addMediaSources(Arrays.asList(mediaSource, mediaSource)); + player.addMediaSources(ImmutableList.of(new FakeMediaSource(), new FakeMediaSource())); player .createMessage((messageType, payload) -> {}) .setPosition(/* windowIndex= */ 0, /* positionMs= */ 0) @@ -2761,7 +2725,7 @@ public final class ExoPlayerTest { @Test public void invalidSeekFallsBackToSubsequentPeriodOfTheRemovedPeriod() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); CountDownLatch sourceReleasedCountDownLatch = new CountDownLatch(/* count= */ 1); MediaSource mediaSourceToRemove = new FakeMediaSource(timeline) { @@ -2992,9 +2956,7 @@ public final class ExoPlayerTest { long expectedDurationUs = 700_000; MediaSource mediaSource = new ClippingMediaSource( - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), - startPositionUs, - startPositionUs + expectedDurationUs); + new FakeMediaSource(), startPositionUs, startPositionUs + expectedDurationUs); Clock clock = new AutoAdvancingFakeClock(); AtomicReference playerReference = new AtomicReference<>(); AtomicLong positionAtDiscontinuityMs = new AtomicLong(C.TIME_UNSET); @@ -3057,7 +3019,7 @@ public final class ExoPlayerTest { new FakeTimeline( new TimelineWindowDefinition( /* isSeekable= */ true, /* isDynamic= */ false, /* durationUs= */ C.TIME_UNSET)); - Timeline timelineSetDuration = new FakeTimeline(/* windowCount= */ 1); + Timeline timelineSetDuration = new FakeTimeline(); MediaSource mediaSource = new ConcatenatingMediaSource( new FakeMediaSource(timelineUnsetDuration, ExoPlayerTestRunner.VIDEO_FORMAT), @@ -3131,7 +3093,6 @@ public final class ExoPlayerTest { @Test public void seekToUnpreparedWindowWithNonZeroOffsetInConcatenationStartsAtCorrectPosition() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); FakeMediaSource mediaSource = new FakeMediaSource(/* timeline= */ null); MediaSource clippedMediaSource = new ClippingMediaSource( @@ -3148,7 +3109,7 @@ public final class ExoPlayerTest { .seek(/* positionMs= */ 10) .waitForPendingPlayerCommands() // Finish preparation. - .executeRunnable(() -> mediaSource.setNewSourceInfo(timeline)) + .executeRunnable(() -> mediaSource.setNewSourceInfo(new FakeTimeline())) .waitForTimelineChanged() .waitForPlaybackState(Player.STATE_READY) .executeRunnable( @@ -3619,7 +3580,7 @@ public final class ExoPlayerTest { @SuppressWarnings("deprecation") @Test public void seekTo_windowIndexIsReset_deprecated() throws Exception { - FakeTimeline fakeTimeline = new FakeTimeline(/* windowCount= */ 1); + FakeTimeline fakeTimeline = new FakeTimeline(); FakeMediaSource mediaSource = new FakeMediaSource(fakeTimeline); LoopingMediaSource loopingMediaSource = new LoopingMediaSource(mediaSource, 2); final int[] windowIndex = {C.INDEX_UNSET}; @@ -3673,7 +3634,7 @@ public final class ExoPlayerTest { @Test public void seekTo_windowIndexIsReset() throws Exception { - FakeTimeline fakeTimeline = new FakeTimeline(/* windowCount= */ 1); + FakeTimeline fakeTimeline = new FakeTimeline(); FakeMediaSource mediaSource = new FakeMediaSource(fakeTimeline); LoopingMediaSource loopingMediaSource = new LoopingMediaSource(mediaSource, 2); final int[] windowIndex = {C.INDEX_UNSET}; @@ -3835,8 +3796,8 @@ public final class ExoPlayerTest { positionMs, bufferedPositions, totalBufferedDuration, - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), + new FakeMediaSource(), + new FakeMediaSource(), createPartiallyBufferedMediaSource(/* maxBufferedPositionMs= */ 9200)); assertThat(windowIndex[0]).isEqualTo(0); @@ -3864,8 +3825,8 @@ public final class ExoPlayerTest { positionMs, bufferedPositions, totalBufferedDuration, - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), + new FakeMediaSource(), + new FakeMediaSource(), createPartiallyBufferedMediaSource(/* maxBufferedPositionMs= */ 0)); assertThat(windowIndex[0]).isEqualTo(2); @@ -3898,8 +3859,8 @@ public final class ExoPlayerTest { positionMs, bufferedPositions, totalBufferedDuration, - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1))); + new FakeMediaSource(), + new FakeMediaSource()); assertThat(windowIndex[0]).isEqualTo(1); assertThat(positionMs[0]).isEqualTo(1000); @@ -3934,7 +3895,7 @@ public final class ExoPlayerTest { positionMs, bufferedPositions, totalBufferedDuration, - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), + new FakeMediaSource(), createPartiallyBufferedMediaSource(/* maxBufferedPositionMs= */ 4000)); assertThat(windowIndex[0]).isEqualTo(1); @@ -3969,7 +3930,7 @@ public final class ExoPlayerTest { positionMs, bufferedPositions, totalBufferedDuration, - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), + new FakeMediaSource(), createPartiallyBufferedMediaSource(/* maxBufferedPositionMs= */ 4000)); assertThat(windowIndex[0]).isEqualTo(1); @@ -4002,8 +3963,8 @@ public final class ExoPlayerTest { positionMs, bufferedPositions, totalBufferedDuration, - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), + new FakeMediaSource(), + new FakeMediaSource(), createPartiallyBufferedMediaSource(/* maxBufferedPositionMs= */ 4000)); assertThat(windowIndex[0]).isEqualTo(1); @@ -4039,7 +4000,7 @@ public final class ExoPlayerTest { positionMs, bufferedPositions, totalBufferedDuration, - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), + new FakeMediaSource(), createPartiallyBufferedMediaSource(/* maxBufferedPositionMs= */ 4000)); assertThat(windowIndex[0]).isEqualTo(0); @@ -4072,8 +4033,8 @@ public final class ExoPlayerTest { positionMs, bufferedPositions, totalBufferedDuration, - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), + new FakeMediaSource(), + new FakeMediaSource(), createPartiallyBufferedMediaSource(/* maxBufferedPositionMs= */ 4000)); assertThat(windowIndex[0]).isEqualTo(0); @@ -4106,8 +4067,8 @@ public final class ExoPlayerTest { positionMs, bufferedPositions, totalBufferedDuration, - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), + new FakeMediaSource(), + new FakeMediaSource(), createPartiallyBufferedMediaSource(/* maxBufferedPositionMs= */ 4000), createPartiallyBufferedMediaSource(/* maxBufferedPositionMs= */ 0)); @@ -4141,7 +4102,7 @@ public final class ExoPlayerTest { positionMs, bufferedPositions, totalBufferedDuration, - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), + new FakeMediaSource(), createPartiallyBufferedMediaSource(/* maxBufferedPositionMs= */ 4000)); assertThat(windowIndex[0]).isEqualTo(0); @@ -4176,8 +4137,8 @@ public final class ExoPlayerTest { positionMs, bufferedPositions, totalBufferedDuration, - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), + new FakeMediaSource(), + new FakeMediaSource(), createPartiallyBufferedMediaSource(/* maxBufferedPositionMs= */ 4000)); assertThat(windowIndex[0]).isEqualTo(0); @@ -4211,8 +4172,8 @@ public final class ExoPlayerTest { positionMs, bufferedPositions, totalBufferedDuration, - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), + new FakeMediaSource(), + new FakeMediaSource(), createPartiallyBufferedMediaSource(/* maxBufferedPositionMs= */ 4000)); assertThat(windowIndex[0]).isEqualTo(0); @@ -4245,8 +4206,8 @@ public final class ExoPlayerTest { positionMs, bufferedPositions, totalBufferedDuration, - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), + new FakeMediaSource(), + new FakeMediaSource(), createPartiallyBufferedMediaSource(/* maxBufferedPositionMs= */ 4000)); assertThat(windowIndex[0]).isEqualTo(0); @@ -4384,9 +4345,7 @@ public final class ExoPlayerTest { new PlayerRunnable() { @Override public void run(SimpleExoPlayer player) { - player.addMediaSource( - /* index= */ 1, - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1))); + player.addMediaSource(/* index= */ 1, new FakeMediaSource()); windowIndex[0] = player.getCurrentWindowIndex(); isPlayingAd[0] = player.isPlayingAd(); positionMs[0] = player.getCurrentPosition(); @@ -4412,8 +4371,7 @@ public final class ExoPlayerTest { new PlayerRunnable() { @Override public void run(SimpleExoPlayer player) { - player.addMediaSource( - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1))); + player.addMediaSource(new FakeMediaSource()); windowIndex[2] = player.getCurrentWindowIndex(); isPlayingAd[2] = player.isPlayingAd(); positionMs[2] = player.getCurrentPosition(); @@ -4425,8 +4383,7 @@ public final class ExoPlayerTest { .build(); new ExoPlayerTestRunner.Builder(context) - .setMediaSources( - adsMediaSource, new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1))) + .setMediaSources(adsMediaSource, new FakeMediaSource()) .setActionSchedule(actionSchedule) .build() .start() @@ -4622,7 +4579,7 @@ public final class ExoPlayerTest { /* chunkDurationUs= */ 500_000, /* bitratePercentStdDev= */ 10.0); MediaSource chunkedMediaSource = new FakeAdaptiveMediaSource( - new FakeTimeline(/* windowCount= */ 1), + new FakeTimeline(), new TrackGroupArray(new TrackGroup(ExoPlayerTestRunner.VIDEO_FORMAT)), new FakeChunkSource.Factory(dataSetFactory, new FakeDataSource.Factory())); @@ -4663,8 +4620,7 @@ public final class ExoPlayerTest { } }; MediaSource mediaSourceWithLoadInProgress = - new FakeMediaSource( - new FakeTimeline(/* windowCount= */ 1), ExoPlayerTestRunner.VIDEO_FORMAT) { + new FakeMediaSource(new FakeTimeline(), ExoPlayerTestRunner.VIDEO_FORMAT) { @Override protected FakeMediaPeriod createFakeMediaPeriod( MediaPeriodId id, @@ -4747,7 +4703,7 @@ public final class ExoPlayerTest { /* chunkDurationUs= */ 500_000, /* bitratePercentStdDev= */ 10.0); MediaSource chunkedMediaSource = new FakeAdaptiveMediaSource( - new FakeTimeline(/* windowCount= */ 1), + new FakeTimeline(), new TrackGroupArray(new TrackGroup(ExoPlayerTestRunner.VIDEO_FORMAT)), new FakeChunkSource.Factory(dataSetFactory, new FakeDataSource.Factory())); @@ -4931,7 +4887,7 @@ public final class ExoPlayerTest { @Test public void clearMediaItems() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) .waitForTimelineChanged(timeline, Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE) @@ -4959,7 +4915,7 @@ public final class ExoPlayerTest { @Test public void multipleModificationWithRecursiveListenerInvocations() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); MediaSource mediaSource = new FakeMediaSource(timeline); Timeline secondTimeline = new FakeTimeline(/* windowCount= */ 2); MediaSource secondMediaSource = new FakeMediaSource(secondTimeline); @@ -4995,10 +4951,6 @@ public final class ExoPlayerTest { @Test public void modifyPlaylistUnprepared_remainsInIdle_needsPrepareForBuffering() throws Exception { - Timeline firstTimeline = new FakeTimeline(/* windowCount= */ 1); - MediaSource firstMediaSource = new FakeMediaSource(firstTimeline); - Timeline secondTimeline = new FakeTimeline(/* windowCount= */ 1); - MediaSource secondMediaSource = new FakeMediaSource(secondTimeline); int[] playbackStates = new int[4]; int[] timelineWindowCounts = new int[4]; int[] maskingPlaybackState = {C.INDEX_UNSET}; @@ -5015,13 +4967,13 @@ public final class ExoPlayerTest { new PlayerRunnable() { @Override public void run(SimpleExoPlayer player) { - player.setMediaSource(firstMediaSource, /* startPositionMs= */ 1000); + player.setMediaSource(new FakeMediaSource(), /* startPositionMs= */ 1000); maskingPlaybackState[0] = player.getPlaybackState(); } }) .executeRunnable( new PlaybackStateCollector(/* index= */ 2, playbackStates, timelineWindowCounts)) - .addMediaSources(secondMediaSource) + .addMediaSources(new FakeMediaSource()) .executeRunnable( new PlaybackStateCollector(/* index= */ 3, playbackStates, timelineWindowCounts)) .seek(/* windowIndex= */ 1, /* positionMs= */ 2000) @@ -5033,7 +4985,7 @@ public final class ExoPlayerTest { .build(); ExoPlayerTestRunner exoPlayerTestRunner = new ExoPlayerTestRunner.Builder(context) - .setMediaSources(firstMediaSource) + .setMediaSources(new FakeMediaSource()) .setActionSchedule(actionSchedule) .build() .start(/* doPrepare= */ false) @@ -5083,7 +5035,7 @@ public final class ExoPlayerTest { @Test public void modifyPlaylistPrepared_remainsInEnded_needsSeekForBuffering() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); FakeMediaSource secondMediaSource = new FakeMediaSource(timeline); ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) @@ -5142,7 +5094,7 @@ public final class ExoPlayerTest { @Test public void stopWithNoReset_modifyingPlaylistRemainsInIdleState_needsPrepareForBuffering() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); FakeMediaSource secondMediaSource = new FakeMediaSource(timeline); int[] playbackStateHolder = new int[3]; int[] windowCountHolder = new int[3]; @@ -5225,7 +5177,7 @@ public final class ExoPlayerTest { @Test public void prepareWhenAlreadyPreparedIsANoop() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG).waitForPlaybackState(Player.STATE_READY).prepare().build(); ExoPlayerTestRunner exoPlayerTestRunner = @@ -5568,8 +5520,6 @@ public final class ExoPlayerTest { @Test public void setMediaSources_empty_whenEmpty_correctMaskingWindowIndex() throws Exception { - Timeline secondTimeline = new FakeTimeline(/* windowCount= */ 1); - MediaSource secondMediaSource = new FakeMediaSource(secondTimeline); final int[] currentWindowIndices = {C.INDEX_UNSET, C.INDEX_UNSET, C.INDEX_UNSET}; ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) @@ -5578,9 +5528,8 @@ public final class ExoPlayerTest { @Override public void run(SimpleExoPlayer player) { currentWindowIndices[0] = player.getCurrentWindowIndex(); - List listOfTwo = new ArrayList<>(); - listOfTwo.add(secondMediaSource); - listOfTwo.add(secondMediaSource); + List listOfTwo = + ImmutableList.of(new FakeMediaSource(), new FakeMediaSource()); player.addMediaSources(/* index= */ 0, listOfTwo); currentWindowIndices[1] = player.getCurrentWindowIndex(); } @@ -5620,7 +5569,7 @@ public final class ExoPlayerTest { currentWindowIndices[0] = player.getCurrentWindowIndex(); currentPositions[0] = player.getCurrentPosition(); List listOfTwo = - Lists.newArrayList( + ImmutableList.of( MediaItem.fromUri(Uri.EMPTY), MediaItem.fromUri(Uri.EMPTY)); player.setMediaItems(listOfTwo, /* resetPosition= */ true); currentWindowIndices[1] = player.getCurrentWindowIndex(); @@ -5644,8 +5593,6 @@ public final class ExoPlayerTest { @Test public void setMediaSources_empty_whenEmpty_validInitialSeek_correctMaskingWindowIndex() throws Exception { - Timeline secondTimeline = new FakeTimeline(/* windowCount= */ 1); - MediaSource secondMediaSource = new FakeMediaSource(secondTimeline); final int[] currentWindowIndices = {C.INDEX_UNSET, C.INDEX_UNSET, C.INDEX_UNSET}; ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) @@ -5657,9 +5604,8 @@ public final class ExoPlayerTest { @Override public void run(SimpleExoPlayer player) { currentWindowIndices[0] = player.getCurrentWindowIndex(); - List listOfTwo = new ArrayList<>(); - listOfTwo.add(secondMediaSource); - listOfTwo.add(secondMediaSource); + List listOfTwo = + ImmutableList.of(new FakeMediaSource(), new FakeMediaSource()); player.addMediaSources(/* index= */ 0, listOfTwo); currentWindowIndices[1] = player.getCurrentWindowIndex(); } @@ -5688,8 +5634,6 @@ public final class ExoPlayerTest { @Test public void setMediaSources_empty_whenEmpty_invalidInitialSeek_correctMaskingWindowIndex() throws Exception { - Timeline secondTimeline = new FakeTimeline(/* windowCount= */ 1); - MediaSource secondMediaSource = new FakeMediaSource(secondTimeline); final int[] currentWindowIndices = {C.INDEX_UNSET, C.INDEX_UNSET, C.INDEX_UNSET}; ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) @@ -5701,9 +5645,8 @@ public final class ExoPlayerTest { @Override public void run(SimpleExoPlayer player) { currentWindowIndices[0] = player.getCurrentWindowIndex(); - List listOfTwo = new ArrayList<>(); - listOfTwo.add(secondMediaSource); - listOfTwo.add(secondMediaSource); + List listOfTwo = + ImmutableList.of(new FakeMediaSource(), new FakeMediaSource()); player.addMediaSources(/* index= */ 0, listOfTwo); currentWindowIndices[1] = player.getCurrentWindowIndex(); } @@ -5731,10 +5674,6 @@ public final class ExoPlayerTest { @Test public void setMediaSources_whenEmpty_correctMaskingWindowIndex() throws Exception { - Timeline firstTimeline = new FakeTimeline(/* windowCount= */ 1); - MediaSource firstMediaSource = new FakeMediaSource(firstTimeline); - Timeline secondTimeline = new FakeTimeline(/* windowCount= */ 1); - MediaSource secondMediaSource = new FakeMediaSource(secondTimeline); final int[] currentWindowIndices = {C.INDEX_UNSET, C.INDEX_UNSET, C.INDEX_UNSET, C.INDEX_UNSET}; ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) @@ -5744,7 +5683,7 @@ public final class ExoPlayerTest { @Override public void run(SimpleExoPlayer player) { // Increase current window index. - player.addMediaSource(/* index= */ 0, secondMediaSource); + player.addMediaSource(/* index= */ 0, new FakeMediaSource()); currentWindowIndices[0] = player.getCurrentWindowIndex(); } }) @@ -5753,7 +5692,7 @@ public final class ExoPlayerTest { @Override public void run(SimpleExoPlayer player) { // Current window index is unchanged. - player.addMediaSource(/* index= */ 2, secondMediaSource); + player.addMediaSource(/* index= */ 2, new FakeMediaSource()); currentWindowIndices[1] = player.getCurrentWindowIndex(); } }) @@ -5761,8 +5700,7 @@ public final class ExoPlayerTest { new PlayerRunnable() { @Override public void run(SimpleExoPlayer player) { - MediaSource mediaSource = - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)); + MediaSource mediaSource = new FakeMediaSource(); ConcatenatingMediaSource concatenatingMediaSource = new ConcatenatingMediaSource(mediaSource, mediaSource, mediaSource); // Increase current window with multi window source. @@ -5783,7 +5721,7 @@ public final class ExoPlayerTest { }) .build(); new ExoPlayerTestRunner.Builder(context) - .setMediaSources(firstMediaSource) + .setMediaSources(new FakeMediaSource()) .setActionSchedule(actionSchedule) .build() .start() @@ -5847,10 +5785,6 @@ public final class ExoPlayerTest { @Test public void setMediaSources_whenEmpty_invalidInitialSeek_correctMasking() throws Exception { - Timeline firstTimeline = new FakeTimeline(/* windowCount= */ 1); - MediaSource firstMediaSource = new FakeMediaSource(firstTimeline); - Timeline secondTimeline = new FakeTimeline(/* windowCount= */ 1, new Object()); - MediaSource secondMediaSource = new FakeMediaSource(secondTimeline); final int[] currentWindowIndices = {C.INDEX_UNSET, C.INDEX_UNSET, C.INDEX_UNSET}; final long[] currentPositions = {C.TIME_UNSET, C.TIME_UNSET, C.TIME_UNSET}; final long[] bufferedPositions = {C.TIME_UNSET, C.TIME_UNSET, C.TIME_UNSET}; @@ -5867,7 +5801,7 @@ public final class ExoPlayerTest { currentPositions[0] = player.getCurrentPosition(); bufferedPositions[0] = player.getBufferedPosition(); // Increase current window index. - player.addMediaSource(/* index= */ 0, secondMediaSource); + player.addMediaSource(/* index= */ 0, new FakeMediaSource()); currentWindowIndices[1] = player.getCurrentWindowIndex(); currentPositions[1] = player.getCurrentPosition(); bufferedPositions[1] = player.getBufferedPosition(); @@ -5888,7 +5822,7 @@ public final class ExoPlayerTest { .build(); new ExoPlayerTestRunner.Builder(context) .initialSeek(/* windowIndex= */ 1, 2000) - .setMediaSources(firstMediaSource) + .setMediaSources(new FakeMediaSource()) .setActionSchedule(actionSchedule) .build() .start(/* doPrepare= */ false) @@ -5901,10 +5835,6 @@ public final class ExoPlayerTest { @Test public void setMediaSources_correctMaskingWindowIndex() throws Exception { - Timeline firstTimeline = new FakeTimeline(/* windowCount= */ 1); - MediaSource firstMediaSource = new FakeMediaSource(firstTimeline); - Timeline secondTimeline = new FakeTimeline(/* windowCount= */ 1, new Object()); - MediaSource secondMediaSource = new FakeMediaSource(secondTimeline); final int[] currentWindowIndices = {C.INDEX_UNSET, C.INDEX_UNSET, C.INDEX_UNSET}; ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) @@ -5915,7 +5845,7 @@ public final class ExoPlayerTest { public void run(SimpleExoPlayer player) { currentWindowIndices[0] = player.getCurrentWindowIndex(); // Increase current window index. - player.addMediaSource(/* index= */ 0, secondMediaSource); + player.addMediaSource(/* index= */ 0, new FakeMediaSource()); currentWindowIndices[1] = player.getCurrentWindowIndex(); } }) @@ -5929,7 +5859,7 @@ public final class ExoPlayerTest { }) .build(); new ExoPlayerTestRunner.Builder(context) - .setMediaSources(firstMediaSource) + .setMediaSources(new FakeMediaSource()) .setActionSchedule(actionSchedule) .build() .start() @@ -5940,10 +5870,6 @@ public final class ExoPlayerTest { @Test public void setMediaSources_whenIdle_correctMaskingPlaybackState() throws Exception { - Timeline firstTimeline = new FakeTimeline(/* windowCount= */ 1, 1L); - MediaSource firstMediaSource = new FakeMediaSource(firstTimeline); - Timeline secondTimeline = new FakeTimeline(/* windowCount= */ 1, 2L); - MediaSource secondMediaSource = new FakeMediaSource(secondTimeline); final int[] maskingPlaybackStates = new int[4]; Arrays.fill(maskingPlaybackStates, C.INDEX_UNSET); ActionSchedule actionSchedule = @@ -5962,7 +5888,7 @@ public final class ExoPlayerTest { @Override public void run(SimpleExoPlayer player) { // Set media item with an implicit seek to the current position. - player.setMediaSource(firstMediaSource); + player.setMediaSource(new FakeMediaSource()); maskingPlaybackStates[1] = player.getPlaybackState(); } }) @@ -5971,7 +5897,8 @@ public final class ExoPlayerTest { @Override public void run(SimpleExoPlayer player) { // Set media item with an explicit seek. - player.setMediaSource(secondMediaSource, /* startPositionMs= */ C.TIME_UNSET); + player.setMediaSource( + new FakeMediaSource(), /* startPositionMs= */ C.TIME_UNSET); maskingPlaybackStates[2] = player.getPlaybackState(); } }) @@ -6058,8 +5985,7 @@ public final class ExoPlayerTest { @Override public void run(SimpleExoPlayer player) { // Set media item with no seek. - player.setMediaSource( - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1))); + player.setMediaSource(new FakeMediaSource()); maskingPlaybackStates[0] = player.getPlaybackState(); } }) @@ -6098,7 +6024,7 @@ public final class ExoPlayerTest { maskingPlaybackStates[0] = player.getPlaybackState(); } }) - .setMediaSources(new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1))) + .setMediaSources(new FakeMediaSource()) .prepare() .waitForPlaybackState(Player.STATE_READY) .build(); @@ -6256,9 +6182,7 @@ public final class ExoPlayerTest { @Override public void run(SimpleExoPlayer player) { // Set media item with no seek (keep current position). - player.setMediaSource( - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1)), - /* resetPosition= */ false); + player.setMediaSource(new FakeMediaSource(), /* resetPosition= */ false); maskingPlaybackStates[0] = player.getPlaybackState(); } }) @@ -6499,9 +6423,7 @@ public final class ExoPlayerTest { new PlayerRunnable() { @Override public void run(SimpleExoPlayer player) { - player.addMediaSource( - /* index= */ 0, - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1))); + player.addMediaSource(/* index= */ 0, new FakeMediaSource()); positions[0] = player.getCurrentPosition(); positions[1] = player.getBufferedPosition(); } @@ -6547,9 +6469,7 @@ public final class ExoPlayerTest { /* index= */ 0, new FakeMediaSource(new FakeTimeline(/* windowCount= */ 2))); currentWindowIndices[2] = player.getCurrentWindowIndex(); - player.addMediaSource( - /* index= */ 0, - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1))); + player.addMediaSource(/* index= */ 0, new FakeMediaSource()); currentWindowIndices[3] = player.getCurrentWindowIndex(); // With a non-empty timeline, we mask the periodId in the playback info. currentPositions[1] = player.getCurrentPosition(); @@ -6590,8 +6510,6 @@ public final class ExoPlayerTest { public void testAddMediaSources_skipSettingMediaItems_invalidInitialSeek_correctMaskingWindowIndex() throws Exception { - Timeline secondTimeline = new FakeTimeline(/* windowCount= */ 1); - MediaSource secondMediaSource = new FakeMediaSource(secondTimeline); final int[] currentWindowIndices = {C.INDEX_UNSET, C.INDEX_UNSET, C.INDEX_UNSET}; ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) @@ -6603,7 +6521,7 @@ public final class ExoPlayerTest { @Override public void run(SimpleExoPlayer player) { currentWindowIndices[0] = player.getCurrentWindowIndex(); - player.addMediaSource(secondMediaSource); + player.addMediaSource(new FakeMediaSource()); currentWindowIndices[1] = player.getCurrentWindowIndex(); } }) @@ -6630,7 +6548,7 @@ public final class ExoPlayerTest { @Test public void moveMediaItems_correctMaskingWindowIndex() throws Exception { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); MediaSource firstMediaSource = new FakeMediaSource(timeline); MediaSource secondMediaSource = new FakeMediaSource(timeline); MediaSource thirdMediaSource = new FakeMediaSource(timeline); @@ -6711,10 +6629,6 @@ public final class ExoPlayerTest { @Test public void moveMediaItems_unprepared_correctMaskingWindowIndex() throws Exception { - Timeline firstTimeline = new FakeTimeline(/* windowCount= */ 1); - MediaSource firstMediaSource = new FakeMediaSource(firstTimeline); - Timeline secondTimeline = new FakeTimeline(/* windowCount= */ 1); - MediaSource secondMediaSource = new FakeMediaSource(secondTimeline); final int[] currentWindowIndices = {C.INDEX_UNSET, C.INDEX_UNSET, C.INDEX_UNSET}; ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) @@ -6740,7 +6654,7 @@ public final class ExoPlayerTest { }) .build(); new ExoPlayerTestRunner.Builder(context) - .setMediaSources(firstMediaSource, secondMediaSource) + .setMediaSources(new FakeMediaSource(), new FakeMediaSource()) .setActionSchedule(actionSchedule) .build() .start(/* doPrepare= */ false) @@ -6751,10 +6665,6 @@ public final class ExoPlayerTest { @Test public void removeMediaItems_correctMaskingWindowIndex() throws Exception { - Timeline firstTimeline = new FakeTimeline(/* windowCount= */ 1); - MediaSource firstMediaSource = new FakeMediaSource(firstTimeline); - Timeline secondTimeline = new FakeTimeline(/* windowCount= */ 1); - MediaSource secondMediaSource = new FakeMediaSource(secondTimeline); final int[] currentWindowIndices = {C.INDEX_UNSET, C.INDEX_UNSET}; ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) @@ -6772,7 +6682,7 @@ public final class ExoPlayerTest { .build(); new ExoPlayerTestRunner.Builder(context) .initialSeek(/* windowIndex= */ 1, /* positionMs= */ C.TIME_UNSET) - .setMediaSources(firstMediaSource, secondMediaSource) + .setMediaSources(new FakeMediaSource(), new FakeMediaSource()) .setActionSchedule(actionSchedule) .build() .start() @@ -6783,10 +6693,6 @@ public final class ExoPlayerTest { @Test public void removeMediaItems_currentItemRemoved_correctMasking() throws Exception { - Timeline firstTimeline = new FakeTimeline(/* windowCount= */ 1); - MediaSource firstMediaSource = new FakeMediaSource(firstTimeline); - Timeline secondTimeline = new FakeTimeline(/* windowCount= */ 1); - MediaSource secondMediaSource = new FakeMediaSource(secondTimeline); final int[] currentWindowIndices = {C.INDEX_UNSET, C.INDEX_UNSET}; final long[] currentPositions = {C.TIME_UNSET, C.TIME_UNSET}; final long[] bufferedPositions = {C.TIME_UNSET, C.TIME_UNSET}; @@ -6810,7 +6716,7 @@ public final class ExoPlayerTest { .build(); new ExoPlayerTestRunner.Builder(context) .initialSeek(/* windowIndex= */ 1, /* positionMs= */ 5000) - .setMediaSources(firstMediaSource, secondMediaSource, firstMediaSource) + .setMediaSources(new FakeMediaSource(), new FakeMediaSource(), new FakeMediaSource()) .setActionSchedule(actionSchedule) .build() .start() @@ -6957,10 +6863,6 @@ public final class ExoPlayerTest { @Test public void removeMediaItems_removeTailWithCurrentWindow_whenIdle_finishesPlayback() throws Exception { - Timeline firstTimeline = new FakeTimeline(/* windowCount= */ 1); - MediaSource firstMediaSource = new FakeMediaSource(firstTimeline); - Timeline secondTimeline = new FakeTimeline(/* windowCount= */ 1, new Object()); - MediaSource secondMediaSource = new FakeMediaSource(secondTimeline); ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG) .seek(/* windowIndex= */ 1, /* positionMs= */ C.TIME_UNSET) @@ -6971,7 +6873,7 @@ public final class ExoPlayerTest { .build(); ExoPlayerTestRunner exoPlayerTestRunner = new ExoPlayerTestRunner.Builder(context) - .setMediaSources(firstMediaSource, secondMediaSource) + .setMediaSources(new FakeMediaSource(), new FakeMediaSource()) .setActionSchedule(actionSchedule) .build() .start(/* doPrepare= */ false) @@ -6983,10 +6885,6 @@ public final class ExoPlayerTest { @Test public void clearMediaItems_correctMasking() throws Exception { - Timeline firstTimeline = new FakeTimeline(/* windowCount= */ 1); - MediaSource firstMediaSource = new FakeMediaSource(firstTimeline); - Timeline secondTimeline = new FakeTimeline(/* windowCount= */ 1); - MediaSource secondMediaSource = new FakeMediaSource(secondTimeline); final int[] currentWindowIndices = {C.INDEX_UNSET, C.INDEX_UNSET}; final int[] maskingPlaybackState = {C.INDEX_UNSET}; final long[] currentPosition = {C.TIME_UNSET, C.TIME_UNSET}; @@ -7013,7 +6911,7 @@ public final class ExoPlayerTest { .build(); new ExoPlayerTestRunner.Builder(context) .initialSeek(/* windowIndex= */ 1, /* positionMs= */ C.TIME_UNSET) - .setMediaSources(firstMediaSource, secondMediaSource) + .setMediaSources(new FakeMediaSource(), new FakeMediaSource()) .setActionSchedule(actionSchedule) .build() .start() @@ -7030,10 +6928,6 @@ public final class ExoPlayerTest { @Test public void clearMediaItems_unprepared_correctMaskingWindowIndex_notEnded() throws Exception { - Timeline firstTimeline = new FakeTimeline(/* windowCount= */ 1); - MediaSource firstMediaSource = new FakeMediaSource(firstTimeline); - Timeline secondTimeline = new FakeTimeline(/* windowCount= */ 1); - MediaSource secondMediaSource = new FakeMediaSource(secondTimeline); final int[] currentWindowIndices = {C.INDEX_UNSET, C.INDEX_UNSET}; final int[] currentStates = {C.INDEX_UNSET, C.INDEX_UNSET, C.INDEX_UNSET}; ActionSchedule actionSchedule = @@ -7064,7 +6958,7 @@ public final class ExoPlayerTest { .build(); new ExoPlayerTestRunner.Builder(context) .initialSeek(/* windowIndex= */ 1, /* positionMs= */ C.TIME_UNSET) - .setMediaSources(firstMediaSource, secondMediaSource) + .setMediaSources(new FakeMediaSource(), new FakeMediaSource()) .setActionSchedule(actionSchedule) .build() .start(/* doPrepare= */ false) @@ -7079,12 +6973,9 @@ public final class ExoPlayerTest { public void errorThrownDuringPlaylistUpdate_keepsConsistentPlayerState() { FakeMediaSource source1 = new FakeMediaSource( - new FakeTimeline(/* windowCount= */ 1), - ExoPlayerTestRunner.VIDEO_FORMAT, - ExoPlayerTestRunner.AUDIO_FORMAT); + new FakeTimeline(), ExoPlayerTestRunner.VIDEO_FORMAT, ExoPlayerTestRunner.AUDIO_FORMAT); FakeMediaSource source2 = - new FakeMediaSource( - new FakeTimeline(/* windowCount= */ 1), ExoPlayerTestRunner.AUDIO_FORMAT); + new FakeMediaSource(new FakeTimeline(), ExoPlayerTestRunner.AUDIO_FORMAT); AtomicInteger audioRendererEnableCount = new AtomicInteger(0); FakeRenderer videoRenderer = new FakeRenderer(C.TRACK_TYPE_VIDEO); FakeRenderer audioRenderer = @@ -7280,8 +7171,7 @@ public final class ExoPlayerTest { // Return no end of stream signal to prevent playback from ending. FakeMediaPeriod.TrackDataFactory trackDataWithoutEos = (format, periodId) -> ImmutableList.of(); MediaSource continuouslyAllocatingMediaSource = - new FakeMediaSource( - new FakeTimeline(/* windowCount= */ 1), ExoPlayerTestRunner.VIDEO_FORMAT) { + new FakeMediaSource(new FakeTimeline(), ExoPlayerTestRunner.VIDEO_FORMAT) { @Override protected FakeMediaPeriod createFakeMediaPeriod( MediaPeriodId id, @@ -7358,8 +7248,7 @@ public final class ExoPlayerTest { public void cancelLoad() {} }; MediaSource largeBufferAllocatingMediaSource = - new FakeMediaSource( - new FakeTimeline(/* windowCount= */ 1), ExoPlayerTestRunner.VIDEO_FORMAT) { + new FakeMediaSource(new FakeTimeline(), ExoPlayerTestRunner.VIDEO_FORMAT) { @Override protected FakeMediaPeriod createFakeMediaPeriod( MediaPeriodId id, @@ -7995,7 +7884,7 @@ public final class ExoPlayerTest { mediaSourceMaybeThrowSourceInfoRefreshError_isNotThrownUntilPlaybackReachedFailingItem() throws Exception { ExoPlayer player = new TestExoPlayerBuilder(context).build(); - player.addMediaSource(new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1))); + player.addMediaSource(new FakeMediaSource()); player.addMediaSource( new FakeMediaSource(/* timeline= */ null) { @Override @@ -8021,7 +7910,7 @@ public final class ExoPlayerTest { public void mediaPeriodMaybeThrowPrepareError_isNotThrownUntilPlaybackReachedFailingItem() throws Exception { ExoPlayer player = new TestExoPlayerBuilder(context).build(); - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); player.addMediaSource(new FakeMediaSource(timeline, ExoPlayerTestRunner.VIDEO_FORMAT)); player.addMediaSource( new FakeMediaSource(timeline, ExoPlayerTestRunner.VIDEO_FORMAT) { @@ -8066,7 +7955,7 @@ public final class ExoPlayerTest { public void sampleStreamMaybeThrowError_isNotThrownUntilPlaybackReachedFailingItem() throws Exception { ExoPlayer player = new TestExoPlayerBuilder(context).build(); - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); player.addMediaSource(new FakeMediaSource(timeline, ExoPlayerTestRunner.VIDEO_FORMAT)); player.addMediaSource( new FakeMediaSource(timeline, ExoPlayerTestRunner.VIDEO_FORMAT) { @@ -8120,11 +8009,9 @@ public final class ExoPlayerTest { @Test public void rendererError_isReportedWithReadingMediaPeriodId() throws Exception { FakeMediaSource source0 = - new FakeMediaSource( - new FakeTimeline(/* windowCount= */ 1), ExoPlayerTestRunner.VIDEO_FORMAT); + new FakeMediaSource(new FakeTimeline(), ExoPlayerTestRunner.VIDEO_FORMAT); FakeMediaSource source1 = - new FakeMediaSource( - new FakeTimeline(/* windowCount= */ 1), ExoPlayerTestRunner.AUDIO_FORMAT); + new FakeMediaSource(new FakeTimeline(), ExoPlayerTestRunner.AUDIO_FORMAT); RenderersFactory renderersFactory = (eventHandler, videoListener, audioListener, textOutput, metadataOutput) -> new Renderer[] { @@ -8173,7 +8060,7 @@ public final class ExoPlayerTest { public void enableOffloadSchedulingWhilePlaying_isToggled_isReported() throws Exception { FakeSleepRenderer sleepRenderer = new FakeSleepRenderer(C.TRACK_TYPE_AUDIO).sleepOnNextRender(); SimpleExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(sleepRenderer).build(); - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); player.setMediaSource(new FakeMediaSource(timeline, ExoPlayerTestRunner.AUDIO_FORMAT)); player.prepare(); player.play(); @@ -8190,7 +8077,7 @@ public final class ExoPlayerTest { throws Exception { FakeSleepRenderer sleepRenderer = new FakeSleepRenderer(C.TRACK_TYPE_AUDIO).sleepOnNextRender(); SimpleExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(sleepRenderer).build(); - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); player.setMediaSource(new FakeMediaSource(timeline, ExoPlayerTestRunner.AUDIO_FORMAT)); player.experimentalSetOffloadSchedulingEnabled(true); player.prepare(); @@ -8205,7 +8092,7 @@ public final class ExoPlayerTest { public void enableOffloadScheduling_isEnable_playerSleeps() throws Exception { FakeSleepRenderer sleepRenderer = new FakeSleepRenderer(C.TRACK_TYPE_AUDIO); SimpleExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(sleepRenderer).build(); - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); player.setMediaSource(new FakeMediaSource(timeline, ExoPlayerTestRunner.AUDIO_FORMAT)); player.experimentalSetOffloadSchedulingEnabled(true); player.prepare(); @@ -8223,7 +8110,7 @@ public final class ExoPlayerTest { throws Exception { FakeSleepRenderer sleepRenderer = new FakeSleepRenderer(C.TRACK_TYPE_AUDIO).sleepOnNextRender(); SimpleExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(sleepRenderer).build(); - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); player.setMediaSource(new FakeMediaSource(timeline, ExoPlayerTestRunner.AUDIO_FORMAT)); player.experimentalSetOffloadSchedulingEnabled(true); player.prepare(); @@ -8241,7 +8128,7 @@ public final class ExoPlayerTest { public void wakeupListenerWhileSleepingForOffload_isWokenUp_renderingResumes() throws Exception { FakeSleepRenderer sleepRenderer = new FakeSleepRenderer(C.TRACK_TYPE_AUDIO).sleepOnNextRender(); SimpleExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(sleepRenderer).build(); - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); player.setMediaSource(new FakeMediaSource(timeline, ExoPlayerTestRunner.AUDIO_FORMAT)); player.experimentalSetOffloadSchedulingEnabled(true); player.prepare(); @@ -8561,6 +8448,7 @@ public final class ExoPlayerTest { new TestExoPlayerBuilder(context) .setClock(new AutoAdvancingFakeClock(/* initialTimeMs= */ nowUnixTimeMs)) .build(); + Timeline nonLiveTimeline = new FakeTimeline(); Timeline liveTimeline = new FakeTimeline( new TimelineWindowDefinition( @@ -8576,7 +8464,7 @@ public final class ExoPlayerTest { AdPlaybackState.NONE, new MediaItem.Builder().setUri(Uri.EMPTY).setLiveTargetOffsetMs(9_000).build())); player.pause(); - player.addMediaSource(new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1))); + player.addMediaSource(new FakeMediaSource(nonLiveTimeline)); player.addMediaSource(new FakeMediaSource(liveTimeline)); player.prepare(); TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_READY); @@ -8755,8 +8643,7 @@ public final class ExoPlayerTest { .build(); // Set multiple values together. - player.setMediaSource( - new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1), formatWithStaticMetadata)); + player.setMediaSource(new FakeMediaSource(new FakeTimeline(), formatWithStaticMetadata)); player.seekTo(2_000); player.setPlaybackParameters(new PlaybackParameters(/* speed= */ 2.0f)); ShadowLooper.runMainLooperToNextTask(); diff --git a/library/core/src/test/java/com/google/android/exoplayer2/MediaSourceListTest.java b/library/core/src/test/java/com/google/android/exoplayer2/MediaSourceListTest.java index b3ff5e5c55..ea40519a3c 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/MediaSourceListTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/MediaSourceListTest.java @@ -30,7 +30,6 @@ import com.google.android.exoplayer2.source.MediaSource; import com.google.android.exoplayer2.source.ShuffleOrder; import com.google.android.exoplayer2.testutil.FakeMediaSource; import com.google.android.exoplayer2.testutil.FakeShuffleOrder; -import com.google.android.exoplayer2.testutil.FakeTimeline; import com.google.android.exoplayer2.util.Util; import java.util.ArrayList; import java.util.Collections; @@ -528,11 +527,11 @@ public class MediaSourceListTest { } private static List createFakeHolders() { - MediaSource fakeMediaSource = new FakeMediaSource(new FakeTimeline(1)); List holders = new ArrayList<>(); for (int i = 0; i < MEDIA_SOURCE_LIST_SIZE; i++) { holders.add( - new MediaSourceList.MediaSourceHolder(fakeMediaSource, /* useLazyPreparation= */ true)); + new MediaSourceList.MediaSourceHolder( + new FakeMediaSource(), /* useLazyPreparation= */ true)); } return holders; } diff --git a/library/core/src/test/java/com/google/android/exoplayer2/analytics/AnalyticsCollectorTest.java b/library/core/src/test/java/com/google/android/exoplayer2/analytics/AnalyticsCollectorTest.java index c60a30c3b6..8fb6695a53 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/analytics/AnalyticsCollectorTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/analytics/AnalyticsCollectorTest.java @@ -160,7 +160,7 @@ public final class AnalyticsCollectorTest { ExoPlayerTestRunner.VIDEO_FORMAT.buildUpon().setDrmInitData(DRM_DATA_1).build(); private static final int TIMEOUT_MS = 10_000; - private static final Timeline SINGLE_PERIOD_TIMELINE = new FakeTimeline(/* windowCount= */ 1); + private static final Timeline SINGLE_PERIOD_TIMELINE = new FakeTimeline(); private static final EventWindowAndPeriodId WINDOW_0 = new EventWindowAndPeriodId(/* windowIndex= */ 0, /* mediaPeriodId= */ null); private static final EventWindowAndPeriodId WINDOW_1 = @@ -1520,11 +1520,9 @@ public final class AnalyticsCollectorTest { public void onPlayerError_thrownDuringRendererEnableAtPeriodTransition_isReportedForNewPeriod() throws Exception { FakeMediaSource source0 = - new FakeMediaSource( - new FakeTimeline(/* windowCount= */ 1), ExoPlayerTestRunner.VIDEO_FORMAT); + new FakeMediaSource(new FakeTimeline(), ExoPlayerTestRunner.VIDEO_FORMAT); FakeMediaSource source1 = - new FakeMediaSource( - new FakeTimeline(/* windowCount= */ 1), ExoPlayerTestRunner.AUDIO_FORMAT); + new FakeMediaSource(new FakeTimeline(), ExoPlayerTestRunner.AUDIO_FORMAT); RenderersFactory renderersFactory = (eventHandler, videoListener, audioListener, textOutput, metadataOutput) -> new Renderer[] { @@ -1554,11 +1552,9 @@ public final class AnalyticsCollectorTest { public void onPlayerError_thrownDuringRenderAtPeriodTransition_isReportedForNewPeriod() throws Exception { FakeMediaSource source0 = - new FakeMediaSource( - new FakeTimeline(/* windowCount= */ 1), ExoPlayerTestRunner.VIDEO_FORMAT); + new FakeMediaSource(new FakeTimeline(), ExoPlayerTestRunner.VIDEO_FORMAT); FakeMediaSource source1 = - new FakeMediaSource( - new FakeTimeline(/* windowCount= */ 1), ExoPlayerTestRunner.AUDIO_FORMAT); + new FakeMediaSource(new FakeTimeline(), ExoPlayerTestRunner.AUDIO_FORMAT); RenderersFactory renderersFactory = (eventHandler, videoListener, audioListener, textOutput, metadataOutput) -> new Renderer[] { @@ -1589,8 +1585,7 @@ public final class AnalyticsCollectorTest { onPlayerError_thrownDuringRendererReplaceStreamAtPeriodTransition_isReportedForNewPeriod() throws Exception { FakeMediaSource source = - new FakeMediaSource( - new FakeTimeline(/* windowCount= */ 1), ExoPlayerTestRunner.AUDIO_FORMAT); + new FakeMediaSource(new FakeTimeline(), ExoPlayerTestRunner.AUDIO_FORMAT); RenderersFactory renderersFactory = (eventHandler, videoListener, audioListener, textOutput, metadataOutput) -> new Renderer[] { @@ -1634,7 +1629,7 @@ public final class AnalyticsCollectorTest { player.addAnalyticsListener(listener); // Trigger some simultaneous events. - player.setMediaSource(new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1), formats)); + player.setMediaSource(new FakeMediaSource(new FakeTimeline(), formats)); player.seekTo(2_000); player.setPlaybackParameters(new PlaybackParameters(/* speed= */ 2.0f)); ShadowLooper.runMainLooperToNextTask(); @@ -1642,7 +1637,7 @@ public final class AnalyticsCollectorTest { // Move to another item and fail with a third one to trigger events with different EventTimes. player.prepare(); TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_READY); - player.addMediaSource(new FakeMediaSource(new FakeTimeline(/* windowCount= */ 1), formats)); + player.addMediaSource(new FakeMediaSource(new FakeTimeline(), formats)); player.play(); TestPlayerRunHelper.runUntilPositionDiscontinuity( player, Player.DISCONTINUITY_REASON_PERIOD_TRANSITION); diff --git a/library/core/src/test/java/com/google/android/exoplayer2/analytics/DefaultPlaybackSessionManagerTest.java b/library/core/src/test/java/com/google/android/exoplayer2/analytics/DefaultPlaybackSessionManagerTest.java index d804479dfa..f64d109553 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/analytics/DefaultPlaybackSessionManagerTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/analytics/DefaultPlaybackSessionManagerTest.java @@ -61,7 +61,7 @@ public final class DefaultPlaybackSessionManagerTest { @Test public void updateSessions_withoutMediaPeriodId_createsNewSession() { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); EventTime eventTime = createEventTime(timeline, /* windowIndex= */ 0, /* mediaPeriodId */ null); sessionManager.updateSessions(eventTime); @@ -73,7 +73,7 @@ public final class DefaultPlaybackSessionManagerTest { @Test public void updateSessions_withMediaPeriodId_createsNewSession() { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); MediaPeriodId mediaPeriodId = new MediaPeriodId( timeline.getUidOfPeriod(/* periodIndex= */ 0), /* windowSequenceNumber= */ 0); @@ -92,7 +92,7 @@ public final class DefaultPlaybackSessionManagerTest { @Test public void updateSessions_ofSameWindow_withMediaPeriodId_afterWithoutMediaPeriodId_doesNotCreateNewSession() { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); MediaPeriodId mediaPeriodId = new MediaPeriodId( timeline.getUidOfPeriod(/* periodIndex= */ 0), /* windowSequenceNumber= */ 0); @@ -113,7 +113,7 @@ public final class DefaultPlaybackSessionManagerTest { @Test public void updateSessions_ofSameWindow_withAd_afterWithoutMediaPeriodId_createsNewSession() { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); MediaPeriodId mediaPeriodId = new MediaPeriodId( timeline.getUidOfPeriod(/* periodIndex= */ 0), @@ -141,7 +141,7 @@ public final class DefaultPlaybackSessionManagerTest { @Test public void updateSessions_ofSameWindow_withoutMediaPeriodId_afterMediaPeriodId_doesNotCreateNewSession() { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); MediaPeriodId mediaPeriodId = new MediaPeriodId( timeline.getUidOfPeriod(/* periodIndex= */ 0), /* windowSequenceNumber= */ 0); @@ -310,7 +310,7 @@ public final class DefaultPlaybackSessionManagerTest { @Test public void updateSessions_ofSameWindow_withNewWindowSequenceNumber_createsNewSession() { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); MediaPeriodId mediaPeriodId1 = new MediaPeriodId( timeline.getUidOfPeriod(/* periodIndex= */ 0), /* windowSequenceNumber= */ 0); @@ -339,7 +339,7 @@ public final class DefaultPlaybackSessionManagerTest { @Test public void updateSessions_withoutMediaPeriodId_andPreviouslyCreatedSessions_doesNotCreateNewSession() { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); MediaPeriodId mediaPeriodId1 = new MediaPeriodId( timeline.getUidOfPeriod(/* periodIndex= */ 0), /* windowSequenceNumber= */ 0); @@ -372,7 +372,7 @@ public final class DefaultPlaybackSessionManagerTest { @Test public void updateSessions_afterSessionForMediaPeriodId_withSameMediaPeriodId_returnsSameValue() { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); MediaPeriodId mediaPeriodId = new MediaPeriodId( timeline.getUidOfPeriod(/* periodIndex= */ 0), /* windowSequenceNumber= */ 0); @@ -390,7 +390,7 @@ public final class DefaultPlaybackSessionManagerTest { @Test public void updateSessions_withoutMediaPeriodId_afterSessionForMediaPeriodId_returnsSameValue() { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); MediaPeriodId mediaPeriodId = new MediaPeriodId( timeline.getUidOfPeriod(/* periodIndex= */ 0), /* windowSequenceNumber= */ 0); @@ -474,7 +474,7 @@ public final class DefaultPlaybackSessionManagerTest { @Test public void getSessionForMediaPeriodId_returnsValue_butDoesNotCreateSession() { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); MediaPeriodId mediaPeriodId = new MediaPeriodId( timeline.getUidOfPeriod(/* periodIndex= */ 0), /* windowSequenceNumber= */ 0); @@ -488,7 +488,7 @@ public final class DefaultPlaybackSessionManagerTest { public void belongsToSession_withSameWindowIndex_returnsTrue() { EventTime eventTime = createEventTime(Timeline.EMPTY, /* windowIndex= */ 0, /* mediaPeriodId= */ null); - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); EventTime eventTimeWithTimeline = createEventTime(timeline, /* windowIndex= */ 0, /* mediaPeriodId= */ null); MediaPeriodId mediaPeriodId = @@ -532,7 +532,7 @@ public final class DefaultPlaybackSessionManagerTest { @Test public void belongsToSession_withOtherWindowSequenceNumber_returnsFalse() { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); MediaPeriodId mediaPeriodId1 = new MediaPeriodId( timeline.getUidOfPeriod(/* periodIndex= */ 0), /* windowSequenceNumber= */ 0); @@ -592,7 +592,7 @@ public final class DefaultPlaybackSessionManagerTest { createEventTime(Timeline.EMPTY, /* windowIndex= */ 1, /* mediaPeriodId= */ null); sessionManager.updateSessions(eventTime1); sessionManager.updateSessions(eventTime2); - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); EventTime newTimelineEventTime = createEventTime(timeline, /* windowIndex= */ 0, /* mediaPeriodId= */ null); @@ -827,7 +827,7 @@ public final class DefaultPlaybackSessionManagerTest { @Test public void positionDiscontinuity_toSameWindow_withoutMediaPeriodId_doesNotFinishSession() { - Timeline timeline = new FakeTimeline(/* windowCount= */ 1); + Timeline timeline = new FakeTimeline(); EventTime eventTime1 = createEventTime( timeline, diff --git a/library/core/src/test/java/com/google/android/exoplayer2/analytics/PlaybackStatsListenerTest.java b/library/core/src/test/java/com/google/android/exoplayer2/analytics/PlaybackStatsListenerTest.java index 1f19c2af58..9761846cc1 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/analytics/PlaybackStatsListenerTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/analytics/PlaybackStatsListenerTest.java @@ -50,7 +50,7 @@ public final class PlaybackStatsListenerTest { /* currentMediaPeriodId= */ null, /* currentPlaybackPositionMs= */ 0, /* totalBufferedDurationMs= */ 0); - private static final Timeline TEST_TIMELINE = new FakeTimeline(/* windowCount= */ 1); + private static final Timeline TEST_TIMELINE = new FakeTimeline(); private static final MediaSource.MediaPeriodId TEST_MEDIA_PERIOD_ID = new MediaSource.MediaPeriodId( TEST_TIMELINE.getPeriod(/* periodIndex= */ 0, new Timeline.Period(), /* setIds= */ true) diff --git a/library/core/src/test/java/com/google/android/exoplayer2/source/ConcatenatingMediaSourceTest.java b/library/core/src/test/java/com/google/android/exoplayer2/source/ConcatenatingMediaSourceTest.java index 7ba0cc02e5..8c71ee8dac 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/source/ConcatenatingMediaSourceTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/source/ConcatenatingMediaSourceTest.java @@ -854,7 +854,7 @@ public final class ConcatenatingMediaSourceTest { @Test public void duplicateNestedMediaSources() throws IOException, InterruptedException { - Timeline childTimeline = new FakeTimeline(/* windowCount= */ 1); + Timeline childTimeline = new FakeTimeline(); FakeMediaSource childSource = new FakeMediaSource(childTimeline); ConcatenatingMediaSource nestedConcatenation = new ConcatenatingMediaSource(); diff --git a/library/core/src/test/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelectorTest.java b/library/core/src/test/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelectorTest.java index ef58cb2801..c05af4d689 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelectorTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelectorTest.java @@ -110,7 +110,7 @@ public final class DefaultTrackSelectorTest { private static final TrackSelection[] TRACK_SELECTIONS_WITH_NO_SAMPLE_RENDERER = new TrackSelection[] {new FixedTrackSelection(VIDEO_TRACK_GROUP, 0), null}; - private static final Timeline TIMELINE = new FakeTimeline(/* windowCount= */ 1); + private static final Timeline TIMELINE = new FakeTimeline(); private static MediaPeriodId periodId; diff --git a/library/core/src/test/java/com/google/android/exoplayer2/trackselection/MappingTrackSelectorTest.java b/library/core/src/test/java/com/google/android/exoplayer2/trackselection/MappingTrackSelectorTest.java index 2abff49fd0..ef83d06734 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/trackselection/MappingTrackSelectorTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/trackselection/MappingTrackSelectorTest.java @@ -52,7 +52,7 @@ public final class MappingTrackSelectorTest { private static final TrackGroup AUDIO_TRACK_GROUP = buildTrackGroup(MimeTypes.AUDIO_AAC); private static final TrackGroup METADATA_TRACK_GROUP = buildTrackGroup(MimeTypes.APPLICATION_ID3); - private static final Timeline TIMELINE = new FakeTimeline(/* windowCount= */ 1); + private static final Timeline TIMELINE = new FakeTimeline(); private static MediaPeriodId periodId; diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeMediaSource.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeMediaSource.java index 0978547610..7485f27cb8 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeMediaSource.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeMediaSource.java @@ -92,6 +92,11 @@ public class FakeMediaSource extends BaseMediaSource { @Nullable private Handler sourceInfoRefreshHandler; @Nullable private TransferListener transferListener; + /** Creates a {@link FakeMediaSource} with a default {@link FakeTimeline}. */ + public FakeMediaSource() { + this(new FakeTimeline()); + } + /** * Creates a {@link FakeMediaSource}. This media source creates {@link FakeMediaPeriod}s with a * {@link TrackGroupArray} using the given {@link Format}s. The provided {@link Timeline} may be diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeTimeline.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeTimeline.java index 122593b48b..0f68783560 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeTimeline.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeTimeline.java @@ -266,6 +266,14 @@ public final class FakeTimeline extends Timeline { return adPlaybackState; } + /** + * Create a fake timeline with one seekable, non-dynamic window with one period and a duration of + * {@link TimelineWindowDefinition#DEFAULT_WINDOW_DURATION_US}. + */ + public FakeTimeline() { + this(/* windowCount= */ 1); + } + /** * Creates a fake timeline with the given number of seekable, non-dynamic windows with one period * with a duration of {@link TimelineWindowDefinition#DEFAULT_WINDOW_DURATION_US} each.