diff options
author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2003-04-26 19:28:54 +0000 |
---|---|---|
committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2003-04-26 19:28:54 +0000 |
commit | 4fc8dd4325139929b74a8ad89ee9677545b20fd2 (patch) | |
tree | f44a4f12a045a001c3bfde6bd37953b9c4c6952a | |
parent | aae5976697a7a3269d3f679d71631f3211e12eca (diff) | |
download | xine-lib-4fc8dd4325139929b74a8ad89ee9677545b20fd2.tar.gz xine-lib-4fc8dd4325139929b74a8ad89ee9677545b20fd2.tar.bz2 |
very very quick fix for subtitles+ac3 in vob files
have to take a flight now.... cu
CVS patchset: 4687
CVS date: 2003/04/26 19:28:54
-rw-r--r-- | src/demuxers/demux_mpeg.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/demuxers/demux_mpeg.c b/src/demuxers/demux_mpeg.c index 387ef8941..d50580900 100644 --- a/src/demuxers/demux_mpeg.c +++ b/src/demuxers/demux_mpeg.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_mpeg.c,v 1.110 2003/04/25 14:13:43 miguelfreitas Exp $ + * $Id: demux_mpeg.c,v 1.111 2003/04/26 19:28:54 miguelfreitas Exp $ * * demultiplexer for mpeg 1/2 program streams * reads streams of variable blocksizes @@ -280,9 +280,27 @@ static void parse_mpeg2_packet (demux_mpeg_t *this, int stream_id, int64_t scr) header_len -= 5 ; } - /* read rest of header */ - i = this->input->read (this->input, this->dummy_space, header_len+4); + i = this->input->read (this->input, this->dummy_space, 1); + + if((this->dummy_space[0] & 0xE0) == 0x20) { + + buf = this->input->read_block (this->input, this->video_fifo, header_len+3+len); + + track = (this->dummy_space[0] & 0x1f); + buf->type = BUF_SPU_DVD + track; + buf->decoder_flags |= BUF_FLAG_SPECIAL; + buf->decoder_info[1] = BUF_SPECIAL_SPU_DVD_SUBTYPE; + buf->decoder_info[2] = SPU_DVD_SUBTYPE_PACKAGE; + buf->pts = pts; + + this->video_fifo->put (this->video_fifo, buf); + + return; + } + + /* read rest of header */ + i = this->input->read (this->input, this->dummy_space+1, header_len+3); track = this->dummy_space[0] & 0x0F ; /* contents */ |