summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetri Hintukainen <phintuka@users.sourceforge.net>2011-12-13 21:41:03 +0200
committerPetri Hintukainen <phintuka@users.sourceforge.net>2011-12-13 21:41:03 +0200
commita4c49d3fe5ab623e1b3e51bf4e48373bb0f256e5 (patch)
tree84fe308eb35601a0c46babf8d8106856ac8d0683
parent8a4a1ff3385b833526b4d1d10d9b3e793d3828bf (diff)
downloadxine-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.c4
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
}