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; }