From 8322592ee8959eb509badea2ad4d9ff4e244dd81 Mon Sep 17 00:00:00 2001 From: olly Date: Fri, 27 May 2016 09:36:40 -0700 Subject: [PATCH] Fix flag issue causing corrupt output on DRM playbacks. The issue is visible for DRM playbacks because BUFFER_FLAG_ENCRYPTED is being cleared, which results in trying to play encrypted samples without decryption. The issue would have also incorrectly cleared key frame flags too, for both clear and encrypted playbacks, but I don't think we're using that flag downstream anywhere and so the issue wasn't visible. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=123426582 --- .../google/android/exoplayer/extractor/DefaultTrackOutput.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/main/java/com/google/android/exoplayer/extractor/DefaultTrackOutput.java b/library/src/main/java/com/google/android/exoplayer/extractor/DefaultTrackOutput.java index 9c52451273..0072f45052 100644 --- a/library/src/main/java/com/google/android/exoplayer/extractor/DefaultTrackOutput.java +++ b/library/src/main/java/com/google/android/exoplayer/extractor/DefaultTrackOutput.java @@ -239,7 +239,7 @@ public final class DefaultTrackOutput implements TrackOutput { return TrackStream.FORMAT_READ; case TrackStream.BUFFER_READ: if (buffer.timeUs < decodeOnlyUntilUs) { - buffer.setFlags(C.BUFFER_FLAG_DECODE_ONLY); + buffer.addFlag(C.BUFFER_FLAG_DECODE_ONLY); } // Read encryption data if the sample is encrypted. if (buffer.isEncrypted()) {