From 274617de17b158c26a6cae107b82de16b7f272c8 Mon Sep 17 00:00:00 2001 From: claincly Date: Mon, 6 Feb 2023 14:20:56 +0000 Subject: [PATCH] Flush FrameProcessor when appropriate. PiperOrigin-RevId: 507461550 --- .../android/exoplayer2/video/MediaCodecVideoRenderer.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java index d53bfcee772..d5f096536e4 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java @@ -1174,9 +1174,7 @@ protected boolean processOutputBuffer( if (frameProcessorManager.isEnabled()) { notifyFrameMetaDataListener = false; if (!frameProcessorManager.maybeRegisterFrame(format, presentationTimeUs, isLastBuffer)) { - // TODO(b/238302341): Handle FrameProcessor is unable to accept the force rendered buffer. - // Treat the frame as dropped for now. - return true; + return false; } } else { notifyFrameMetaDataListener = true; @@ -1450,6 +1448,9 @@ protected boolean maybeDropBuffersToKeyframe( droppedSourceBufferCount, /* droppedDecoderBufferCount= */ buffersInCodecCount); } flushOrReinitializeCodec(); + if (frameProcessorManager.isEnabled()) { + frameProcessorManager.flush(); + } return true; }