When dc->error!=NOERROR, we do not need to check state!=START. Simplify the checks by moving the error check to the top. ---
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 761e0fb..6f0828f 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 */ ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Musicpd-dev-team mailing list Musicpd-dev-team@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team