summaryrefslogtreecommitdiff
path: root/src/xine-engine/audio_decoder.c
diff options
context:
space:
mode:
authorMiguel Freitas <miguelfreitas@users.sourceforge.net>2009-02-09 22:09:28 -0200
committerMiguel Freitas <miguelfreitas@users.sourceforge.net>2009-02-09 22:09:28 -0200
commit8f9a6421c30167b2bf314d512ae70b27d0167bb1 (patch)
treeed5f8b2c71ef01d4df40c8fb2f5b6b9deda2b612 /src/xine-engine/audio_decoder.c
parentb69cc6330e66260238abf75164f18db17337ba20 (diff)
downloadxine-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.c6
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;