diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/DefaultVideoSink.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/DefaultVideoSink.java index 7c87aad50d..32d6d1be70 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/DefaultVideoSink.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/DefaultVideoSink.java @@ -80,6 +80,7 @@ import java.util.concurrent.Executor; if (resetPosition) { videoFrameReleaseControl.reset(); } + videoFrameRenderControl.flush(); } @Override 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 c6003cc1b9..820dccdb51 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 @@ -439,12 +439,12 @@ public final class PlaybackVideoGraphWrapper implements VideoSinkProvider, Video videoFrameRenderControl.render(positionUs, elapsedRealtimeUs); } - private void flush() { + private void flush(boolean resetPosition) { if (!isInitialized()) { return; } pendingFlushCount++; - videoFrameRenderControl.flush(); + defaultVideoSink.flush(resetPosition); // Handle pending video graph callbacks to ensure video size changes reach the video render // control. checkStateNotNull(handler).post(() -> pendingFlushCount--); @@ -564,8 +564,7 @@ public final class PlaybackVideoGraphWrapper implements VideoSinkProvider, Video hasRegisteredFirstInputStream = false; finalBufferPresentationTimeUs = C.TIME_UNSET; lastBufferPresentationTimeUs = C.TIME_UNSET; - PlaybackVideoGraphWrapper.this.flush(); - defaultVideoSink.flush(resetPosition); + PlaybackVideoGraphWrapper.this.flush(resetPosition); pendingInputStreamBufferPresentationTimeUs = C.TIME_UNSET; // Don't change input stream offset or reset the pending input stream offset change so that // it's announced with the next input frame.