diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/BaseRenderer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/BaseRenderer.java index 361655f0f4..2e89df6431 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/BaseRenderer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/BaseRenderer.java @@ -23,16 +23,12 @@ import androidx.annotation.Nullable; import androidx.media3.common.C; import androidx.media3.common.Format; import androidx.media3.common.PlaybackException; -import androidx.media3.common.Timeline; import androidx.media3.common.util.Assertions; import androidx.media3.common.util.Clock; import androidx.media3.common.util.UnstableApi; -import androidx.media3.common.util.Util; import androidx.media3.decoder.DecoderInputBuffer; import androidx.media3.decoder.DecoderInputBuffer.InsufficientCapacityException; import androidx.media3.exoplayer.analytics.PlayerId; -import androidx.media3.exoplayer.source.MediaPeriod; -import androidx.media3.exoplayer.source.MediaSource; import androidx.media3.exoplayer.source.SampleStream; import androidx.media3.exoplayer.source.SampleStream.ReadDataResult; import androidx.media3.exoplayer.source.SampleStream.ReadFlags; @@ -59,7 +55,6 @@ public abstract class BaseRenderer implements Renderer, RendererCapabilities { private long readingPositionUs; private boolean streamIsFinal; private boolean throwRendererExceptionIsExecuting; - private Timeline timeline; @GuardedBy("lock") @Nullable @@ -74,7 +69,6 @@ public abstract class BaseRenderer implements Renderer, RendererCapabilities { this.trackType = trackType; formatHolder = new FormatHolder(); readingPositionUs = C.TIME_END_OF_SOURCE; - timeline = Timeline.EMPTY; } @Override @@ -114,14 +108,13 @@ public abstract class BaseRenderer implements Renderer, RendererCapabilities { boolean joining, boolean mayRenderStartOfStream, long startPositionUs, - long offsetUs, - MediaSource.MediaPeriodId mediaPeriodId) + long offsetUs) throws ExoPlaybackException { Assertions.checkState(state == STATE_DISABLED); this.configuration = configuration; state = STATE_ENABLED; onEnabled(joining, mayRenderStartOfStream); - replaceStream(formats, stream, startPositionUs, offsetUs, mediaPeriodId); + replaceStream(formats, stream, startPositionUs, offsetUs); resetPosition(startPositionUs, joining); } @@ -133,13 +126,8 @@ public abstract class BaseRenderer implements Renderer, RendererCapabilities { } @Override - @SuppressWarnings("deprecation") // Calling deprecated method. public final void replaceStream( - Format[] formats, - SampleStream stream, - long startPositionUs, - long offsetUs, - MediaSource.MediaPeriodId mediaPeriodId) + Format[] formats, SampleStream stream, long startPositionUs, long offsetUs) throws ExoPlaybackException { Assertions.checkState(!streamIsFinal); this.stream = stream; @@ -148,9 +136,6 @@ public abstract class BaseRenderer implements Renderer, RendererCapabilities { } streamFormats = formats; streamOffsetUs = offsetUs; - onStreamChanged(formats, startPositionUs, offsetUs, mediaPeriodId); - // Call the deprecated method after the new method, so that classes that migrate to the new - // method do not impact their subclasses that still override the deprecated method. onStreamChanged(formats, startPositionUs, offsetUs); } @@ -185,14 +170,6 @@ public abstract class BaseRenderer implements Renderer, RendererCapabilities { Assertions.checkNotNull(stream).maybeThrowError(); } - @Override - public final void setTimeline(Timeline timeline) { - if (!Util.areEqual(this.timeline, timeline)) { - this.timeline = timeline; - onTimelineChanged(this.timeline); - } - } - @Override public final void resetPosition(long positionUs) throws ExoPlaybackException { resetPosition(positionUs, /* joining= */ false); @@ -282,16 +259,6 @@ public abstract class BaseRenderer implements Renderer, RendererCapabilities { // Do nothing. } - /** - * @deprecated Use {@link #onStreamChanged(Format[], long, long, MediaSource.MediaPeriodId)} - * instead. - */ - @Deprecated - protected void onStreamChanged(Format[] formats, long startPositionUs, long offsetUs) - throws ExoPlaybackException { - // Do nothing. - } - /** * Called when the renderer's stream has changed. This occurs when the renderer is enabled after * {@link #onEnabled(boolean, boolean)} has been called, and also when the stream has been @@ -303,23 +270,17 @@ public abstract class BaseRenderer implements Renderer, RendererCapabilities { * @param startPositionUs The start position of the new stream in renderer time (microseconds). * @param offsetUs The offset that will be added to the timestamps of buffers read via {@link * #readSource} so that decoder input buffers have monotonically increasing timestamps. - * @param mediaPeriodId The {@link MediaSource.MediaPeriodId} of the {@link MediaPeriod} that - * produces the stream. * @throws ExoPlaybackException If an error occurs. */ - protected void onStreamChanged( - Format[] formats, - long startPositionUs, - long offsetUs, - MediaSource.MediaPeriodId mediaPeriodId) + protected void onStreamChanged(Format[] formats, long startPositionUs, long offsetUs) throws ExoPlaybackException { // Do nothing. } /** * Called when the position is reset. This occurs when the renderer is enabled after {@link - * #onStreamChanged(Format[], long, long, MediaSource.MediaPeriodId)} has been called, and also - * when a position discontinuity is encountered. + * #onStreamChanged(Format[], long, long)} has been called, and also when a position discontinuity + * is encountered. * *

After a position reset, the renderer's {@link SampleStream} is guaranteed to provide samples * starting from a key frame. @@ -381,17 +342,6 @@ public abstract class BaseRenderer implements Renderer, RendererCapabilities { // Do nothing. } - /** - * Called when a new timeline is {@linkplain #setTimeline(Timeline) set}. - * - *

The default implementation is a no-op. - * - * @param timeline The new timeline, which can also be obtained from {@link #getTimeline()}. - */ - protected void onTimelineChanged(Timeline timeline) { - // Do nothing - } - // Methods to be called by subclasses. /** @@ -455,11 +405,6 @@ public abstract class BaseRenderer implements Renderer, RendererCapabilities { return checkNotNull(clock); } - /** Returns the current {@link Timeline} containing the rendered stream. */ - protected final Timeline getTimeline() { - return timeline; - } - /** * Creates an {@link ExoPlaybackException} of type {@link ExoPlaybackException#TYPE_RENDERER} for * this renderer. diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImplInternal.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImplInternal.java index c99c25940f..489e77da17 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImplInternal.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImplInternal.java @@ -1949,9 +1949,6 @@ import java.util.concurrent.atomic.AtomicBoolean; /* releaseMediaSourceList= */ false, /* resetError= */ true); } - for (Renderer renderer : renderers) { - renderer.setTimeline(timeline); - } if (!periodPositionChanged) { // We can keep the current playing period. Update the rest of the queued periods. if (!queue.updateQueuedPeriods( @@ -2249,8 +2246,7 @@ import java.util.concurrent.atomic.AtomicBoolean; formats, readingPeriodHolder.sampleStreams[i], readingPeriodHolder.getStartPositionRendererTime(), - readingPeriodHolder.getRendererOffset(), - readingPeriodHolder.info.id); + readingPeriodHolder.getRendererOffset()); } else if (renderer.isEnded()) { // The renderer has finished playback, so we can disable it now. disableRenderer(renderer); @@ -2628,8 +2624,7 @@ import java.util.concurrent.atomic.AtomicBoolean; joining, mayRenderStartOfStream, startPositionUs, - periodHolder.getRendererOffset(), - periodHolder.info.id); + periodHolder.getRendererOffset()); renderer.handleMessage( Renderer.MSG_SET_WAKEUP_LISTENER, new Renderer.WakeupListener() { diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/MediaPeriodHolder.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/MediaPeriodHolder.java index b4a95c4910..0d2427a48d 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/MediaPeriodHolder.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/MediaPeriodHolder.java @@ -65,8 +65,8 @@ import androidx.media3.exoplayer.upstream.Allocator; * *

Renderers that are needed must have been enabled with the {@link #sampleStreams} for this * {@link #mediaPeriod}. This means either {@link Renderer#enable(RendererConfiguration, Format[], - * SampleStream, long, boolean, boolean, long, long, MediaPeriodId)} or {@link - * Renderer#replaceStream(Format[], SampleStream, long, long, MediaPeriodId)} has been called. + * SampleStream, long, boolean, boolean, long, long)} or {@link Renderer#replaceStream(Format[], + * SampleStream, long, long)} has been called. * *

Renderers that are not needed must have been {@link Renderer#disable() disabled}. */ diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/NoSampleRenderer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/NoSampleRenderer.java index a67bfcf816..3b33e06a2e 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/NoSampleRenderer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/NoSampleRenderer.java @@ -18,12 +18,10 @@ package androidx.media3.exoplayer; import androidx.annotation.Nullable; import androidx.media3.common.C; import androidx.media3.common.Format; -import androidx.media3.common.Timeline; import androidx.media3.common.util.Assertions; import androidx.media3.common.util.Clock; import androidx.media3.common.util.UnstableApi; import androidx.media3.exoplayer.analytics.PlayerId; -import androidx.media3.exoplayer.source.MediaSource; import androidx.media3.exoplayer.source.SampleStream; import java.io.IOException; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; @@ -76,14 +74,13 @@ public abstract class NoSampleRenderer implements Renderer, RendererCapabilities boolean joining, boolean mayRenderStartOfStream, long startPositionUs, - long offsetUs, - MediaSource.MediaPeriodId mediaPeriodId) + long offsetUs) throws ExoPlaybackException { Assertions.checkState(state == STATE_DISABLED); this.configuration = configuration; state = STATE_ENABLED; onEnabled(joining); - replaceStream(formats, stream, startPositionUs, offsetUs, mediaPeriodId); + replaceStream(formats, stream, startPositionUs, offsetUs); onPositionReset(positionUs, joining); } @@ -96,11 +93,7 @@ public abstract class NoSampleRenderer implements Renderer, RendererCapabilities @Override public final void replaceStream( - Format[] formats, - SampleStream stream, - long startPositionUs, - long offsetUs, - MediaSource.MediaPeriodId mediaPeriodId) + Format[] formats, SampleStream stream, long startPositionUs, long offsetUs) throws ExoPlaybackException { Assertions.checkState(!streamIsFinal); this.stream = stream; @@ -194,11 +187,6 @@ public abstract class NoSampleRenderer implements Renderer, RendererCapabilities // Do nothing. } - @Override - public void setTimeline(Timeline timeline) { - // Do nothing. - } - // Methods to be overridden by subclasses. /** diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/Renderer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/Renderer.java index baa7019654..17311ca7d1 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/Renderer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/Renderer.java @@ -27,14 +27,11 @@ import androidx.media3.common.C; import androidx.media3.common.Effect; import androidx.media3.common.Format; import androidx.media3.common.Player; -import androidx.media3.common.Timeline; import androidx.media3.common.util.Clock; import androidx.media3.common.util.Size; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.exoplayer.analytics.PlayerId; -import androidx.media3.exoplayer.source.MediaPeriod; -import androidx.media3.exoplayer.source.MediaSource.MediaPeriodId; import androidx.media3.exoplayer.source.SampleStream; import androidx.media3.exoplayer.video.VideoDecoderOutputBufferRenderer; import androidx.media3.exoplayer.video.VideoFrameMetadataListener; @@ -349,8 +346,6 @@ public interface Renderer extends PlayerMessage.Target { * @param startPositionUs The start position of the stream in renderer time (microseconds). * @param offsetUs The offset to be added to timestamps of buffers read from {@code stream} before * they are rendered. - * @param mediaPeriodId The {@link MediaPeriodId} of the {@link MediaPeriod} producing the {@code - * stream}. * @throws ExoPlaybackException If an error occurs. */ void enable( @@ -361,8 +356,7 @@ public interface Renderer extends PlayerMessage.Target { boolean joining, boolean mayRenderStartOfStream, long startPositionUs, - long offsetUs, - MediaPeriodId mediaPeriodId) + long offsetUs) throws ExoPlaybackException; /** @@ -387,16 +381,9 @@ public interface Renderer extends PlayerMessage.Target { * @param startPositionUs The start position of the new stream in renderer time (microseconds). * @param offsetUs The offset to be added to timestamps of buffers read from {@code stream} before * they are rendered. - * @param mediaPeriodId The {@link MediaPeriodId} of the {@link MediaPeriod} producing the {@code - * stream}. * @throws ExoPlaybackException If an error occurs. */ - void replaceStream( - Format[] formats, - SampleStream stream, - long startPositionUs, - long offsetUs, - MediaPeriodId mediaPeriodId) + void replaceStream(Format[] formats, SampleStream stream, long startPositionUs, long offsetUs) throws ExoPlaybackException; /** Returns the {@link SampleStream} being consumed, or null if the renderer is disabled. */ @@ -484,9 +471,6 @@ public interface Renderer extends PlayerMessage.Target { */ default void enableMayRenderStartOfStream() {} - /** Sets the timeline that is currently being played. */ - void setTimeline(Timeline timeline); - /** * Incrementally renders the {@link SampleStream}. * @@ -498,8 +482,8 @@ public interface Renderer extends PlayerMessage.Target { *

The renderer may also render the very start of the media at the current position (e.g. the * first frame of a video stream) while still in the {@link #STATE_ENABLED} state, unless it's the * initial start of the media after calling {@link #enable(RendererConfiguration, Format[], - * SampleStream, long, boolean, boolean, long, long, MediaPeriodId)} with {@code - * mayRenderStartOfStream} set to {@code false}. + * SampleStream, long, boolean, boolean, long, long)} with {@code mayRenderStartOfStream} set to + * {@code false}. * *

This method should return quickly, and should not block if the renderer is unable to make * useful progress. diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/DecoderAudioRenderer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/DecoderAudioRenderer.java index 959289b625..309c4aa323 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/DecoderAudioRenderer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/DecoderAudioRenderer.java @@ -62,7 +62,6 @@ import androidx.media3.exoplayer.audio.AudioRendererEventListener.EventDispatche import androidx.media3.exoplayer.audio.AudioSink.SinkFormatSupport; import androidx.media3.exoplayer.drm.DrmSession; import androidx.media3.exoplayer.drm.DrmSession.DrmSessionException; -import androidx.media3.exoplayer.source.MediaSource; import androidx.media3.exoplayer.source.SampleStream.ReadDataResult; import com.google.errorprone.annotations.ForOverride; import java.lang.annotation.Documented; @@ -650,13 +649,9 @@ public abstract class DecoderAudioRenderer< } @Override - protected void onStreamChanged( - Format[] formats, - long startPositionUs, - long offsetUs, - MediaSource.MediaPeriodId mediaPeriodId) + protected void onStreamChanged(Format[] formats, long startPositionUs, long offsetUs) throws ExoPlaybackException { - super.onStreamChanged(formats, startPositionUs, offsetUs, mediaPeriodId); + super.onStreamChanged(formats, startPositionUs, offsetUs); firstStreamSampleRead = false; if (outputStreamOffsetUs == C.TIME_UNSET) { setOutputStreamOffsetUs(offsetUs); diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecRenderer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecRenderer.java index c749b49a1f..aed5233206 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecRenderer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecRenderer.java @@ -74,7 +74,6 @@ import androidx.media3.exoplayer.drm.DrmSession.DrmSessionException; import androidx.media3.exoplayer.drm.FrameworkCryptoConfig; import androidx.media3.exoplayer.mediacodec.MediaCodecUtil.DecoderQueryException; import androidx.media3.exoplayer.source.MediaPeriod; -import androidx.media3.exoplayer.source.MediaSource; import androidx.media3.exoplayer.source.SampleStream; import androidx.media3.exoplayer.source.SampleStream.ReadDataResult; import androidx.media3.exoplayer.source.SampleStream.ReadFlags; @@ -709,11 +708,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer { } @Override - protected void onStreamChanged( - Format[] formats, - long startPositionUs, - long offsetUs, - MediaSource.MediaPeriodId mediaPeriodId) + protected void onStreamChanged(Format[] formats, long startPositionUs, long offsetUs) throws ExoPlaybackException { if (outputStreamInfo.streamOffsetUs == C.TIME_UNSET) { // This is the first stream. diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/metadata/MetadataRenderer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/metadata/MetadataRenderer.java index dfb868258e..9ca0a1fee3 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/metadata/MetadataRenderer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/metadata/MetadataRenderer.java @@ -32,7 +32,6 @@ import androidx.media3.common.util.Util; import androidx.media3.exoplayer.BaseRenderer; import androidx.media3.exoplayer.FormatHolder; import androidx.media3.exoplayer.RendererCapabilities; -import androidx.media3.exoplayer.source.MediaSource; import androidx.media3.exoplayer.source.SampleStream.ReadDataResult; import androidx.media3.extractor.metadata.MetadataDecoder; import androidx.media3.extractor.metadata.MetadataInputBuffer; @@ -141,11 +140,7 @@ public final class MetadataRenderer extends BaseRenderer implements Callback { } @Override - protected void onStreamChanged( - Format[] formats, - long startPositionUs, - long offsetUs, - MediaSource.MediaPeriodId mediaPeriodId) { + protected void onStreamChanged(Format[] formats, long startPositionUs, long offsetUs) { decoder = decoderFactory.createDecoder(formats[0]); if (pendingMetadata != null) { pendingMetadata = diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/text/TextRenderer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/text/TextRenderer.java index 70756a3d4d..de74671018 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/text/TextRenderer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/text/TextRenderer.java @@ -36,7 +36,6 @@ import androidx.media3.common.util.Util; import androidx.media3.exoplayer.BaseRenderer; import androidx.media3.exoplayer.FormatHolder; import androidx.media3.exoplayer.RendererCapabilities; -import androidx.media3.exoplayer.source.MediaSource; import androidx.media3.exoplayer.source.SampleStream.ReadDataResult; import androidx.media3.extractor.text.Subtitle; import androidx.media3.extractor.text.SubtitleDecoder; @@ -178,11 +177,7 @@ public final class TextRenderer extends BaseRenderer implements Callback { } @Override - protected void onStreamChanged( - Format[] formats, - long startPositionUs, - long offsetUs, - MediaSource.MediaPeriodId mediaPeriodId) { + protected void onStreamChanged(Format[] formats, long startPositionUs, long offsetUs) { outputStreamOffsetUs = offsetUs; streamFormat = formats[0]; if (decoder != null) { diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/DecoderVideoRenderer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/DecoderVideoRenderer.java index c300010bd9..a6997b8788 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/DecoderVideoRenderer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/DecoderVideoRenderer.java @@ -54,7 +54,6 @@ import androidx.media3.exoplayer.FormatHolder; import androidx.media3.exoplayer.PlayerMessage; import androidx.media3.exoplayer.drm.DrmSession; import androidx.media3.exoplayer.drm.DrmSession.DrmSessionException; -import androidx.media3.exoplayer.source.MediaSource; import androidx.media3.exoplayer.source.SampleStream.ReadDataResult; import androidx.media3.exoplayer.video.VideoRendererEventListener.EventDispatcher; import java.lang.annotation.Documented; @@ -335,17 +334,13 @@ public abstract class DecoderVideoRenderer extends BaseRenderer { } @Override - protected void onStreamChanged( - Format[] formats, - long startPositionUs, - long offsetUs, - MediaSource.MediaPeriodId mediaPeriodId) + protected void onStreamChanged(Format[] formats, long startPositionUs, long offsetUs) throws ExoPlaybackException { // TODO: This shouldn't just update the output stream offset as long as there are still buffers // of the previous stream in the decoder. It should also make sure to render the first frame of // the next stream if the playback position reached the new stream. outputStreamOffsetUs = offsetUs; - super.onStreamChanged(formats, startPositionUs, offsetUs, mediaPeriodId); + super.onStreamChanged(formats, startPositionUs, offsetUs); } /** diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/spherical/CameraMotionRenderer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/spherical/CameraMotionRenderer.java index c76e2d24a6..b372d03481 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/spherical/CameraMotionRenderer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/spherical/CameraMotionRenderer.java @@ -28,7 +28,6 @@ import androidx.media3.exoplayer.ExoPlaybackException; import androidx.media3.exoplayer.FormatHolder; import androidx.media3.exoplayer.Renderer; import androidx.media3.exoplayer.RendererCapabilities; -import androidx.media3.exoplayer.source.MediaSource; import androidx.media3.exoplayer.source.SampleStream.ReadDataResult; import java.nio.ByteBuffer; @@ -76,11 +75,7 @@ public final class CameraMotionRenderer extends BaseRenderer { } @Override - protected void onStreamChanged( - Format[] formats, - long startPositionUs, - long offsetUs, - MediaSource.MediaPeriodId mediaPeriodId) { + protected void onStreamChanged(Format[] formats, long startPositionUs, long offsetUs) { this.offsetUs = offsetUs; } diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/ExoPlayerTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/ExoPlayerTest.java index d3c3c2fbe1..36c903f8a9 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/ExoPlayerTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/ExoPlayerTest.java @@ -49,6 +49,7 @@ import static androidx.media3.common.Player.COMMAND_SET_TRACK_SELECTION_PARAMETE import static androidx.media3.common.Player.COMMAND_SET_VIDEO_SURFACE; import static androidx.media3.common.Player.COMMAND_SET_VOLUME; import static androidx.media3.common.Player.COMMAND_STOP; +import static androidx.media3.common.Player.STATE_ENDED; import static androidx.media3.exoplayer.source.ads.ServerSideAdInsertionUtil.addAdGroupToAdPlaybackState; import static androidx.media3.test.utils.FakeSampleStream.FakeSampleStreamItem.END_OF_STREAM_ITEM; import static androidx.media3.test.utils.FakeSampleStream.FakeSampleStreamItem.oneByteSample; @@ -409,7 +410,7 @@ public final class ExoPlayerTest { playerListenerOrder.verify(mockPlayerListener).onVideoSizeChanged(new VideoSize(1280, 720)); playerListenerOrder.verify(mockPlayerListener).onVideoSizeChanged(VideoSize.UNKNOWN); playerListenerOrder.verify(mockPlayerListener).onVideoSizeChanged(new VideoSize(1280, 720)); - playerListenerOrder.verify(mockPlayerListener).onPlaybackStateChanged(Player.STATE_ENDED); + playerListenerOrder.verify(mockPlayerListener).onPlaybackStateChanged(STATE_ENDED); verify(mockPlayerListener, times(3)).onVideoSizeChanged(any()); // Verify calls to analytics listener. verify(mockAnalyticsListener, times(2)).onVideoEnabled(any(), any()); @@ -3411,7 +3412,7 @@ public final class ExoPlayerTest { player.setMediaSource(new FakeMediaSource()); player.prepare(); player.play(); - TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED); + TestPlayerRunHelper.runUntilPlaybackState(player, STATE_ENDED); // Now the player, which had a playback error, was re-prepared causing the error to be cleared. // We expect the change to null to be notified, but not onPlayerError. verify(mockListener).onPlayerErrorChanged(ArgumentMatchers.isNull()); @@ -8903,8 +8904,7 @@ public final class ExoPlayerTest { boolean pendingFirstBufferTime = false; @Override - protected void onStreamChanged( - Format[] formats, long startPositionUs, long offsetUs, MediaPeriodId mediaPeriodId) { + protected void onStreamChanged(Format[] formats, long startPositionUs, long offsetUs) { rendererStreamOffsetsUs.add(offsetUs); pendingFirstBufferTime = true; } @@ -10592,8 +10592,7 @@ public final class ExoPlayerTest { private long positionUs; @Override - protected void onStreamChanged( - Format[] formats, long startPositionUs, long offsetUs, MediaPeriodId mediaPeriodId) { + protected void onStreamChanged(Format[] formats, long startPositionUs, long offsetUs) { this.positionUs = offsetUs; } @@ -12873,12 +12872,9 @@ public final class ExoPlayerTest { @Override protected void onStreamChanged( - Format[] formats, - long startPositionUs, - long offsetUs, - MediaPeriodId mediaPeriodId) + Format[] formats, long startPositionUs, long offsetUs) throws ExoPlaybackException { - super.onStreamChanged(formats, startPositionUs, offsetUs, mediaPeriodId); + super.onStreamChanged(formats, startPositionUs, offsetUs); streamChangeCount++; } @@ -13855,10 +13851,9 @@ public final class ExoPlayerTest { FakeRenderer newlyEnabledRenderer = new FakeRenderer(C.TRACK_TYPE_AUDIO) { @Override - protected void onStreamChanged( - Format[] formats, long startPositionUs, long offsetUs, MediaPeriodId mediaPeriodId) + protected void onStreamChanged(Format[] formats, long startPositionUs, long offsetUs) throws ExoPlaybackException { - super.onStreamChanged(formats, startPositionUs, offsetUs, mediaPeriodId); + super.onStreamChanged(formats, startPositionUs, offsetUs); startPositionInRendererUs.set(startPositionUs); rendererOffsetUs.set(offsetUs); } @@ -13887,7 +13882,7 @@ public final class ExoPlayerTest { .setTrackTypeDisabled(C.TRACK_TYPE_AUDIO, /* disabled= */ false) .build()); player.play(); - runUntilPlaybackState(player, Player.STATE_ENDED); + runUntilPlaybackState(player, STATE_ENDED); player.release(); long expectedStartPositionInRendererUs = @@ -13897,60 +13892,6 @@ public final class ExoPlayerTest { assertThat(startPositionInRendererUs.get()).isEqualTo(expectedStartPositionInRendererUs); } - @Test - public void newlyEnabledRenderer_timelineIsSetBeforeEnable() - throws TimeoutException, ExoPlaybackException { - MediaItem mediaItem = MediaItem.fromUri(SAMPLE_URI); - ArrayList timelineOnEnabled = new ArrayList<>(); - FakeRenderer videoRenderer = - new FakeRenderer(C.TRACK_TYPE_VIDEO) { - @Override - protected void onEnabled(boolean joining, boolean mayRenderStartOfStream) { - timelineOnEnabled.add(getTimeline()); - } - }; - ExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(videoRenderer).build(); - player.addMediaItem(mediaItem); - player.prepare(); - - runUntilPlaybackState(player, Player.STATE_READY); - player.release(); - - assertThat(timelineOnEnabled).hasSize(1); - Timeline timeline = timelineOnEnabled.get(0); - assertThat(timeline.getWindowCount()).isEqualTo(1); - assertThat(timeline.getWindow(0, new Window()).mediaItem).isSameInstanceAs(mediaItem); - } - - @Test - public void changeMediaItemMidPlayback_rendererReceivesNewTimelineBeforeStreamChange() - throws TimeoutException { - MediaItem mediaItem1 = MediaItem.fromUri(SAMPLE_URI); - MediaItem mediaItem2 = MediaItem.fromUri(SAMPLE_URI); - ArrayList timelinesOnStreamChange = new ArrayList<>(); - FakeRenderer videoRenderer = - new FakeRenderer(C.TRACK_TYPE_VIDEO) { - @Override - protected void onStreamChanged( - Format[] formats, long startPositionUs, long offsetUs, MediaPeriodId mediaPeriodId) { - timelinesOnStreamChange.add(getTimeline()); - } - }; - ExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(videoRenderer).build(); - player.addMediaItem(mediaItem1); - player.prepare(); - runUntilPlaybackState(player, Player.STATE_READY); - player.setMediaItem(mediaItem2); - runUntilPlaybackState(player, Player.STATE_READY); - player.release(); - - assertThat(timelinesOnStreamChange).hasSize(2); - assertThat(timelinesOnStreamChange.get(0).getWindow(0, new Window()).mediaItem) - .isSameInstanceAs(mediaItem1); - assertThat(timelinesOnStreamChange.get(1).getWindow(0, new Window()).mediaItem) - .isSameInstanceAs(mediaItem2); - } - // Internal methods. private void addWatchAsSystemFeature() { diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/audio/DecoderAudioRendererTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/audio/DecoderAudioRendererTest.java index fc3dda6290..4710314321 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/audio/DecoderAudioRendererTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/audio/DecoderAudioRendererTest.java @@ -45,7 +45,6 @@ import androidx.media3.exoplayer.RendererConfiguration; import androidx.media3.exoplayer.analytics.PlayerId; import androidx.media3.exoplayer.drm.DrmSessionEventListener; import androidx.media3.exoplayer.drm.DrmSessionManager; -import androidx.media3.exoplayer.source.MediaSource; import androidx.media3.exoplayer.upstream.DefaultAllocator; import androidx.media3.test.utils.FakeSampleStream; import androidx.test.ext.junit.runners.AndroidJUnit4; @@ -135,8 +134,7 @@ public class DecoderAudioRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 0); audioRenderer.setCurrentStreamFinal(); when(mockAudioSink.isEnded()).thenReturn(true); while (!audioRenderer.isEnded()) { @@ -174,8 +172,7 @@ public class DecoderAudioRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 0); audioRenderer.setCurrentStreamFinal(); while (!audioRenderer.isEnded()) { @@ -218,7 +215,6 @@ public class DecoderAudioRendererTest { oneByteSample(/* timeUs= */ 1_001_000), END_OF_STREAM_ITEM)); fakeSampleStream2.writeData(/* startPositionUs= */ 0); - MediaSource.MediaPeriodId mediaPeriodId = new MediaSource.MediaPeriodId(new Object()); audioRenderer.enable( RendererConfiguration.DEFAULT, new Format[] {FORMAT}, @@ -227,8 +223,7 @@ public class DecoderAudioRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - mediaPeriodId); + /* offsetUs= */ 0); while (!audioRenderer.hasReadStreamToEnd()) { audioRenderer.render(/* positionUs= */ 0, /* elapsedRealtimeUs= */ 0); @@ -237,8 +232,7 @@ public class DecoderAudioRendererTest { new Format[] {FORMAT}, fakeSampleStream2, /* startPositionUs= */ 1_000_000, - /* offsetUs= */ 1_000_000, - mediaPeriodId); + /* offsetUs= */ 1_000_000); audioRenderer.setCurrentStreamFinal(); while (!audioRenderer.isEnded()) { audioRenderer.render(/* positionUs= */ 0, /* elapsedRealtimeUs= */ 0); diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/audio/MediaCodecAudioRendererTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/audio/MediaCodecAudioRendererTest.java index 944cf7a0a1..b70bacf266 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/audio/MediaCodecAudioRendererTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/audio/MediaCodecAudioRendererTest.java @@ -49,7 +49,6 @@ import androidx.media3.exoplayer.drm.DrmSessionEventListener; import androidx.media3.exoplayer.drm.DrmSessionManager; import androidx.media3.exoplayer.mediacodec.MediaCodecInfo; import androidx.media3.exoplayer.mediacodec.MediaCodecSelector; -import androidx.media3.exoplayer.source.MediaSource; import androidx.media3.exoplayer.upstream.DefaultAllocator; import androidx.media3.test.utils.FakeSampleStream; import androidx.media3.test.utils.TestUtil; @@ -192,8 +191,7 @@ public class MediaCodecAudioRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ false, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 0); mediaCodecAudioRenderer.start(); mediaCodecAudioRenderer.render(/* positionUs= */ 0, SystemClock.elapsedRealtime() * 1000); @@ -250,8 +248,7 @@ public class MediaCodecAudioRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ false, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 0); mediaCodecAudioRenderer.start(); mediaCodecAudioRenderer.render(/* positionUs= */ 0, SystemClock.elapsedRealtime() * 1000); @@ -315,6 +312,7 @@ public class MediaCodecAudioRendererTest { ImmutableList.of( oneByteSample(/* timeUs= */ 0, C.BUFFER_FLAG_KEY_FRAME), END_OF_STREAM_ITEM)); fakeSampleStream.writeData(/* startPositionUs= */ 0); + exceptionThrowingRenderer.init(/* index= */ 0, PlayerId.UNSET, Clock.DEFAULT); exceptionThrowingRenderer.enable( RendererConfiguration.DEFAULT, @@ -324,8 +322,7 @@ public class MediaCodecAudioRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ false, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 0); exceptionThrowingRenderer.start(); exceptionThrowingRenderer.render(/* positionUs= */ 0, SystemClock.elapsedRealtime() * 1000); @@ -406,7 +403,6 @@ public class MediaCodecAudioRendererTest { oneByteSample(/* timeUs= */ 1_001_000), END_OF_STREAM_ITEM)); fakeSampleStream2.writeData(/* startPositionUs= */ 0); - MediaSource.MediaPeriodId mediaPeriodId = new MediaSource.MediaPeriodId(new Object()); mediaCodecAudioRenderer.enable( RendererConfiguration.DEFAULT, new Format[] {AUDIO_AAC}, @@ -415,8 +411,7 @@ public class MediaCodecAudioRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - mediaPeriodId); + /* offsetUs= */ 0); mediaCodecAudioRenderer.start(); while (!mediaCodecAudioRenderer.hasReadStreamToEnd()) { @@ -426,8 +421,7 @@ public class MediaCodecAudioRendererTest { new Format[] {AUDIO_AAC}, fakeSampleStream2, /* startPositionUs= */ 1_000_000, - /* offsetUs= */ 1_000_000, - mediaPeriodId); + /* offsetUs= */ 1_000_000); mediaCodecAudioRenderer.setCurrentStreamFinal(); while (!mediaCodecAudioRenderer.isEnded()) { mediaCodecAudioRenderer.render(/* positionUs= */ 0, /* elapsedRealtimeUs= */ 0); @@ -493,6 +487,7 @@ public class MediaCodecAudioRendererTest { oneByteSample(/* timeUs= */ 1_000), END_OF_STREAM_ITEM)); fakeSampleStream.writeData(/* startPositionUs= */ 0); + mediaCodecAudioRenderer.enable( RENDERER_CONFIGURATION_OFFLOAD_ENABLED_GAPLESS_REQUIRED, new Format[] {format}, @@ -501,8 +496,7 @@ public class MediaCodecAudioRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 0); mediaCodecAudioRenderer.start(); mediaCodecAudioRenderer.setCurrentStreamFinal(); @@ -531,6 +525,7 @@ public class MediaCodecAudioRendererTest { oneByteSample(/* timeUs= */ 1_000), END_OF_STREAM_ITEM)); fakeSampleStream.writeData(/* startPositionUs= */ 0); + mediaCodecAudioRenderer.enable( RENDERER_CONFIGURATION_OFFLOAD_ENABLED_GAPLESS_REQUIRED, new Format[] {format}, @@ -539,8 +534,7 @@ public class MediaCodecAudioRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 0); mediaCodecAudioRenderer.start(); mediaCodecAudioRenderer.setCurrentStreamFinal(); @@ -581,7 +575,6 @@ public class MediaCodecAudioRendererTest { oneByteSample(/* timeUs= */ 1_001_000), END_OF_STREAM_ITEM)); fakeSampleStream2.writeData(/* startPositionUs= */ 0); - MediaSource.MediaPeriodId mediaPeriodId = new MediaSource.MediaPeriodId(new Object()); mediaCodecAudioRenderer.enable( RENDERER_CONFIGURATION_OFFLOAD_ENABLED_GAPLESS_REQUIRED, new Format[] {format1}, @@ -590,8 +583,7 @@ public class MediaCodecAudioRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - mediaPeriodId); + /* offsetUs= */ 0); mediaCodecAudioRenderer.start(); while (!mediaCodecAudioRenderer.hasReadStreamToEnd()) { mediaCodecAudioRenderer.render(/* positionUs= */ 0, /* elapsedRealtimeUs= */ 0); @@ -601,8 +593,7 @@ public class MediaCodecAudioRendererTest { new Format[] {format2}, fakeSampleStream2, /* startPositionUs= */ 1_000_000, - /* offsetUs= */ 1_000_000, - mediaPeriodId); + /* offsetUs= */ 1_000_000); mediaCodecAudioRenderer.setCurrentStreamFinal(); while (!mediaCodecAudioRenderer.isEnded()) { mediaCodecAudioRenderer.render(/* positionUs= */ 0, /* elapsedRealtimeUs= */ 0); @@ -643,9 +634,6 @@ public class MediaCodecAudioRendererTest { oneByteSample(/* timeUs= */ 1_001_000), END_OF_STREAM_ITEM)); fakeSampleStream2.writeData(/* startPositionUs= */ 0); - MediaSource.MediaPeriodId mediaPeriodId1 = new MediaSource.MediaPeriodId(new Object()); - MediaSource.MediaPeriodId mediaPeriodId2 = new MediaSource.MediaPeriodId(new Object()); - mediaCodecAudioRenderer.enable( RENDERER_CONFIGURATION_OFFLOAD_ENABLED_GAPLESS_REQUIRED, new Format[] {format1}, @@ -654,8 +642,7 @@ public class MediaCodecAudioRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - mediaPeriodId1); + /* offsetUs= */ 0); mediaCodecAudioRenderer.start(); while (!mediaCodecAudioRenderer.hasReadStreamToEnd()) { mediaCodecAudioRenderer.render(/* positionUs= */ 0, /* elapsedRealtimeUs= */ 0); @@ -666,8 +653,7 @@ public class MediaCodecAudioRendererTest { new Format[] {format2}, fakeSampleStream2, /* startPositionUs= */ 1_000_000, - /* offsetUs= */ 1_000_000, - mediaPeriodId2); + /* offsetUs= */ 1_000_000); mediaCodecAudioRenderer.setCurrentStreamFinal(); while (!mediaCodecAudioRenderer.isEnded()) { mediaCodecAudioRenderer.render(/* positionUs= */ 0, /* elapsedRealtimeUs= */ 0); @@ -707,8 +693,7 @@ public class MediaCodecAudioRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ false, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 0); mediaCodecAudioRenderer.setCurrentStreamFinal(); while (!mediaCodecAudioRenderer.isEnded()) { mediaCodecAudioRenderer.render(/* positionUs= */ 0, /* elapsedRealtimeUs= */ 0); diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/image/ImageRendererTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/image/ImageRendererTest.java index 70fc01b629..6e46b84812 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/image/ImageRendererTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/image/ImageRendererTest.java @@ -29,7 +29,6 @@ import androidx.media3.exoplayer.RendererConfiguration; import androidx.media3.exoplayer.analytics.PlayerId; import androidx.media3.exoplayer.drm.DrmSessionEventListener; import androidx.media3.exoplayer.drm.DrmSessionManager; -import androidx.media3.exoplayer.source.MediaSource; import androidx.media3.exoplayer.upstream.DefaultAllocator; import androidx.media3.test.utils.FakeSampleStream; import androidx.test.ext.junit.runners.AndroidJUnit4; @@ -94,8 +93,7 @@ public class ImageRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 0); renderer.setCurrentStreamFinal(); while (!renderer.isReady()) { diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/mediacodec/MediaCodecRendererTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/mediacodec/MediaCodecRendererTest.java index 157bbd7bbc..0050c7ade5 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/mediacodec/MediaCodecRendererTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/mediacodec/MediaCodecRendererTest.java @@ -41,7 +41,6 @@ import androidx.media3.exoplayer.RendererConfiguration; import androidx.media3.exoplayer.analytics.PlayerId; import androidx.media3.exoplayer.drm.DrmSessionEventListener; import androidx.media3.exoplayer.drm.DrmSessionManager; -import androidx.media3.exoplayer.source.MediaSource; import androidx.media3.exoplayer.upstream.DefaultAllocator; import androidx.media3.test.utils.FakeSampleStream; import androidx.test.ext.junit.runners.AndroidJUnit4; @@ -67,8 +66,6 @@ public class MediaCodecRendererTest { createFakeSampleStream(format1, /* sampleTimesUs...= */ 0, 100, 200, 300); FakeSampleStream fakeSampleStream2 = createFakeSampleStream(format2, /* sampleTimesUs...= */ 0, 100, 200); - MediaSource.MediaPeriodId mediaPeriodId1 = new MediaSource.MediaPeriodId(new Object()); - MediaSource.MediaPeriodId mediaPeriodId2 = new MediaSource.MediaPeriodId(new Object()); MediaCodecRenderer renderer = spy(new TestRenderer()); renderer.init(/* index= */ 0, PlayerId.UNSET, Clock.DEFAULT); @@ -80,8 +77,7 @@ public class MediaCodecRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - mediaPeriodId1); + /* offsetUs= */ 0); renderer.start(); long positionUs = 0; while (!renderer.hasReadStreamToEnd()) { @@ -89,11 +85,7 @@ public class MediaCodecRendererTest { positionUs += 100; } renderer.replaceStream( - new Format[] {format2}, - fakeSampleStream2, - /* startPositionUs= */ 400, - /* offsetUs= */ 400, - mediaPeriodId2); + new Format[] {format2}, fakeSampleStream2, /* startPositionUs= */ 400, /* offsetUs= */ 400); renderer.setCurrentStreamFinal(); while (!renderer.isEnded()) { renderer.render(positionUs, SystemClock.elapsedRealtime()); @@ -127,8 +119,6 @@ public class MediaCodecRendererTest { createFakeSampleStream(format1, /* sampleTimesUs...= */ 0, 100, 200, 300, 400, 500, 600); FakeSampleStream fakeSampleStream2 = createFakeSampleStream(format2, /* sampleTimesUs...= */ 0, 100, 200); - MediaSource.MediaPeriodId mediaPeriodId1 = new MediaSource.MediaPeriodId(new Object()); - MediaSource.MediaPeriodId mediaPeriodId2 = new MediaSource.MediaPeriodId(new Object()); MediaCodecRenderer renderer = spy(new TestRenderer()); renderer.init(/* index= */ 0, PlayerId.UNSET, Clock.DEFAULT); @@ -140,8 +130,7 @@ public class MediaCodecRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - mediaPeriodId1); + /* offsetUs= */ 0); renderer.start(); long positionUs = 0; while (!renderer.hasReadStreamToEnd()) { @@ -149,11 +138,7 @@ public class MediaCodecRendererTest { positionUs += 100; } renderer.replaceStream( - new Format[] {format2}, - fakeSampleStream2, - /* startPositionUs= */ 400, - /* offsetUs= */ 400, - mediaPeriodId2); + new Format[] {format2}, fakeSampleStream2, /* startPositionUs= */ 400, /* offsetUs= */ 400); renderer.setCurrentStreamFinal(); while (!renderer.isEnded()) { renderer.render(positionUs, SystemClock.elapsedRealtime()); @@ -190,8 +175,6 @@ public class MediaCodecRendererTest { createFakeSampleStream(format1, /* sampleTimesUs...= */ 0, 100, 200, 300); FakeSampleStream fakeSampleStream2 = createFakeSampleStream(format2, /* sampleTimesUs...= */ 0, 100, 200, 300, 400); - MediaSource.MediaPeriodId mediaPeriodId1 = new MediaSource.MediaPeriodId(new Object()); - MediaSource.MediaPeriodId mediaPeriodId2 = new MediaSource.MediaPeriodId(new Object()); MediaCodecRenderer renderer = spy(new TestRenderer()); renderer.init(/* index= */ 0, PlayerId.UNSET, Clock.DEFAULT); @@ -203,8 +186,7 @@ public class MediaCodecRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - mediaPeriodId1); + /* offsetUs= */ 0); renderer.start(); long positionUs = 0; while (!renderer.hasReadStreamToEnd()) { @@ -212,11 +194,7 @@ public class MediaCodecRendererTest { positionUs += 100; } renderer.replaceStream( - new Format[] {format2}, - fakeSampleStream2, - /* startPositionUs= */ 400, - /* offsetUs= */ 200, - mediaPeriodId2); + new Format[] {format2}, fakeSampleStream2, /* startPositionUs= */ 400, /* offsetUs= */ 200); renderer.setCurrentStreamFinal(); while (!renderer.isEnded()) { renderer.render(positionUs, SystemClock.elapsedRealtime()); @@ -251,8 +229,6 @@ public class MediaCodecRendererTest { FakeSampleStream fakeSampleStream1 = createFakeSampleStream(format1 /* no samples */); FakeSampleStream fakeSampleStream2 = createFakeSampleStream(format2, /* sampleTimesUs...= */ 0, 100, 200); - MediaSource.MediaPeriodId mediaPeriodId1 = new MediaSource.MediaPeriodId(new Object()); - MediaSource.MediaPeriodId mediaPeriodId2 = new MediaSource.MediaPeriodId(new Object()); MediaCodecRenderer renderer = spy(new TestRenderer()); renderer.init(/* index= */ 0, PlayerId.UNSET, Clock.DEFAULT); @@ -264,8 +240,7 @@ public class MediaCodecRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - mediaPeriodId1); + /* offsetUs= */ 0); renderer.start(); long positionUs = 0; while (!renderer.hasReadStreamToEnd()) { @@ -273,11 +248,7 @@ public class MediaCodecRendererTest { positionUs += 100; } renderer.replaceStream( - new Format[] {format2}, - fakeSampleStream2, - /* startPositionUs= */ 0, - /* offsetUs= */ 0, - mediaPeriodId2); + new Format[] {format2}, fakeSampleStream2, /* startPositionUs= */ 0, /* offsetUs= */ 0); renderer.setCurrentStreamFinal(); while (!renderer.isEnded()) { renderer.render(positionUs, SystemClock.elapsedRealtime()); @@ -309,9 +280,6 @@ public class MediaCodecRendererTest { FakeSampleStream fakeSampleStream2 = createFakeSampleStream(format2 /* no samples */); FakeSampleStream fakeSampleStream3 = createFakeSampleStream(format3, /* sampleTimesUs...= */ 0, 100, 200); - MediaSource.MediaPeriodId mediaPeriodId1 = new MediaSource.MediaPeriodId(new Object()); - MediaSource.MediaPeriodId mediaPeriodId2 = new MediaSource.MediaPeriodId(new Object()); - MediaSource.MediaPeriodId mediaPeriodId3 = new MediaSource.MediaPeriodId(new Object()); MediaCodecRenderer renderer = spy(new TestRenderer()); renderer.init(/* index= */ 0, PlayerId.UNSET, Clock.DEFAULT); @@ -323,8 +291,7 @@ public class MediaCodecRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - mediaPeriodId1); + /* offsetUs= */ 0); renderer.start(); long positionUs = 0; while (!renderer.hasReadStreamToEnd()) { @@ -332,21 +299,13 @@ public class MediaCodecRendererTest { positionUs += 100; } renderer.replaceStream( - new Format[] {format2}, - fakeSampleStream2, - /* startPositionUs= */ 200, - /* offsetUs= */ 200, - mediaPeriodId2); + new Format[] {format2}, fakeSampleStream2, /* startPositionUs= */ 200, /* offsetUs= */ 200); while (!renderer.hasReadStreamToEnd()) { renderer.render(positionUs, SystemClock.elapsedRealtime()); positionUs += 100; } renderer.replaceStream( - new Format[] {format3}, - fakeSampleStream3, - /* startPositionUs= */ 200, - /* offsetUs= */ 200, - mediaPeriodId3); + new Format[] {format3}, fakeSampleStream3, /* startPositionUs= */ 200, /* offsetUs= */ 200); renderer.setCurrentStreamFinal(); while (!renderer.isEnded()) { renderer.render(positionUs, SystemClock.elapsedRealtime()); @@ -375,7 +334,6 @@ public class MediaCodecRendererTest { new Format.Builder().setSampleMimeType(MimeTypes.AUDIO_AAC).setAverageBitrate(1000).build(); FakeSampleStream fakeSampleStream = createFakeSampleStream(format, /* sampleTimesUs...= */ 0, 100, 200, 300, 400, 500); - MediaSource.MediaPeriodId mediaPeriodId = new MediaSource.MediaPeriodId(new Object()); MediaCodecRenderer renderer = spy(new TestRenderer()); renderer.init(/* index= */ 0, PlayerId.UNSET, Clock.DEFAULT); @@ -387,8 +345,7 @@ public class MediaCodecRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 300, - /* offsetUs= */ 0, - mediaPeriodId); + /* offsetUs= */ 0); renderer.start(); renderer.setCurrentStreamFinal(); long positionUs = 0; @@ -418,7 +375,6 @@ public class MediaCodecRendererTest { new Format.Builder().setSampleMimeType(MimeTypes.AUDIO_AAC).setAverageBitrate(1000).build(); FakeSampleStream fakeSampleStream = createFakeSampleStream(format, /* sampleTimesUs...= */ 0, 100, 200, 300, 400, 500); - MediaSource.MediaPeriodId mediaPeriodId = new MediaSource.MediaPeriodId(new Object()); MediaCodecRenderer renderer = spy(new TestRenderer()); renderer.init(/* index= */ 0, PlayerId.UNSET, Clock.DEFAULT); renderer.enable( @@ -429,8 +385,7 @@ public class MediaCodecRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 400, - /* offsetUs= */ 0, - mediaPeriodId); + /* offsetUs= */ 0); renderer.start(); renderer.resetPosition(/* positionUs= */ 200); diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/metadata/MetadataRendererTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/metadata/MetadataRendererTest.java index 2a6bd2b2ce..9e248def39 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/metadata/MetadataRendererTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/metadata/MetadataRendererTest.java @@ -29,7 +29,6 @@ import androidx.media3.common.util.Assertions; import androidx.media3.exoplayer.ExoPlaybackException; import androidx.media3.exoplayer.drm.DrmSessionEventListener; import androidx.media3.exoplayer.drm.DrmSessionManager; -import androidx.media3.exoplayer.source.MediaSource; import androidx.media3.exoplayer.upstream.DefaultAllocator; import androidx.media3.extractor.metadata.emsg.EventMessage; import androidx.media3.extractor.metadata.emsg.EventMessageEncoder; @@ -170,8 +169,7 @@ public class MetadataRendererTest { new Format[] {EMSG_FORMAT}, fakeSampleStream, /* startPositionUs= */ 0L, - /* offsetUs= */ 0L, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 0L); // Call render() twice, the first call is to read the format and the second call will read the // metadata. @@ -210,8 +208,7 @@ public class MetadataRendererTest { new Format[] {EMSG_FORMAT}, fakeSampleStream, /* startPositionUs= */ 0L, - /* offsetUs= */ 0L, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 0L); // Call render() twice, the first call is to read the format and the second call will read the // metadata. @@ -249,14 +246,12 @@ public class MetadataRendererTest { sample(/* timeUs= */ 200_000, C.BUFFER_FLAG_KEY_FRAME, encodedEmsg), END_OF_STREAM_ITEM)); fakeSampleStream.writeData(/* startPositionUs= */ 0); - MediaSource.MediaPeriodId mediaPeriodId = new MediaSource.MediaPeriodId(new Object()); // Start of the first reading period. renderer.replaceStream( new Format[] {EMSG_FORMAT}, fakeSampleStream, /* startPositionUs= */ 0L, - /* offsetUs= */ 0L, - mediaPeriodId); + /* offsetUs= */ 0L); // Read the format renderer.render(/* positionUs= */ 0, /* elapsedRealtimeUs= */ 0); @@ -273,8 +268,7 @@ public class MetadataRendererTest { new Format[] {EMSG_FORMAT}, fakeSampleStream, /* startPositionUs= */ 0L, - /* offsetUs= */ 100_000L, - mediaPeriodId); + /* offsetUs= */ 100_000L); renderer.render(/* positionUs= */ 199_999, /* elapsedRealtimeUs= */ 0); assertThat(metadataOutput).hasSize(1); @@ -310,14 +304,12 @@ public class MetadataRendererTest { sample(/* timeUs= */ 200_000, C.BUFFER_FLAG_KEY_FRAME, encodedEmsg), END_OF_STREAM_ITEM)); fakeSampleStream.writeData(/* startPositionUs= */ 0); - MediaSource.MediaPeriodId mediaPeriodId = new MediaSource.MediaPeriodId(new Object()); // Start of the first reading period. renderer.replaceStream( new Format[] {EMSG_FORMAT}, fakeSampleStream, /* startPositionUs= */ 0L, - /* offsetUs= */ 100_000L, - mediaPeriodId); + /* offsetUs= */ 100_000L); // Read the format renderer.render(/* positionUs= */ 0, /* elapsedRealtimeUs= */ 0); @@ -334,8 +326,7 @@ public class MetadataRendererTest { new Format[] {EMSG_FORMAT}, fakeSampleStream, /* startPositionUs= */ 0L, - /* offsetUs= */ 0L, - mediaPeriodId); + /* offsetUs= */ 0L); renderer.render(/* positionUs= */ 299_999, /* elapsedRealtimeUs= */ 0); assertThat(metadataOutput).hasSize(1); @@ -358,8 +349,7 @@ public class MetadataRendererTest { new Format[] {EMSG_FORMAT}, fakeSampleStream, /* startPositionUs= */ 0L, - /* offsetUs= */ 0L, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 0L); renderer.render(/* positionUs= */ 0, /* elapsedRealtimeUs= */ 0); // Read the format renderer.render(/* positionUs= */ 0, /* elapsedRealtimeUs= */ 0); // Read the data diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/video/DecoderVideoRendererTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/video/DecoderVideoRendererTest.java index a411f8d1fe..95a9a67b61 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/video/DecoderVideoRendererTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/video/DecoderVideoRendererTest.java @@ -41,7 +41,6 @@ import androidx.media3.exoplayer.RendererCapabilities; import androidx.media3.exoplayer.RendererConfiguration; import androidx.media3.exoplayer.drm.DrmSessionEventListener; import androidx.media3.exoplayer.drm.DrmSessionManager; -import androidx.media3.exoplayer.source.MediaSource; import androidx.media3.exoplayer.upstream.DefaultAllocator; import androidx.media3.test.utils.FakeSampleStream; import androidx.test.ext.junit.runners.AndroidJUnit4; @@ -205,8 +204,7 @@ public final class DecoderVideoRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0L, - /* offsetUs */ 0, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs */ 0); for (int i = 0; i < 10; i++) { renderer.render(/* positionUs= */ 0, SystemClock.elapsedRealtime() * 1000); // Ensure pending messages are delivered. @@ -237,8 +235,7 @@ public final class DecoderVideoRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ false, /* startPositionUs= */ 0, - /* offsetUs */ 0, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs */ 0); for (int i = 0; i < 10; i++) { renderer.render(/* positionUs= */ 0, SystemClock.elapsedRealtime() * 1000); // Ensure pending messages are delivered. @@ -268,8 +265,7 @@ public final class DecoderVideoRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ false, /* startPositionUs= */ 0, - /* offsetUs */ 0, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs */ 0); renderer.start(); for (int i = 0; i < 10; i++) { renderer.render(/* positionUs= */ 0, SystemClock.elapsedRealtime() * 1000); @@ -303,8 +299,6 @@ public final class DecoderVideoRendererTest { /* initialFormat= */ H264_FORMAT, ImmutableList.of(oneByteSample(/* timeUs= */ 0), END_OF_STREAM_ITEM)); fakeSampleStream2.writeData(/* startPositionUs= */ 0); - MediaSource.MediaPeriodId mediaPeriodId1 = new MediaSource.MediaPeriodId(new Object()); - MediaSource.MediaPeriodId mediaPeriodId2 = new MediaSource.MediaPeriodId(new Object()); renderer.enable( RendererConfiguration.DEFAULT, new Format[] {H264_FORMAT}, @@ -313,8 +307,7 @@ public final class DecoderVideoRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs */ 0, - mediaPeriodId1); + /* offsetUs */ 0); renderer.start(); boolean replacedStream = false; @@ -325,8 +318,7 @@ public final class DecoderVideoRendererTest { new Format[] {H264_FORMAT}, fakeSampleStream2, /* startPositionUs= */ 100, - /* offsetUs= */ 100, - mediaPeriodId2); + /* offsetUs= */ 100); replacedStream = true; } // Ensure pending messages are delivered. @@ -360,8 +352,6 @@ public final class DecoderVideoRendererTest { /* initialFormat= */ H264_FORMAT, ImmutableList.of(oneByteSample(/* timeUs= */ 0), END_OF_STREAM_ITEM)); fakeSampleStream2.writeData(/* startPositionUs= */ 0); - MediaSource.MediaPeriodId mediaPeriodId1 = new MediaSource.MediaPeriodId(new Object()); - MediaSource.MediaPeriodId mediaPeriodId2 = new MediaSource.MediaPeriodId(new Object()); renderer.enable( RendererConfiguration.DEFAULT, new Format[] {H264_FORMAT}, @@ -370,8 +360,7 @@ public final class DecoderVideoRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs */ 0, - mediaPeriodId1); + /* offsetUs */ 0); boolean replacedStream = false; for (int i = 0; i < 10; i++) { @@ -381,8 +370,7 @@ public final class DecoderVideoRendererTest { new Format[] {H264_FORMAT}, fakeSampleStream2, /* startPositionUs= */ 100, - /* offsetUs= */ 100, - mediaPeriodId2); + /* offsetUs= */ 100); replacedStream = true; } // Ensure pending messages are delivered. diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/video/MediaCodecVideoRendererTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/video/MediaCodecVideoRendererTest.java index 20a322b1d1..68f0087856 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/video/MediaCodecVideoRendererTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/video/MediaCodecVideoRendererTest.java @@ -221,8 +221,7 @@ public class MediaCodecVideoRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - /* mediaPeriodId= */ new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 0); mediaCodecVideoRenderer.start(); mediaCodecVideoRenderer.render(0, SystemClock.elapsedRealtime() * 1000); @@ -278,8 +277,7 @@ public class MediaCodecVideoRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 30_000, - /* offsetUs= */ 0, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 0); mediaCodecVideoRenderer.start(); mediaCodecVideoRenderer.setCurrentStreamFinal(); @@ -306,14 +304,15 @@ public class MediaCodecVideoRendererTest { ArgumentCaptor argumentDecoderCounters = ArgumentCaptor.forClass(DecoderCounters.class); // Set up MediaPeriod with samples. - MediaSource.MediaPeriodId fakeMediaPeriodId = new MediaSource.MediaPeriodId(new Object()); FakeMediaPeriod mediaPeriod = new FakeMediaPeriod( new TrackGroupArray(TRACK_GROUP_H264), new DefaultAllocator(/* trimOnReset= */ true, /* individualAllocationSize= */ 1024), /* trackDataFactory= */ (format, mediaPeriodId) -> ImmutableList.of(), new MediaSourceEventListener.EventDispatcher() - .withParameters(/* windowIndex= */ 0, fakeMediaPeriodId), + .withParameters( + /* windowIndex= */ 0, + new MediaSource.MediaPeriodId(/* periodUid= */ new Object())), DrmSessionManager.DRM_UNSUPPORTED, new DrmSessionEventListener.EventDispatcher(), /* deferOnPrepared= */ false) { @@ -389,8 +388,7 @@ public class MediaCodecVideoRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 100, - /* offsetUs= */ 0, - fakeMediaPeriodId); + /* offsetUs= */ 0); mediaCodecVideoRenderer.start(); // Call to render should have read all samples up before endUs. @@ -411,14 +409,15 @@ public class MediaCodecVideoRendererTest { ArgumentCaptor argumentDecoderCounters = ArgumentCaptor.forClass(DecoderCounters.class); // Set up MediaPeriod with samples. - MediaSource.MediaPeriodId fakeMediaPeriodId = new MediaSource.MediaPeriodId(new Object()); FakeMediaPeriod mediaPeriod = new FakeMediaPeriod( new TrackGroupArray(TRACK_GROUP_H264), new DefaultAllocator(/* trimOnReset= */ true, /* individualAllocationSize= */ 1024), /* trackDataFactory= */ (format, mediaPeriodId) -> ImmutableList.of(), new MediaSourceEventListener.EventDispatcher() - .withParameters(/* windowIndex= */ 0, fakeMediaPeriodId), + .withParameters( + /* windowIndex= */ 0, + new MediaSource.MediaPeriodId(/* periodUid= */ new Object())), DrmSessionManager.DRM_UNSUPPORTED, new DrmSessionEventListener.EventDispatcher(), /* deferOnPrepared= */ false) { @@ -494,8 +493,7 @@ public class MediaCodecVideoRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 100, - /* offsetUs= */ 0, - fakeMediaPeriodId); + /* offsetUs= */ 0); mediaCodecVideoRenderer.start(); mediaCodecVideoRenderer.setCurrentStreamFinal(); @@ -531,8 +529,7 @@ public class MediaCodecVideoRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 0); mediaCodecVideoRenderer.setCurrentStreamFinal(); mediaCodecVideoRenderer.start(); @@ -578,8 +575,7 @@ public class MediaCodecVideoRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ false, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 0); mediaCodecVideoRenderer.start(); mediaCodecVideoRenderer.render(/* positionUs= */ 0, msToUs(SystemClock.elapsedRealtime())); ShadowSystemClock.advanceBy(10, TimeUnit.MILLISECONDS); @@ -634,8 +630,7 @@ public class MediaCodecVideoRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 0); mediaCodecVideoRenderer.start(); mediaCodecVideoRenderer.render(/* positionUs= */ 0, SystemClock.elapsedRealtime() * 1000); @@ -675,8 +670,7 @@ public class MediaCodecVideoRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 0); for (int i = 0; i < 10; i++) { mediaCodecVideoRenderer.render(/* positionUs= */ 0, SystemClock.elapsedRealtime() * 1000); } @@ -706,8 +700,7 @@ public class MediaCodecVideoRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ false, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 0); for (int i = 0; i < 10; i++) { mediaCodecVideoRenderer.render(/* positionUs= */ 0, SystemClock.elapsedRealtime() * 1000); } @@ -736,8 +729,7 @@ public class MediaCodecVideoRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ false, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 0); mediaCodecVideoRenderer.start(); for (int i = 0; i < 10; i++) { mediaCodecVideoRenderer.render(/* positionUs= */ 0, SystemClock.elapsedRealtime() * 1000); @@ -770,8 +762,7 @@ public class MediaCodecVideoRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 2000, - /* offsetUs= */ 1000, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 1000); for (int i = 0; i < 10; i++) { mediaCodecVideoRenderer.render(/* positionUs= */ 0, SystemClock.elapsedRealtime() * 1000); } @@ -804,8 +795,6 @@ public class MediaCodecVideoRendererTest { oneByteSample(/* timeUs= */ 1_000_000, C.BUFFER_FLAG_KEY_FRAME), END_OF_STREAM_ITEM)); fakeSampleStream2.writeData(/* startPositionUs= */ 0); - MediaSource.MediaPeriodId mediaPeriodId1 = new MediaSource.MediaPeriodId(new Object()); - MediaSource.MediaPeriodId mediaPeriodId2 = new MediaSource.MediaPeriodId(new Object()); mediaCodecVideoRenderer.enable( RendererConfiguration.DEFAULT, new Format[] {VIDEO_H264}, @@ -814,8 +803,7 @@ public class MediaCodecVideoRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - mediaPeriodId1); + /* offsetUs= */ 0); mediaCodecVideoRenderer.start(); boolean replacedStream = false; @@ -828,8 +816,7 @@ public class MediaCodecVideoRendererTest { new Format[] {VIDEO_H264}, fakeSampleStream2, /* startPositionUs= */ 100, - /* offsetUs= */ 50, - mediaPeriodId2); + /* offsetUs= */ 50); replacedStream = true; } } @@ -870,8 +857,6 @@ public class MediaCodecVideoRendererTest { ImmutableList.of( oneByteSample(/* timeUs= */ 0, C.BUFFER_FLAG_KEY_FRAME), END_OF_STREAM_ITEM)); fakeSampleStream2.writeData(/* startPositionUs= */ 0); - MediaSource.MediaPeriodId mediaPeriodId1 = new MediaSource.MediaPeriodId(new Object()); - MediaSource.MediaPeriodId mediaPeriodId2 = new MediaSource.MediaPeriodId(new Object()); mediaCodecVideoRenderer.enable( RendererConfiguration.DEFAULT, new Format[] {VIDEO_H264}, @@ -880,8 +865,7 @@ public class MediaCodecVideoRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - mediaPeriodId1); + /* offsetUs= */ 0); boolean replacedStream = false; for (int i = 0; i < 10; i++) { @@ -892,8 +876,7 @@ public class MediaCodecVideoRendererTest { new Format[] {VIDEO_H264}, fakeSampleStream2, /* startPositionUs= */ 100, - /* offsetUs= */ 100, - mediaPeriodId2); + /* offsetUs= */ 100); replacedStream = true; } } @@ -929,8 +912,7 @@ public class MediaCodecVideoRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 1000, - /* offsetUs= */ 0, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 0); mediaCodecVideoRenderer.start(); // Render at the original start position. for (int i = 0; i < 10; i++) { @@ -1285,8 +1267,7 @@ public class MediaCodecVideoRendererTest { /* joining= */ false, /* mayRenderStartOfStream= */ true, /* startPositionUs= */ 0, - /* offsetUs= */ 0, - new MediaSource.MediaPeriodId(new Object())); + /* offsetUs= */ 0); mediaCodecVideoRenderer.start(); mediaCodecVideoRenderer.render(/* positionUs= */ 0, SystemClock.elapsedRealtime() * 1000);