summaryrefslogtreecommitdiff
path: root/src/demuxers/demux_ogg.c
diff options
context:
space:
mode:
authorSiggi Langauf <siggi@users.sourceforge.net>2002-05-21 00:12:31 +0000
committerSiggi Langauf <siggi@users.sourceforge.net>2002-05-21 00:12:31 +0000
commit3a1cff5f8ea76ca1caab68df8fe64cc17848587f (patch)
tree1486cd5eaa8471d15ea5c4c988ffce5b39ec5f68 /src/demuxers/demux_ogg.c
parentf21031711ce3524cc9480fedf3e6103df831ed28 (diff)
downloadxine-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.c17
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,