summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRocky Bernstein <rockyb@users.sourceforge.net>2003-12-06 12:03:44 +0000
committerRocky Bernstein <rockyb@users.sourceforge.net>2003-12-06 12:03:44 +0000
commit43a5de38818b3a4fb02e12a9dd92ed277235447b (patch)
tree73d5fb9279de476efeaac84ec41a9fc73d131f48 /src
parent580c90297688e095c131f8077f3e78c2b04f08d2 (diff)
downloadxine-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.c28
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 */