diff options
author | Rocky Bernstein <rockyb@users.sourceforge.net> | 2003-12-06 12:03:44 +0000 |
---|---|---|
committer | Rocky Bernstein <rockyb@users.sourceforge.net> | 2003-12-06 12:03:44 +0000 |
commit | 43a5de38818b3a4fb02e12a9dd92ed277235447b (patch) | |
tree | 73d5fb9279de476efeaac84ec41a9fc73d131f48 /src | |
parent | 580c90297688e095c131f8077f3e78c2b04f08d2 (diff) | |
download | xine-lib-43a5de38818b3a4fb02e12a9dd92ed277235447b.tar.gz xine-lib-43a5de38818b3a4fb02e12a9dd92ed277235447b.tar.bz2 |
Recognize SVCD OGT and CVD subtitle streams.
CVS patchset: 5848
CVS date: 2003/12/06 12:03:44
Diffstat (limited to 'src')
-rw-r--r-- | src/demuxers/demux_mpeg.c | 28 |
1 files changed, 27 insertions, 1 deletions
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 */ |