diff options
author | Thibaut Mattern <tmattern@users.sourceforge.net> | 2002-05-21 00:14:33 +0000 |
---|---|---|
committer | Thibaut Mattern <tmattern@users.sourceforge.net> | 2002-05-21 00:14:33 +0000 |
commit | 3356ed2344e21f913e9a49d631d0c1c714e87aa7 (patch) | |
tree | 9c7d56117e031a1107d32382651baf3fa33ce997 | |
parent | 3a1cff5f8ea76ca1caab68df8fe64cc17848587f (diff) | |
download | xine-lib-3356ed2344e21f913e9a49d631d0c1c714e87aa7.tar.gz xine-lib-3356ed2344e21f913e9a49d631d0c1c714e87aa7.tar.bz2 |
play() and seek() return now the status
CVS patchset: 1915
CVS date: 2002/05/21 00:14:33
-rw-r--r-- | src/demuxers/demux_elem.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/demuxers/demux_elem.c b/src/demuxers/demux_elem.c index aafeb33cc..107a20ecc 100644 --- a/src/demuxers/demux_elem.c +++ b/src/demuxers/demux_elem.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_elem.c,v 1.42 2002/05/19 12:27:36 esnel Exp $ + * $Id: demux_elem.c,v 1.43 2002/05/21 00:14:33 tmattern Exp $ * * demultiplexer for elementary mpeg streams * @@ -206,7 +206,7 @@ static int demux_mpeg_elem_get_status (demux_plugin_t *this_gen) { /* * */ -static void demux_mpeg_elem_start (demux_plugin_t *this_gen, +static int demux_mpeg_elem_start (demux_plugin_t *this_gen, fifo_buffer_t *video_fifo, fifo_buffer_t *audio_fifo, off_t start_pos, int start_time) { @@ -214,6 +214,7 @@ static void demux_mpeg_elem_start (demux_plugin_t *this_gen, demux_mpeg_elem_t *this = (demux_mpeg_elem_t *) this_gen; buf_element_t *buf; int err; + int status; pthread_mutex_lock( &this->mutex ); @@ -274,14 +275,19 @@ static void demux_mpeg_elem_start (demux_plugin_t *this_gen, abort(); } } + /* 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; } -static void demux_mpeg_elem_seek (demux_plugin_t *this_gen, +static int demux_mpeg_elem_seek (demux_plugin_t *this_gen, off_t start_pos, int start_time) { demux_mpeg_elem_t *this = (demux_mpeg_elem_t *) this_gen; - demux_mpeg_elem_start (this_gen, this->video_fifo, this->audio_fifo, + return demux_mpeg_elem_start (this_gen, this->video_fifo, this->audio_fifo, start_pos, start_time); } |