diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/MediaCodecVideoRenderer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/MediaCodecVideoRenderer.java index 66b39392b0..37c6f8ed82 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/MediaCodecVideoRenderer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/MediaCodecVideoRenderer.java @@ -655,10 +655,12 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer implements Video @Override protected void onPositionReset(long positionUs, boolean joining) throws ExoPlaybackException { - super.onPositionReset(positionUs, joining); + // Flush the video sink first to ensure it stops reading textures that will be owned by + // MediaCodec once the codec is flushed. if (videoSink != null) { videoSink.flush(); } + super.onPositionReset(positionUs, joining); if (videoSinkProvider.isInitialized()) { videoSinkProvider.setStreamOffsetUs(getOutputStreamOffsetUs());