From 55bfe4f95c0902ff1ec5bd96354f7a9c83c87cd4 Mon Sep 17 00:00:00 2001 From: christosts Date: Wed, 28 Feb 2024 07:34:14 -0800 Subject: [PATCH] Composition preview: do not report errors on release PiperOrigin-RevId: 611096895 --- .../media3/exoplayer/video/MediaCodecVideoRenderer.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 506e6dd2cf..518954d123 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 @@ -144,6 +144,7 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer private final Context context; private final VideoSinkProvider videoSinkProvider; + private final boolean ownsVideoSinkProvider; private final EventDispatcher eventDispatcher; private final int maxDroppedFramesToNotify; private final boolean deviceNeedsNoPostProcessWorkaround; @@ -393,9 +394,11 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer this.maxDroppedFramesToNotify = maxDroppedFramesToNotify; this.context = context.getApplicationContext(); eventDispatcher = new EventDispatcher(eventHandler, eventListener); + ownsVideoSinkProvider = videoSinkProvider == null; if (videoSinkProvider == null) { videoSinkProvider = new CompositingVideoSinkProvider.Builder(this.context).build(); } + if (videoSinkProvider.getVideoFrameReleaseControl() == null) { @SuppressWarnings("nullness:assignment") VideoFrameReleaseControl.@Initialized FrameTimingEvaluator thisRef = this; @@ -730,7 +733,7 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer @Override protected void onRelease() { super.onRelease(); - if (videoSinkProvider.isInitialized()) { + if (ownsVideoSinkProvider && videoSinkProvider.isInitialized()) { videoSinkProvider.release(); } }