From 55b6fd2f0c9b49f980d669e49dc6e04cbf4a769a Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sun, 4 Jan 2009 14:55:02 +0100 Subject: player_thread: fix cross-fading duplicate chunk bug When the decoder of the new song is not fast enough, the player thread has to wait for it for a moment. However the variable "nextChunk" was reset to -1 during that, making the next loop iteration assume that cross-fading has not begun yet. This patch overwrites it with "0" while waiting. --- NEWS | 1 + src/player_thread.c | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/NEWS b/NEWS index 4c4cd002d..1b672285d 100644 --- a/NEWS +++ b/NEWS @@ -12,6 +12,7 @@ ver 0.15 - (200?/??/??) * failure to read the state file is non-fatal * fix minor memory leak in decoder_tag() * added Icy-Metadata support +* fix cross-fading bug: it used to play some chunks of the new song twice ver 0.14 (2008/12/25) * audio outputs: diff --git a/src/player_thread.c b/src/player_thread.c index 55a3132bb..acaf7e123 100644 --- a/src/player_thread.c +++ b/src/player_thread.c @@ -451,6 +451,14 @@ static void do_play(void) music_pipe_set_lazy(false); notify_signal(&dc.notify); notify_wait(&pc.notify); + + /* set nextChunk to a + non-negative value + so the next + iteration doesn't + assume crossfading + hasn't begun yet */ + nextChunk = 0; continue; } } -- cgit v1.2.3