From a7dff14d3c14bd999bca7cb05fa8edf853b93362 Mon Sep 17 00:00:00 2001 From: aquilescanta Date: Wed, 23 Nov 2016 07:13:36 -0800 Subject: [PATCH] Keep TS packets with no continuity counter increase and no payload This behavior is defined in ISO-13818-1, section 2.4.3.3(continuity_counter). ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=140029161 --- .../android/exoplayer2/extractor/ts/TsExtractor.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/library/src/main/java/com/google/android/exoplayer2/extractor/ts/TsExtractor.java b/library/src/main/java/com/google/android/exoplayer2/extractor/ts/TsExtractor.java index 6808c14cf9..0403a970c8 100644 --- a/library/src/main/java/com/google/android/exoplayer2/extractor/ts/TsExtractor.java +++ b/library/src/main/java/com/google/android/exoplayer2/extractor/ts/TsExtractor.java @@ -216,9 +216,11 @@ public final class TsExtractor implements Extractor { int previousCounter = continuityCounters.get(pid, continuityCounter - 1); continuityCounters.put(pid, continuityCounter); if (previousCounter == continuityCounter) { - // Duplicate packet found. - tsPacketBuffer.setPosition(endOfPacket); - return RESULT_CONTINUE; + if (payloadExists) { + // Duplicate packet found. + tsPacketBuffer.setPosition(endOfPacket); + return RESULT_CONTINUE; + } } else if (continuityCounter != (previousCounter + 1) % 16) { discontinuityFound = true; }