diff options
author | Max Kellermann <max@duempel.org> | 2009-01-04 14:55:02 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-01-04 14:55:02 +0100 |
commit | 55b6fd2f0c9b49f980d669e49dc6e04cbf4a769a (patch) | |
tree | 7d9e1d48fc113eeaab1d4eda3092ac83db78a3aa | |
parent | 96c18e7d159d5b4f38642982ed0b370f15b385e1 (diff) | |
download | mpd-55b6fd2f0c9b49f980d669e49dc6e04cbf4a769a.tar.gz mpd-55b6fd2f0c9b49f980d669e49dc6e04cbf4a769a.tar.xz mpd-55b6fd2f0c9b49f980d669e49dc6e04cbf4a769a.zip |
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.
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | src/player_thread.c | 8 |
2 files changed, 9 insertions, 0 deletions
@@ -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; } } |