From 836cefcdd6a0e7b8cfcfadcd5479619461bde575 Mon Sep 17 00:00:00 2001 From: olly Date: Wed, 30 Nov 2016 13:14:07 -0800 Subject: [PATCH] Remove CC validity checks in SeiReader (now performed in decoder) ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=140642357 --- .../exoplayer2/extractor/ts/SeiReader.java | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/library/src/main/java/com/google/android/exoplayer2/extractor/ts/SeiReader.java b/library/src/main/java/com/google/android/exoplayer2/extractor/ts/SeiReader.java index 4971c0c2b1..a2791bcaae 100644 --- a/library/src/main/java/com/google/android/exoplayer2/extractor/ts/SeiReader.java +++ b/library/src/main/java/com/google/android/exoplayer2/extractor/ts/SeiReader.java @@ -57,19 +57,13 @@ import com.google.android.exoplayer2.util.ParsableByteArray; seiBuffer.skipBytes(8); // Ignore first three bits: reserved (1) + process_cc_data_flag (1) + zero_bit (1). int ccCount = seiBuffer.readUnsignedByte() & 0x1F; + // Ignore em_data (1) seiBuffer.skipBytes(1); - int sampleBytes = 0; - for (int i = 0; i < ccCount; i++) { - int ccValidityAndType = seiBuffer.peekUnsignedByte() & 0x07; - // Check that validity == 1 and type == 0 (i.e. NTSC_CC_FIELD_1). - if (ccValidityAndType != 0x04) { - seiBuffer.skipBytes(3); - } else { - sampleBytes += 3; - output.sampleData(seiBuffer, 3); - } - } - output.sampleMetadata(pesTimeUs, C.BUFFER_FLAG_KEY_FRAME, sampleBytes, 0, null); + // Each data packet consists of 24 bits: marker bits (5) + cc_valid (1) + cc_type (2) + // + cc_data_1 (8) + cc_data_2 (8). + int sampleLength = ccCount * 3; + output.sampleData(seiBuffer, sampleLength); + output.sampleMetadata(pesTimeUs, C.BUFFER_FLAG_KEY_FRAME, sampleLength, 0, null); // Ignore trailing information in SEI, if any. seiBuffer.skipBytes(payloadSize - (10 + ccCount * 3)); } else {