From 43a5de38818b3a4fb02e12a9dd92ed277235447b Mon Sep 17 00:00:00 2001 From: Rocky Bernstein Date: Sat, 6 Dec 2003 12:03:44 +0000 Subject: Recognize SVCD OGT and CVD subtitle streams. CVS patchset: 5848 CVS date: 2003/12/06 12:03:44 --- src/demuxers/demux_mpeg.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/demuxers/demux_mpeg.c b/src/demuxers/demux_mpeg.c index e01cfd736..f6804752f 100644 --- a/src/demuxers/demux_mpeg.c +++ b/src/demuxers/demux_mpeg.c @@ -19,7 +19,7 @@ */ /* - * $Id: demux_mpeg.c,v 1.131 2003/11/26 19:43:30 f1rmb Exp $ + * $Id: demux_mpeg.c,v 1.132 2003/12/06 12:03:44 rockyb Exp $ * * demultiplexer for mpeg 1/2 program streams * reads streams of variable blocksizes @@ -294,6 +294,32 @@ static void parse_mpeg2_packet (demux_mpeg_t *this, int stream_id, int64_t scr) return; } + /* SVCD OGT subtitles are in stream 0x70 */ + if((this->dummy_space[0] & 0xFF) == 0x70) { + + buf = this->input->read_block (this->input, this->video_fifo, len-1); + + buf->type = BUF_SPU_SVCD + (this->dummy_space[0] & 0x03); + buf->pts = pts; + + this->video_fifo->put (this->video_fifo, buf); + + return; + } + + /* CVD subtitles are in stream 0x00-0x03 */ + if((this->dummy_space[0] & 0xfc) == 0x00) { + + buf = this->input->read_block (this->input, this->video_fifo, len-1); + + buf->type = BUF_SPU_CVD + (this->dummy_space[0] & 0x03); + buf->pts = pts; + + this->video_fifo->put (this->video_fifo, buf); + + return; + } + if((this->dummy_space[0] & 0xf0) == 0x80) { /* read rest of header - AC3 */ -- cgit v1.2.3