From: Thibaut M. <tma...@us...> - 2002-05-21 00:38:04
|
Update of /cvsroot/xine/xine-lib/src/demuxers In directory usw-pr-cvs1:/tmp/cvs-serv18548 Modified Files: demux_asf.c Log Message: start() and seek() return now the status. Index: demux_asf.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/demuxers/demux_asf.c,v retrieving revision 1.38 retrieving revision 1.39 diff -u -r1.38 -r1.39 --- demux_asf.c 13 May 2002 22:20:45 -0000 1.38 +++ demux_asf.c 21 May 2002 00:33:34 -0000 1.39 @@ -1238,7 +1238,7 @@ return (this->thread_running?DEMUX_OK:DEMUX_FINISHED); } -static void demux_asf_start (demux_plugin_t *this_gen, +static int demux_asf_start (demux_plugin_t *this_gen, fifo_buffer_t *video_fifo, fifo_buffer_t *audio_fifo, off_t start_pos, int start_time) { @@ -1246,6 +1246,7 @@ demux_asf_t *this = (demux_asf_t *) this_gen; buf_element_t *buf; int err; + int status; pthread_mutex_lock( &this->mutex ); @@ -1338,7 +1339,12 @@ } } + /* this->status is saved because we can be interrupted between + * pthread_mutex_unlock and return + */ + status = this->status; pthread_mutex_unlock( &this->mutex ); + return status; /* if( !starting && this->status != DEMUX_OK ) { @@ -1349,11 +1355,11 @@ } -static void demux_asf_seek (demux_plugin_t *this_gen, +static int demux_asf_seek (demux_plugin_t *this_gen, off_t start_pos, int start_time) { demux_asf_t *this = (demux_asf_t *) this_gen; - demux_asf_start (this_gen, this->video_fifo, this->audio_fifo, + return demux_asf_start (this_gen, this->video_fifo, this->audio_fifo, start_pos, start_time); } |