From 5bfce88fc5e0a99ccff04c9596f9300a633207c4 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sun, 18 Sep 2022 18:37:33 -0500 Subject: [PATCH] Fix recovery timeout if no output frames are being received --- .../limelight/binding/video/MediaCodecDecoderRenderer.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 926a4ab0..0d2b0f89 100644 --- a/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java +++ b/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java @@ -783,12 +783,14 @@ public class MediaCodecDecoderRenderer extends VideoDecoderRenderer implements C e.printStackTrace(); handleDecoderException(e); } - } finally { - doCodecRecoveryIfRequired(CR_FLAG_CHOREOGRAPHER); } } } + // Attempt codec recovery even if we have nothing to render right now. Recovery can still + // be required even if the codec died before giving any output. + doCodecRecoveryIfRequired(CR_FLAG_CHOREOGRAPHER); + // Request another callback for next frame Choreographer.getInstance().postFrameCallback(this); }