From af77a8f482e06931da55c133214434da9f1f5ba3 Mon Sep 17 00:00:00 2001 From: Iwan Timmer Date: Sat, 28 Jun 2014 14:12:30 +0200 Subject: [PATCH] Fix bistream restricion bug for lower latency and 1080p support --- src/com/limelight/binding/video/OmxDecoderRenderer.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/com/limelight/binding/video/OmxDecoderRenderer.java b/src/com/limelight/binding/video/OmxDecoderRenderer.java index 004d372..a8fbac7 100644 --- a/src/com/limelight/binding/video/OmxDecoderRenderer.java +++ b/src/com/limelight/binding/video/OmxDecoderRenderer.java @@ -37,12 +37,13 @@ public class OmxDecoderRenderer extends AbstractVideoRenderer { ByteBufferDescriptor header = units.get(0); if (header.data[header.offset+4] == 0x67) { + byte last = header.data[header.length+header.offset-1]; + //Set number of reference frames back to 1 as it's the minimum for bitstream restrictions this.replace(header, 80, 9, new byte[] {0x40}, 3); - //Set bitstream restrictions to only buffer single frame - byte last = header.data[header.length+header.offset-1]; - this.replace(header, header.length*8+Integer.numberOfLeadingZeros(last & - last)%8-9, 2, BITSTREAM_RESTRICTIONS, 3*8); + //Set bitstream restrictions to only buffer single frame (starts 9 bits before stop bit and 6 bits earlier because of the shortening above) + this.replace(header, header.length*8+Integer.numberOfLeadingZeros(last & - last)%8-9-6, 2, BITSTREAM_RESTRICTIONS, 3*8); } boolean ok = true;