From d3ef4de1c04cb6a18ae19ffa40ec4feadaf21042 Mon Sep 17 00:00:00 2001 From: Mike Melanson Date: Wed, 23 Oct 2002 04:58:15 +0000 Subject: calling _stop() within _dispose() solves a lot of problems CVS patchset: 2956 CVS date: 2002/10/23 04:58:15 --- src/demuxers/demux_fli.c | 5 ++++- src/demuxers/demux_qt.c | 10 ++++++---- src/demuxers/demux_roq.c | 5 ++++- src/demuxers/demux_wav.c | 5 +++-- 4 files changed, 17 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/demuxers/demux_fli.c b/src/demuxers/demux_fli.c index 68ad37d61..584a3a706 100644 --- a/src/demuxers/demux_fli.c +++ b/src/demuxers/demux_fli.c @@ -22,7 +22,7 @@ * avoid while programming a FLI decoder, visit: * http://www.pcisys.net/~melanson/codecs/ * - * $Id: demux_fli.c,v 1.17 2002/10/23 03:21:19 tmmm Exp $ + * $Id: demux_fli.c,v 1.18 2002/10/23 04:58:15 tmmm Exp $ */ #ifdef HAVE_CONFIG_H @@ -342,6 +342,9 @@ static void demux_fli_stop (demux_plugin_t *this_gen) { } static void demux_fli_dispose (demux_plugin_t *this) { + + demux_fli_stop(this); + free(this); } diff --git a/src/demuxers/demux_qt.c b/src/demuxers/demux_qt.c index 0e14a0c56..334a837aa 100644 --- a/src/demuxers/demux_qt.c +++ b/src/demuxers/demux_qt.c @@ -30,7 +30,7 @@ * build_frame_table * free_qt_info * - * $Id: demux_qt.c,v 1.97 2002/10/22 05:03:01 tmmm Exp $ + * $Id: demux_qt.c,v 1.98 2002/10/23 04:58:15 tmmm Exp $ * */ @@ -1860,15 +1860,15 @@ static void demux_qt_stop (demux_plugin_t *this_gen) { return; } - this->current_frame = this->last_frame = 0; - this->send_end_buffers = 0; this->status = DEMUX_FINISHED; + xine_demux_flush_engine(this->stream); + pthread_mutex_unlock( &this->mutex ); pthread_join (this->thread, &p); - xine_demux_flush_engine(this->stream); + this->current_frame = this->last_frame = 0; xine_demux_control_end(this->stream, BUF_FLAG_END_USER); } @@ -1876,6 +1876,8 @@ static void demux_qt_stop (demux_plugin_t *this_gen) { static void demux_qt_dispose (demux_plugin_t *this_gen) { demux_qt_t *this = (demux_qt_t *) this_gen; + demux_qt_stop(this_gen); + free_qt_info(this->qt); pthread_mutex_destroy (&this->mutex); free(this); diff --git a/src/demuxers/demux_roq.c b/src/demuxers/demux_roq.c index 0103d3aab..fe3cfb959 100644 --- a/src/demuxers/demux_roq.c +++ b/src/demuxers/demux_roq.c @@ -21,7 +21,7 @@ * For more information regarding the RoQ file format, visit: * http://www.csse.monash.edu.au/~timf/ * - * $Id: demux_roq.c,v 1.21 2002/10/23 02:55:01 tmmm Exp $ + * $Id: demux_roq.c,v 1.22 2002/10/23 04:58:16 tmmm Exp $ */ #ifdef HAVE_CONFIG_H @@ -458,6 +458,9 @@ static void demux_roq_stop (demux_plugin_t *this_gen) { } static void demux_roq_dispose (demux_plugin_t *this) { + + demux_roq_stop(this); + free(this); } diff --git a/src/demuxers/demux_wav.c b/src/demuxers/demux_wav.c index 7a70df86d..dc58f5f9a 100644 --- a/src/demuxers/demux_wav.c +++ b/src/demuxers/demux_wav.c @@ -20,7 +20,7 @@ * MS WAV File Demuxer by Mike Melanson (melanson@pcisys.net) * based on WAV specs that are available far and wide * - * $Id: demux_wav.c,v 1.19 2002/10/23 03:46:32 tmmm Exp $ + * $Id: demux_wav.c,v 1.20 2002/10/23 04:58:16 tmmm Exp $ * */ @@ -118,7 +118,6 @@ static int open_wav_file(demux_wav_t *this) { return 0; /* go after the format structure */ - this->input->seek(this->input, WAV_SIGNATURE_SIZE, SEEK_SET); if (this->input->read(this->input, (unsigned char *)&this->wave_size, 4) != 4) return 0; @@ -387,6 +386,8 @@ static void demux_wav_stop (demux_plugin_t *this_gen) { static void demux_wav_dispose (demux_plugin_t *this_gen) { demux_wav_t *this = (demux_wav_t *) this_gen; + demux_wav_stop(this_gen); + pthread_mutex_destroy (&this->mutex); free(this); } -- cgit v1.2.3