From 1c8ad64da0f3a87dceaaacdb325a44b2bbc6c359 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Tue, 25 Feb 2020 20:21:04 -0800 Subject: [PATCH] Only set KEY_FRAME_RATE on M+ to reduce compatibility risk --- .../binding/video/MediaCodecDecoderRenderer.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 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 d03a6d08..9e3e3fa8 100644 --- a/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java +++ b/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java @@ -303,10 +303,13 @@ public class MediaCodecDecoderRenderer extends VideoDecoderRenderer { MediaFormat videoFormat = MediaFormat.createVideoFormat(mimeType, width, height); - // We use prefs.fps instead of redrawRate here because the low latency hack in Game.java - // may leave us with an odd redrawRate value like 59 or 49 which might cause the decoder - // to puke. To be safe, we'll use the unmodified value. - videoFormat.setInteger(MediaFormat.KEY_FRAME_RATE, prefs.fps); + // Avoid setting KEY_FRAME_RATE on Lollipop and earlier to reduce compatibility risk + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + // We use prefs.fps instead of redrawRate here because the low latency hack in Game.java + // may leave us with an odd redrawRate value like 59 or 49 which might cause the decoder + // to puke. To be safe, we'll use the unmodified value. + videoFormat.setInteger(MediaFormat.KEY_FRAME_RATE, prefs.fps); + } // Adaptive playback can also be enabled by the whitelist on pre-KitKat devices // so we don't fill these pre-KitKat