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.
This commit is contained in:
parent
af892e7e80
commit
4c09aeb5a1
1
NEWS
1
NEWS
|
@ -8,6 +8,7 @@ ver 0.16.1 (2010/??/??)
|
|||
* output:
|
||||
- solaris: add missing parameter to open_cloexec() cal
|
||||
- osx: fix up audio format first, then apply it to device
|
||||
* player_thread: fix assertion failure due to early seek
|
||||
|
||||
|
||||
ver 0.16 (2010/12/11)
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue