From: Andreas H. <hei...@us...> - 2003-04-30 09:38:26
|
Update of /cvsroot/xine/xine-lib/src/demuxers In directory sc8-pr-cvs1:/tmp/cvs-serv25745/xine-lib/src/demuxers Modified Files: demux_ogg.c Log Message: fixed stupid mistake in previos commit Index: demux_ogg.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_ogg.c,v retrieving revision 1.86 retrieving revision 1.87 diff -u -r1.86 -r1.87 --- demux_ogg.c 30 Apr 2003 08:49:39 -0000 1.86 +++ demux_ogg.c 30 Apr 2003 09:38:21 -0000 1.87 @@ -46,9 +46,9 @@ #include "xineutils.h" #include "demux.h" - +/* #define LOG - +*/ #define CHUNKSIZE 8500 #define PACKET_TYPE_HEADER 0x01 @@ -889,6 +889,9 @@ } } else if (!strncmp (&op.packet[1], "text", 4)) { int channel=0; + uint32_t *val; + buf_element_t *buf; + #ifdef LOG printf ("demux_ogg: textstream detected.\n"); #endif @@ -896,6 +899,16 @@ channel= this->num_spu_streams++; this->buf_types[stream_num] = BUF_SPU_OGM | channel; + /*send an empty spu to inform the video_decoder, that there is a stream*/ + buf = this->video_fifo->buffer_pool_alloc (this->video_fifo); + buf->type = this->buf_types[stream_num]; + buf->pts = 0; + val = (uint32_t * )buf->content; + *val++=0; + *val++=0; + *val++=0; + this->video_fifo->put (this->video_fifo, buf); + #ifdef HAVE_THEORA } else if (!strncmp (&op.packet[1], "theora", 4)) { int channel; @@ -1040,10 +1053,10 @@ ogg_stream_pagein(&this->oss[stream_num], &this->og); if (ogg_page_bos(&this->og)) { - +#ifdef LOG printf ("demux_ogg: beginning of stream\ndemux_ogg: serial number %d - discard\n", ogg_page_serialno (&this->og)); - +#endif while (ogg_stream_packetout(&this->oss[stream_num], &op) == 1) ; return; } @@ -1207,6 +1220,11 @@ } ogg_sync_reset(&this->oy); + + /*some strange streams have no syncpoint flag set at the beginning*/ + if (start_pos == 0) + this->keyframe_needed = 0; + this->input->seek (this->input, start_pos, SEEK_SET); } @@ -1395,10 +1413,6 @@ plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_DEMUX, 20, "ogg", XINE_VERSION_CODE, NULL, init_class }, + { PLUGIN_DEMUX, 21, "ogg", XINE_VERSION_CODE, NULL, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; - - - - |