summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMiguel Freitas <miguelfreitas@users.sourceforge.net>2002-07-09 20:39:26 +0000
committerMiguel Freitas <miguelfreitas@users.sourceforge.net>2002-07-09 20:39:26 +0000
commit40d1cd40878b822aa7fbb7872f43660d2866cb75 (patch)
tree8733f3b4fb3a6e43fc357a35e8d8f2f990bcfe4d /src
parentd2d1bcd82bc0ddbd5534d9db8e9fcc1b479316b6 (diff)
downloadxine-lib-40d1cd40878b822aa7fbb7872f43660d2866cb75.tar.gz
xine-lib-40d1cd40878b822aa7fbb7872f43660d2866cb75.tar.bz2
fix buffer leakage (symptom: xine freezes on exit)
CVS patchset: 2236 CVS date: 2002/07/09 20:39:26
Diffstat (limited to 'src')
-rw-r--r--src/demuxers/demux_qt.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/demuxers/demux_qt.c b/src/demuxers/demux_qt.c
index 4d5243dc3..a43a746f4 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.61 2002/07/08 21:57:42 tmattern Exp $
+ * $Id: demux_qt.c,v 1.62 2002/07/09 20:39:26 miguelfreitas Exp $
*
*/
@@ -1159,6 +1159,7 @@ static void *demux_qt_loop (void *this_gen) {
if (this->input->read(this->input, buf->content, buf->size) !=
buf->size) {
+ buf->free_buffer(buf);
this->status = DEMUX_FINISHED;
break;
}
@@ -1196,6 +1197,7 @@ static void *demux_qt_loop (void *this_gen) {
if (this->input->read(this->input, buf->content, buf->size) !=
buf->size) {
+ buf->free_buffer(buf);
this->status = DEMUX_FINISHED;
break;
}
@@ -1388,7 +1390,9 @@ static int demux_qt_start (demux_plugin_t *this_gen,
buf->decoder_info[2] = this->qt->audio_bits;
buf->decoder_info[3] = this->qt->audio_channels;
this->audio_fifo->put (this->audio_fifo, buf);
- }
+ } else
+ buf->free_buffer(buf);
+
this->status = DEMUX_OK;
this->send_end_buffers = 1;