From 9f4e46bd3c905f667a8f0570b3466d61d85ccb1b Mon Sep 17 00:00:00 2001 From: olly Date: Mon, 14 Mar 2016 07:04:02 -0700 Subject: [PATCH] Discard CSD buffers from the raw decoder in passthrough mode. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117129870 --- .../android/exoplayer/MediaCodecAudioTrackRenderer.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/library/src/main/java/com/google/android/exoplayer/MediaCodecAudioTrackRenderer.java b/library/src/main/java/com/google/android/exoplayer/MediaCodecAudioTrackRenderer.java index 4c86e9c898..8adafbeeeb 100644 --- a/library/src/main/java/com/google/android/exoplayer/MediaCodecAudioTrackRenderer.java +++ b/library/src/main/java/com/google/android/exoplayer/MediaCodecAudioTrackRenderer.java @@ -330,6 +330,12 @@ public class MediaCodecAudioTrackRenderer extends MediaCodecTrackRenderer implem protected boolean processOutputBuffer(long positionUs, long elapsedRealtimeUs, MediaCodec codec, ByteBuffer buffer, MediaCodec.BufferInfo bufferInfo, int bufferIndex, boolean shouldSkip) throws ExoPlaybackException { + if (passthroughEnabled && (bufferInfo.flags & MediaCodec.BUFFER_FLAG_CODEC_CONFIG) != 0) { + // Discard output buffers from the passthrough (raw) decoder containing codec specific data. + codec.releaseOutputBuffer(bufferIndex, false); + return true; + } + if (shouldSkip) { codec.releaseOutputBuffer(bufferIndex, false); codecCounters.skippedOutputBufferCount++;