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
[email protected]
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team