From 8991b2932961fb933623b2e4c3fcfa95abb8d32c Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sun, 13 Nov 2016 20:26:58 -0800 Subject: [PATCH] Run at maximum decoder operating rate on M --- .../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 b38b24c8..efcebeeb 100644 --- a/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java +++ b/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java @@ -202,6 +202,14 @@ public class MediaCodecDecoderRenderer extends EnhancedDecoderRenderer { videoFormat.setInteger(MediaFormat.KEY_MAX_HEIGHT, height); } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + // Operate at maximum rate to lower latency as much as possible on + // some Qualcomm platforms. We could also set KEY_PRIORITY to 0 (realtime) + // but that will actually result in the decoder crashing if it can't satisfy + // our (ludicrous) operating rate requirement. + videoFormat.setInteger(MediaFormat.KEY_OPERATING_RATE, Short.MAX_VALUE); + } + videoDecoder.configure(videoFormat, ((SurfaceHolder)renderTarget).getSurface(), null, 0); videoDecoder.setVideoScalingMode(MediaCodec.VIDEO_SCALING_MODE_SCALE_TO_FIT);