aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mp3_decode.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/mp3_decode.c b/src/mp3_decode.c
index d169c1394..4e50559ff 100644
--- a/src/mp3_decode.c
+++ b/src/mp3_decode.c
@@ -501,12 +501,13 @@ int mp3Read(mp3DecodeData * data, Buffer * cb, DecoderControl * dc) {
}
}
- if(data->muteFrame) {
- while((ret=decodeNextFrameHeader(data))==DECODE_CONT ||
+ while((ret=decodeNextFrameHeader(data))==DECODE_CONT ||
+ ret==DECODE_SKIP);
+ if(ret==DECODE_OK && !data->muteFrame) {
+ while((ret=decodeNextFrame(data))==DECODE_CONT ||
ret==DECODE_SKIP);
}
- else while((ret=decodeNextFrame(data))==DECODE_CONT ||
- ret==DECODE_SKIP);
+ if(ret==DECODE_SKIP) data->muteFrame = 1;
return ret;
}