summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibaut Mattern <tmattern@users.sourceforge.net>2002-05-21 00:33:34 +0000
committerThibaut Mattern <tmattern@users.sourceforge.net>2002-05-21 00:33:34 +0000
commitcea4729a1df8c1a765c4d9af5c25115cab30a0bb (patch)
tree858904aa927dd2f8a3184722ae1d257b341bbe4d
parent8f69eeec9ea8a11767fa320f5540989f8459b44b (diff)
downloadxine-lib-cea4729a1df8c1a765c4d9af5c25115cab30a0bb.tar.gz
xine-lib-cea4729a1df8c1a765c4d9af5c25115cab30a0bb.tar.bz2
start() and seek() return now the status.
CVS patchset: 1917 CVS date: 2002/05/21 00:33:34
-rw-r--r--src/demuxers/demux_asf.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/demuxers/demux_asf.c b/src/demuxers/demux_asf.c
index 885d20918..43b9ed957 100644
--- a/src/demuxers/demux_asf.c
+++ b/src/demuxers/demux_asf.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_asf.c,v 1.38 2002/05/13 22:20:45 tmattern Exp $
+ * $Id: demux_asf.c,v 1.39 2002/05/21 00:33:34 tmattern Exp $
*
* demultiplexer for asf streams
*
@@ -1238,7 +1238,7 @@ static int demux_asf_get_status (demux_plugin_t *this_gen) {
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 @@ static void demux_asf_start (demux_plugin_t *this_gen,
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 @@ static void demux_asf_start (demux_plugin_t *this_gen,
}
}
+ /* 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_start (demux_plugin_t *this_gen,
}
-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);
}