From 30bf8f89f40be2ee0eafa61f43e111e5f571f9ad Mon Sep 17 00:00:00 2001 From: "J. Alexander Treuman" Date: Wed, 23 Aug 2006 13:43:23 +0000 Subject: If a frame header decode loses sync, just try again instead of trying to decode a frame (which will automatically decode the next header without allowing us to do some checks on it). git-svn-id: https://svn.musicpd.org/mpd/trunk@4670 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- src/inputPlugins/mp3_plugin.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/inputPlugins/mp3_plugin.c b/src/inputPlugins/mp3_plugin.c index 073cad009..35f822b1e 100644 --- a/src/inputPlugins/mp3_plugin.c +++ b/src/inputPlugins/mp3_plugin.c @@ -629,25 +629,21 @@ static int decodeFirstFrame(mp3DecodeData * data, DecoderControl * dc, struct mad_bitptr ptr; int bitlen; int ret; - int skip; /* stfu gcc */ memset(&xing, 0, sizeof(struct xing)); xing.flags = 0; while (1) { - skip = 0; while ((ret = decodeNextFrameHeader(data, tag, replayGainInfo)) == DECODE_CONT && (!dc || !dc->stop)); - - if (ret == DECODE_SKIP) skip = 1; - else if (ret == DECODE_BREAK || (dc && dc->stop)) return -1; + if (ret == DECODE_BREAK || (dc && dc->stop)) return -1; + if (ret == DECODE_SKIP) continue; while ((ret = decodeNextFrame(data)) == DECODE_CONT && (!dc || !dc->stop)); - if (ret == DECODE_BREAK || (dc && dc->stop)) return -1; - if (!skip && ret == DECODE_OK) break; + if (ret == DECODE_OK) break; } ptr = data->stream.anc_ptr; -- cgit v1.2.3