diff options
author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2009-02-09 22:09:28 -0200 |
---|---|---|
committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2009-02-09 22:09:28 -0200 |
commit | 8f9a6421c30167b2bf314d512ae70b27d0167bb1 (patch) | |
tree | ed5f8b2c71ef01d4df40c8fb2f5b6b9deda2b612 /src/xine-engine/audio_decoder.c | |
parent | b69cc6330e66260238abf75164f18db17337ba20 (diff) | |
download | xine-lib-8f9a6421c30167b2bf314d512ae70b27d0167bb1.tar.gz xine-lib-8f9a6421c30167b2bf314d512ae70b27d0167bb1.tar.bz2 |
Fix race conditions in gapless_switch (ref. kde bug #180339)
Diffstat (limited to 'src/xine-engine/audio_decoder.c')
-rw-r--r-- | src/xine-engine/audio_decoder.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/xine-engine/audio_decoder.c b/src/xine-engine/audio_decoder.c index 5476262d9..855dee372 100644 --- a/src/xine-engine/audio_decoder.c +++ b/src/xine-engine/audio_decoder.c @@ -89,16 +89,18 @@ static void *audio_decoder_loop (void *stream_gen) { if (stream->audio_decoder_plugin) { lprintf ("close old decoder\n"); - + + stream->keep_ao_driver_open = !!(buf->decoder_flags & BUF_FLAG_GAPLESS_SW); _x_free_audio_decoder (stream, stream->audio_decoder_plugin); stream->audio_decoder_plugin = NULL; stream->audio_track_map_entries = 0; stream->audio_type = 0; + stream->keep_ao_driver_open = 0; } running_ticket->release(running_ticket, 0); - if( !stream->gapless_switch ) + if( !(buf->decoder_flags & BUF_FLAG_GAPLESS_SW) ) stream->metronom->handle_audio_discontinuity (stream->metronom, DISC_STREAMSTART, 0); buftype_unknown = 0; |