diff options
Diffstat (limited to 'src/decode.c')
-rw-r--r-- | src/decode.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/decode.c b/src/decode.c index c990edc9e..49babb31f 100644 --- a/src/decode.c +++ b/src/decode.c @@ -238,9 +238,9 @@ void decodeStart(PlayerControl * pc, OutputBuffer * cb, DecoderControl * dc) { 0 == strcmp(inStream.mime, "audio/mpeg"))) { ret = mp3_decode(cb,dc,&inStream); + break; } else ret = DECODE_ERROR_UNKTYPE; - break; #endif case DECODE_TYPE_FILE: #ifdef HAVE_MAD @@ -285,10 +285,11 @@ void decodeStart(PlayerControl * pc, OutputBuffer * cb, DecoderControl * dc) { default: ret = DECODE_ERROR_UNKTYPE; } - if(ret<0) { + if(ret<0 || ret == DECODE_ERROR_UNKTYPE) { strncpy(pc->erroredFile, dc->file, MAXPATHLEN); pc->erroredFile[MAXPATHLEN] = '\0'; if(ret != DECODE_ERROR_UNKTYPE) dc->error = DECODE_ERROR_FILE; + else closeInputStream(&inStream); dc->start = 0; dc->stop = 0; dc->state = DECODE_STATE_STOP; |