From 4c09aeb5a1ac7dbf80af680c18f4e36d4776dc8c Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 7 Jan 2011 22:51:50 +0100 Subject: player_thread: fix assertion failure due to early seek Until the decoder plugin has called decoder_initialized(), the player may not submit seek commands. This however could occur with a slow decoder and a CUE file with a virtual song offset. This patch adds another check. --- src/player_thread.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/player_thread.c b/src/player_thread.c index cdcff3f92..776d6667f 100644 --- a/src/player_thread.c +++ b/src/player_thread.c @@ -869,6 +869,10 @@ static void do_play(struct decoder_control *dc) /* seek to the beginning of the range */ const struct song *song = decoder_current_song(dc); if (song != NULL && song->start_ms > 0 && + /* we must not send a seek command until + the decoder is initialized + completely */ + !player.decoder_starting && !dc_seek(dc, song->start_ms / 1000.0)) player_dc_stop(&player); -- cgit v1.2.3