From 245a9f27519676ef7e02442391a20c1945a6b6a1 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Wed, 14 Sep 2022 23:54:07 -0500 Subject: [PATCH] Try a new input buffer if getInputBuffer() returns null --- .../limelight/binding/video/MediaCodecDecoderRenderer.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java b/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java index a03d766a..9d5d483a 100644 --- a/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java +++ b/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java @@ -709,6 +709,12 @@ public class MediaCodecDecoderRenderer extends VideoDecoderRenderer implements C // the framework to do some performance optimizations for us if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { nextInputBuffer = videoDecoder.getInputBuffer(nextInputBufferIndex); + if (nextInputBuffer == null) { + // According to the Android docs, getInputBuffer() can return null "if the + // index is not a dequeued input buffer". I don't think this ever should + // happen but if it does, let's try to get a new input buffer next time. + nextInputBufferIndex = -1; + } } else { nextInputBuffer = legacyInputBuffers[nextInputBufferIndex];