From 4b2552ed643b3e3122487ddd1e201bd9a15c7632 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Wed, 26 Feb 2014 01:01:54 -0500 Subject: [PATCH] Set MediaCodec flags on the input buffer based on the DU flags --- .../binding/video/MediaCodecDecoderRenderer.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/com/limelight/binding/video/MediaCodecDecoderRenderer.java b/src/com/limelight/binding/video/MediaCodecDecoderRenderer.java index 73e46061..899feee7 100644 --- a/src/com/limelight/binding/video/MediaCodecDecoderRenderer.java +++ b/src/com/limelight/binding/video/MediaCodecDecoderRenderer.java @@ -194,6 +194,17 @@ public class MediaCodecDecoderRenderer implements VideoDecoderRenderer { return false; } + int mcFlags = 0; + + if ((decodeUnit.getFlags() & DecodeUnit.DU_FLAG_CODEC_CONFIG) != 0) { + System.out.println("Codec config"); + mcFlags |= MediaCodec.BUFFER_FLAG_CODEC_CONFIG; + } + if ((decodeUnit.getFlags() & DecodeUnit.DU_FLAG_SYNC_FRAME) != 0) { + System.out.println("Sync frame"); + mcFlags |= MediaCodec.BUFFER_FLAG_SYNC_FRAME; + } + int inputIndex = videoDecoder.dequeueInputBuffer(-1); if (inputIndex >= 0) { @@ -239,7 +250,7 @@ public class MediaCodecDecoderRenderer implements VideoDecoderRenderer { videoDecoder.queueInputBuffer(inputIndex, 0, spsLength, - 0, decodeUnit.getFlags()); + 0, mcFlags); return true; } } @@ -252,7 +263,7 @@ public class MediaCodecDecoderRenderer implements VideoDecoderRenderer { videoDecoder.queueInputBuffer(inputIndex, 0, decodeUnit.getDataLength(), - 0, decodeUnit.getFlags()); + 0, mcFlags); } return true;