From 2afab9c8441685d1ec8f6ef5c9f8c4a163533dfa Mon Sep 17 00:00:00 2001 From: Lorenzo Desole Date: Mon, 9 Feb 2009 22:38:40 +0100 Subject: demux_unstick_ao_loop() reports that xine might be stuck != is stuck Don't give up immediately if demux_unstick_ao_loop() reports that xine might be stuck, because it's not necessarily so. According to my tests, this fixes http://bugs.kde.org/show_bug.cgi?id=180339#c42 and http://bugs.debian.org/514114. This has been tested with Amarok and kde 4.1.x (with phonon) and kaffeine. --- src/combined/ffmpeg/ff_audio_decoder.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/combined') diff --git a/src/combined/ffmpeg/ff_audio_decoder.c b/src/combined/ffmpeg/ff_audio_decoder.c index 140a88f80..24c193b44 100644 --- a/src/combined/ffmpeg/ff_audio_decoder.c +++ b/src/combined/ffmpeg/ff_audio_decoder.c @@ -333,8 +333,10 @@ static void ff_audio_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) while (out < decode_buffer_size) { int stream_status = xine_get_status(this->stream); - if (stream_status == XINE_STATUS_QUIT || stream_status == XINE_STATUS_STOP) + if (stream_status == XINE_STATUS_QUIT || stream_status == XINE_STATUS_STOP) { + this->size = 0; return; + } audio_buffer = this->stream->audio_out->get_buffer (this->stream->audio_out); -- cgit v1.2.3