aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-03-10 18:04:09 +0100
committerMax Kellermann <max@duempel.org>2009-03-10 18:04:09 +0100
commit92d74d4a78783f47c25dbea29bb361deee268cd4 (patch)
treed16c5b9f8c55f751d026796eb554ac04760abaae /src
parentc6a43b691f88d724420961e0a8074fcb0882f593 (diff)
downloadmpd-92d74d4a78783f47c25dbea29bb361deee268cd4.tar.gz
mpd-92d74d4a78783f47c25dbea29bb361deee268cd4.tar.xz
mpd-92d74d4a78783f47c25dbea29bb361deee268cd4.zip
player_thread: finish failed seek command
When seeking into a new song, and the decoder for the new song fails to start up, MPD forgot to send the "command_finished" signal to the main thread.
Diffstat (limited to '')
-rw-r--r--src/player_thread.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/player_thread.c b/src/player_thread.c
index bc10793a6..fc4623c3f 100644
--- a/src/player_thread.c
+++ b/src/player_thread.c
@@ -226,6 +226,8 @@ static bool player_seek_decoder(struct player *player)
double where;
bool ret;
+ assert(pc.next_song != NULL);
+
if (decoder_current_song() != pc.next_song) {
player_dc_stop(player);
@@ -234,8 +236,10 @@ static bool player_seek_decoder(struct player *player)
dc_start_async(pc.next_song);
ret = player_wait_for_decoder(player);
- if (!ret)
+ if (!ret) {
+ player_command_finished();
return false;
+ }
} else {
pc.next_song = NULL;
player->queued = false;