diff options
author | Petri Hintukainen <phintuka@users.sourceforge.net> | 2011-12-13 21:41:03 +0200 |
---|---|---|
committer | Petri Hintukainen <phintuka@users.sourceforge.net> | 2011-12-13 21:41:03 +0200 |
commit | a4c49d3fe5ab623e1b3e51bf4e48373bb0f256e5 (patch) | |
tree | 84fe308eb35601a0c46babf8d8106856ac8d0683 | |
parent | 8a4a1ff3385b833526b4d1d10d9b3e793d3828bf (diff) | |
download | xine-lib-a4c49d3fe5ab623e1b3e51bf4e48373bb0f256e5.tar.gz xine-lib-a4c49d3fe5ab623e1b3e51bf4e48373bb0f256e5.tar.bz2 |
demux_ts: do not count skipped PS1 substream header in PES packet size
-rw-r--r-- | src/demuxers/demux_ts.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c index 238adf979..42f1061f8 100644 --- a/src/demuxers/demux_ts.c +++ b/src/demuxers/demux_ts.c @@ -1109,6 +1109,7 @@ static int demux_ts_parse_pes_header (xine_t *xine, demux_ts_media *m, m->buf->decoder_info[1] = BUF_SPECIAL_LPCM_CONFIG; m->buf->decoder_info[2] = (p[3]<<24) | (p[2]<<16) | (p[1]<<8) | p[0]; + m->pes_bytes_left -= 4; return header_len + 4; } else if (m->descriptor_tag == ISO_13818_PES_PRIVATE @@ -1126,6 +1127,7 @@ static int demux_ts_parse_pes_header (xine_t *xine, demux_ts_media *m, spu_id = (p[0] & 0x1f); m->type = BUF_SPU_DVD + spu_id; + m->pes_bytes_left -= 1; return header_len + 1; } else if ((p[0] & 0xF0) == 0x80) { @@ -1135,6 +1137,7 @@ static int demux_ts_parse_pes_header (xine_t *xine, demux_ts_media *m, } m->type |= BUF_AUDIO_A52; + m->pes_bytes_left -= 4; return header_len + 4; #if 0 @@ -1155,6 +1158,7 @@ static int demux_ts_parse_pes_header (xine_t *xine, demux_ts_media *m, } m->type |= BUF_AUDIO_LPCM_BE; + m->pes_bytes_left -= pcm_offset; return header_len + pcm_offset; #endif } |