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); } } }