diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/player_thread.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/player_thread.c b/src/player_thread.c index 761e0fba0..6f0828f93 100644 --- a/src/player_thread.c +++ b/src/player_thread.c @@ -217,8 +217,14 @@ static void decodeParent(void) } if (decodeWaitedOn) { - if(dc.state!=DECODE_STATE_START && - dc.error==DECODE_ERROR_NOERROR) { + if (dc.error != DECODE_ERROR_NOERROR) { + /* the decoder failed */ + assert(dc.next_song == NULL || dc.next_song->url != NULL); + pc.errored_song = dc.next_song; + pc.error = PLAYER_ERROR_FILE; + break; + } + else if (dc.state != DECODE_STATE_START) { /* the decoder is ready and ok */ decodeWaitedOn = 0; if(openAudioDevice(&(ob.audioFormat))<0) { @@ -242,13 +248,6 @@ static void decodeParent(void) pc.channels = dc.audioFormat.channels; sizeToTime = audioFormatSizeToTime(&ob.audioFormat); } - else if(dc.state!=DECODE_STATE_START) { - /* the decoder failed */ - assert(dc.next_song == NULL || dc.next_song->url != NULL); - pc.errored_song = dc.next_song; - pc.error = PLAYER_ERROR_FILE; - break; - } else { /* the decoder is not yet ready; wait some more */ |