diff options
author | Siggi Langauf <siggi@users.sourceforge.net> | 2002-05-21 00:12:31 +0000 |
---|---|---|
committer | Siggi Langauf <siggi@users.sourceforge.net> | 2002-05-21 00:12:31 +0000 |
commit | 3a1cff5f8ea76ca1caab68df8fe64cc17848587f (patch) | |
tree | 1486cd5eaa8471d15ea5c4c988ffce5b39ec5f68 /src/demuxers/demux_ogg.c | |
parent | f21031711ce3524cc9480fedf3e6103df831ed28 (diff) | |
download | xine-lib-3a1cff5f8ea76ca1caab68df8fe64cc17848587f.tar.gz xine-lib-3a1cff5f8ea76ca1caab68df8fe64cc17848587f.tar.bz2 |
atomic status code on demux start/seek
(demux_avi by Thibaut Mattern)
CVS patchset: 1914
CVS date: 2002/05/21 00:12:31
Diffstat (limited to 'src/demuxers/demux_ogg.c')
-rw-r--r-- | src/demuxers/demux_ogg.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/demuxers/demux_ogg.c b/src/demuxers/demux_ogg.c index 1764fb6d4..db81328bb 100644 --- a/src/demuxers/demux_ogg.c +++ b/src/demuxers/demux_ogg.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_ogg.c,v 1.24 2002/05/16 22:32:31 tmattern Exp $ + * $Id: demux_ogg.c,v 1.25 2002/05/21 00:12:32 siggi Exp $ * * demultiplexer for ogg streams * @@ -485,7 +485,7 @@ static int demux_ogg_get_status (demux_plugin_t *this_gen) { return (this->thread_running?DEMUX_OK:DEMUX_FINISHED); } -static void demux_ogg_start (demux_plugin_t *this_gen, +static int demux_ogg_start (demux_plugin_t *this_gen, fifo_buffer_t *video_fifo, fifo_buffer_t *audio_fifo, off_t start_pos, int start_time) { @@ -495,6 +495,7 @@ static void demux_ogg_start (demux_plugin_t *this_gen, int err, i; pthread_mutex_lock( &this->mutex ); + err = 1; if( !this->thread_running ) { this->video_fifo = video_fifo; @@ -578,19 +579,23 @@ static void demux_ogg_start (demux_plugin_t *this_gen, strerror(err)); abort(); } - } else { + } + else { xine_flush_engine(this->xine); + err = 0; } pthread_mutex_unlock( &this->mutex ); + + return err ? DEMUX_FINISHED : DEMUX_OK; } -static void demux_ogg_seek (demux_plugin_t *this_gen, +static int demux_ogg_seek (demux_plugin_t *this_gen, off_t start_pos, int start_time) { demux_ogg_t *this = (demux_ogg_t *) this_gen; - demux_ogg_start (this_gen, this->video_fifo, this->audio_fifo, - start_pos, start_time); + return demux_ogg_start (this_gen, this->video_fifo, this->audio_fifo, + start_pos, start_time); } static int demux_ogg_open(demux_plugin_t *this_gen, |