diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/PlaybackVideoGraphWrapper.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/PlaybackVideoGraphWrapper.java index ed7329ea95..d5cde1d49e 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/PlaybackVideoGraphWrapper.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/PlaybackVideoGraphWrapper.java @@ -926,10 +926,7 @@ public final class PlaybackVideoGraphWrapper implements VideoSinkProvider, Video @Override public void renderFrame( - long renderTimeNs, - long bufferPresentationTimeUs, - long streamOffsetUs, - boolean isFirstFrame) { + long renderTimeNs, long bufferPresentationTimeUs, boolean isFirstFrame) { if (isFirstFrame && currentSurfaceAndSize != null) { for (PlaybackVideoGraphWrapper.Listener listener : listeners) { listener.onFirstFrameRendered(PlaybackVideoGraphWrapper.this); diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoFrameRenderControl.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoFrameRenderControl.java index a949d08365..e7749e8b7e 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoFrameRenderControl.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoFrameRenderControl.java @@ -49,11 +49,9 @@ import androidx.media3.exoplayer.ExoPlaybackException; * rendered immediately. * @param presentationTimeUs The frame's presentation time, in microseconds, which was announced * with {@link VideoFrameRenderControl#onOutputFrameAvailableForRendering(long)}. - * @param streamOffsetUs The stream offset, in microseconds, that is associated with this frame. * @param isFirstFrame Whether this is the first frame of the stream. */ - void renderFrame( - long renderTimeNs, long presentationTimeUs, long streamOffsetUs, boolean isFirstFrame); + void renderFrame(long renderTimeNs, long presentationTimeUs, boolean isFirstFrame); /** * Called to drop the {@linkplain @@ -218,10 +216,7 @@ import androidx.media3.exoplayer.ExoPlaybackException; ? VideoFrameProcessor.RENDER_OUTPUT_FRAME_IMMEDIATELY : videoFrameReleaseInfo.getReleaseTimeNs(); frameRenderer.renderFrame( - renderTimeNs, - presentationTimeUs, - outputStreamOffsetUs, - videoFrameReleaseControl.onFrameReleasedIsFirstFrame()); + renderTimeNs, presentationTimeUs, videoFrameReleaseControl.onFrameReleasedIsFirstFrame()); } private boolean maybeUpdateOutputStreamOffset(long presentationTimeUs) { diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/video/VideoFrameRenderControlTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/video/VideoFrameRenderControlTest.java index f4d26d00b2..6109b68d8d 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/video/VideoFrameRenderControlTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/video/VideoFrameRenderControlTest.java @@ -60,7 +60,6 @@ public class VideoFrameRenderControlTest { .renderFrame( /* renderTimeNs= */ anyLong(), /* presentationTimeUs= */ eq(0L), - /* streamOffsetUs= */ eq(0L), /* isFirstFrame= */ eq(true)); } @@ -92,7 +91,6 @@ public class VideoFrameRenderControlTest { .renderFrame( /* renderTimeNs= */ anyLong(), /* presentationTimeUs= */ eq(0L), - /* streamOffsetUs= */ eq(0L), /* isFirstFrame= */ eq(true)); inOrder.verifyNoMoreInteractions(); @@ -106,7 +104,6 @@ public class VideoFrameRenderControlTest { .renderFrame( /* renderTimeNs= */ anyLong(), /* presentationTimeUs= */ eq(10_000L), - /* streamOffsetUs= */ eq(0L), /* isFirstFrame= */ eq(false)); inOrder.verifyNoMoreInteractions(); } @@ -135,7 +132,7 @@ public class VideoFrameRenderControlTest { .verify(frameRenderer) .onVideoSizeChanged(new VideoSize(/* width= */ VIDEO_WIDTH, /* height= */ VIDEO_HEIGHT)); // First frame has the first stream offset. - inOrder.verify(frameRenderer).renderFrame(anyLong(), eq(0L), eq(10_000L), eq(true)); + inOrder.verify(frameRenderer).renderFrame(anyLong(), eq(0L), eq(true)); inOrder.verifyNoMoreInteractions(); // 10 milliseconds pass @@ -151,7 +148,6 @@ public class VideoFrameRenderControlTest { .renderFrame( /* renderTimeNs= */ anyLong(), /* presentationTimeUs= */ eq(10_000L), - /* streamOffsetUs= */ eq(20_000L), /* isFirstFrame= */ eq(true)); inOrder.verifyNoMoreInteractions(); } @@ -189,7 +185,6 @@ public class VideoFrameRenderControlTest { .renderFrame( /* renderTimeNs= */ anyLong(), /* presentationTimeUs= */ eq(0L), - /* streamOffsetUs= */ eq(0L), /* isFirstFrame= */ eq(true)); inOrder.verifyNoMoreInteractions(); @@ -233,7 +228,6 @@ public class VideoFrameRenderControlTest { .renderFrame( /* renderTimeNs= */ anyLong(), /* presentationTimeUs= */ eq(10_000L), - /* streamOffsetUs= */ eq(0L), /* isFirstFrame= */ eq(true)); inOrder.verifyNoMoreInteractions(); } @@ -271,7 +265,6 @@ public class VideoFrameRenderControlTest { .renderFrame( /* renderTimeNs= */ anyLong(), /* presentationTimeUs= */ eq(0L), - /* streamOffsetUs= */ eq(0L), /* isFirstFrame= */ eq(true)); assertThat(videoFrameRenderControl.hasReleasedFrame(/* presentationTimeUs= */ 0)).isTrue(); } @@ -299,7 +292,6 @@ public class VideoFrameRenderControlTest { .renderFrame( /* renderTimeNs= */ anyLong(), /* presentationTimeUs= */ eq(0L), - /* streamOffsetUs= */ eq(0L), /* isFirstFrame= */ eq(true)); videoFrameRenderControl.flush();