From c537af2273fe50d2e86e06d59027b9d297091d2a Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Wed, 19 Feb 2014 19:40:35 -0500 Subject: [PATCH] Render the latest frame available at the time --- .../binding/video/MediaCodecDecoderRenderer.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/com/limelight/binding/video/MediaCodecDecoderRenderer.java b/src/com/limelight/binding/video/MediaCodecDecoderRenderer.java index 2ddfa716..f1c2053f 100644 --- a/src/com/limelight/binding/video/MediaCodecDecoderRenderer.java +++ b/src/com/limelight/binding/video/MediaCodecDecoderRenderer.java @@ -133,8 +133,18 @@ public class MediaCodecDecoderRenderer implements VideoDecoderRenderer { default: break; } + if (outIndex >= 0) { - videoDecoder.releaseOutputBuffer(outIndex, true); + int lastIndex = outIndex; + + // Get the last output buffer in the queue + while ((outIndex = videoDecoder.dequeueOutputBuffer(info, 0)) >= 0) { + videoDecoder.releaseOutputBuffer(lastIndex, false); + lastIndex = outIndex; + } + + // Render that buffer + videoDecoder.releaseOutputBuffer(lastIndex, true); } } }