From 50d5cbea70bc05876e4af9a52a5c8febe130c5aa Mon Sep 17 00:00:00 2001 From: Oliver Woodman Date: Wed, 16 Dec 2015 19:57:14 +0000 Subject: [PATCH] Don't treat network_PID as program_map_PID. Issue: #1068 Issue: #1001 --- .../android/exoplayer/extractor/ts/TsExtractor.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/library/src/main/java/com/google/android/exoplayer/extractor/ts/TsExtractor.java b/library/src/main/java/com/google/android/exoplayer/extractor/ts/TsExtractor.java index 4dac4facae..1227e801a2 100644 --- a/library/src/main/java/com/google/android/exoplayer/extractor/ts/TsExtractor.java +++ b/library/src/main/java/com/google/android/exoplayer/extractor/ts/TsExtractor.java @@ -220,9 +220,14 @@ public final class TsExtractor implements Extractor { int programCount = (sectionLength - 9) / 4; for (int i = 0; i < programCount; i++) { data.readBytes(patScratch, 4); - patScratch.skipBits(19); // program_number (16), reserved (3) - int pid = patScratch.readBits(13); - tsPayloadReaders.put(pid, new PmtReader()); + int programNumber = patScratch.readBits(16); + patScratch.skipBits(3); // reserved (3) + if (programNumber == 0) { + patScratch.skipBits(13); // network_PID (13) + } else { + int pid = patScratch.readBits(13); + tsPayloadReaders.put(pid, new PmtReader()); + } } // Skip CRC_32.