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

Reply via email to