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