summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetri Hintukainen <phintuka@users.sourceforge.net>2011-10-06 14:18:57 +0300
committerPetri Hintukainen <phintuka@users.sourceforge.net>2011-10-06 14:18:57 +0300
commit056408cf0fb53273841eb5d8965bffcd85560307 (patch)
tree247d2a0f4bc33c32443d1ee034227ec025c719b7
parentdaa8c4cb3bd3eaf71448cae646fed9cea83ad9d4 (diff)
downloadxine-lib-056408cf0fb53273841eb5d8965bffcd85560307.tar.gz
xine-lib-056408cf0fb53273841eb5d8965bffcd85560307.tar.bz2
demux_ts.c: always parse PAT
-rw-r--r--src/demuxers/demux_ts.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c
index 8ec2b60eb..64cd7ab01 100644
--- a/src/demuxers/demux_ts.c
+++ b/src/demuxers/demux_ts.c
@@ -1957,11 +1957,14 @@ static void demux_ts_parse_packet (demux_ts_t*this) {
return;
}
- data_len = PKT_SIZE - data_offset;
+ /* PAT */
+ if (pid == 0) {
+ demux_ts_parse_pat(this, originalPkt, originalPkt+data_offset-4,
+ payload_unit_start_indicator);
+ return;
+ }
- /*
- * audio/video pid auto-detection, if necessary
- */
+ /* PMT */
program_count=0;
if(this->media_num<MAX_PMTS)
while ((this->program_number[program_count] != INVALID_PROGRAM) &&
@@ -1981,11 +1984,7 @@ static void demux_ts_parse_packet (demux_ts_t*this) {
program_count++;
}
- if (payload_unit_start_indicator && (this->media_num < MAX_PIDS) && (pid == 0)) {
- demux_ts_parse_pat(this, originalPkt, originalPkt+data_offset-4,
- payload_unit_start_indicator);
- return;
- }
+ data_len = PKT_SIZE - data_offset;
if (data_len > PKT_SIZE) {