From 36591267df06370105922e368505ea5cc8512882 Mon Sep 17 00:00:00 2001 From: Lorenzo Desole Date: Fri, 2 Jan 2009 20:49:43 +0100 Subject: ff_audio_decode_data() doesn't always return if the stream is closed or playback stopped. --- src/combined/ffmpeg/ff_audio_decoder.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src') diff --git a/src/combined/ffmpeg/ff_audio_decoder.c b/src/combined/ffmpeg/ff_audio_decoder.c index e0d294113..2a6c04dd3 100644 --- a/src/combined/ffmpeg/ff_audio_decoder.c +++ b/src/combined/ffmpeg/ff_audio_decoder.c @@ -367,6 +367,11 @@ static void ff_audio_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) /* dispatch the decoded audio */ out = 0; while (out < decode_buffer_size) { + int stream_status = xine_get_status(this->stream); + + if (stream_status == XINE_STATUS_QUIT || stream_status == XINE_STATUS_STOP) + return; + audio_buffer = this->stream->audio_out->get_buffer (this->stream->audio_out); if (audio_buffer->mem_size == 0) { -- cgit v1.2.3