diff options
author | J. Alexander Treuman <jat@spatialrift.net> | 2006-08-23 13:43:23 +0000 |
---|---|---|
committer | J. Alexander Treuman <jat@spatialrift.net> | 2006-08-23 13:43:23 +0000 |
commit | 30bf8f89f40be2ee0eafa61f43e111e5f571f9ad (patch) | |
tree | 949e8163955907fb6c4dcf8a968247d8479f865d | |
parent | 103dd654f0d9357f9da66593525958476ee26f85 (diff) | |
download | mpd-30bf8f89f40be2ee0eafa61f43e111e5f571f9ad.tar.gz mpd-30bf8f89f40be2ee0eafa61f43e111e5f571f9ad.tar.xz mpd-30bf8f89f40be2ee0eafa61f43e111e5f571f9ad.zip |
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
-rw-r--r-- | src/inputPlugins/mp3_plugin.c | 10 |
1 files 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; |