From bc97db893aaa459dc61d0c1e18404b43f229fc80 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Fri, 16 Sep 2022 03:28:57 -0500 Subject: [PATCH] Allow recovery of IllegalStateExceptions for older versions of Android --- .../binding/video/MediaCodecDecoderRenderer.java | 8 ++++++++ 1 file changed, 8 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 1207c09c..61a81409 100644 --- a/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java +++ b/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java @@ -610,6 +610,14 @@ public class MediaCodecDecoderRenderer extends VideoDecoderRenderer implements C } } + // If we got here, this is most likely an IllegalStateException which was used prior to L + // to indicate codec errors (unexpected transition to the error state). Recovery from this + // requires a full decoder reset. + if (codecRecoveryAttempts < CR_MAX_TRIES) { + needsReset = true; + return false; + } + // Only throw if we're not stopping and aren't in the middle of codec recovery if (!stopping && !needsReset && !needsRestart) { //