Reindenting parse_xing, since I need to work on it and it's a mess
git-svn-id: https://svn.musicpd.org/mpd/trunk@4397 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
@@ -423,53 +423,52 @@ enum {
|
|||||||
|
|
||||||
static int parse_xing(struct xing *xing, struct mad_bitptr ptr, unsigned int bitlen)
|
static int parse_xing(struct xing *xing, struct mad_bitptr ptr, unsigned int bitlen)
|
||||||
{
|
{
|
||||||
unsigned long bits;
|
unsigned long bits;
|
||||||
|
|
||||||
if (bitlen < 16) goto fail;
|
if (bitlen < 16) goto fail;
|
||||||
bits = mad_bit_read(&ptr, 16);
|
bits = mad_bit_read(&ptr, 16);
|
||||||
bitlen -= 16;
|
bitlen -= 16;
|
||||||
|
|
||||||
if (bits == XI_MAGIC) {
|
if (bits == XI_MAGIC) {
|
||||||
if (bitlen < 16) goto fail;
|
if (bitlen < 16) goto fail;
|
||||||
if (mad_bit_read(&ptr, 16) != NG_MAGIC) goto fail;
|
if (mad_bit_read(&ptr, 16) != NG_MAGIC) goto fail;
|
||||||
bitlen -= 16;
|
bitlen -= 16;
|
||||||
}
|
}
|
||||||
else if (bits != NG_MAGIC) goto fail;
|
else if (bits != NG_MAGIC) goto fail;
|
||||||
|
|
||||||
if (bitlen < 32) goto fail;
|
if (bitlen < 32) goto fail;
|
||||||
xing->flags = mad_bit_read(&ptr, 32);
|
xing->flags = mad_bit_read(&ptr, 32);
|
||||||
bitlen -= 32;
|
bitlen -= 32;
|
||||||
|
|
||||||
if (xing->flags & XING_FRAMES) {
|
if (xing->flags & XING_FRAMES) {
|
||||||
if (bitlen < 32) goto fail;
|
if (bitlen < 32) goto fail;
|
||||||
xing->frames = mad_bit_read(&ptr, 32);
|
xing->frames = mad_bit_read(&ptr, 32);
|
||||||
bitlen -= 32;
|
bitlen -= 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (xing->flags & XING_BYTES) {
|
if (xing->flags & XING_BYTES) {
|
||||||
if (bitlen < 32) goto fail;
|
if (bitlen < 32) goto fail;
|
||||||
xing->bytes = mad_bit_read(&ptr, 32);
|
xing->bytes = mad_bit_read(&ptr, 32);
|
||||||
bitlen -= 32;
|
bitlen -= 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (xing->flags & XING_TOC) {
|
if (xing->flags & XING_TOC) {
|
||||||
int i;
|
int i;
|
||||||
if (bitlen < 800) goto fail;
|
if (bitlen < 800) goto fail;
|
||||||
for (i = 0; i < 100; ++i) xing->toc[i] = mad_bit_read(&ptr, 8);
|
for (i = 0; i < 100; ++i) xing->toc[i] = mad_bit_read(&ptr, 8);
|
||||||
bitlen -= 800;
|
bitlen -= 800;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (xing->flags & XING_SCALE) {
|
if (xing->flags & XING_SCALE) {
|
||||||
if (bitlen < 32) goto fail;
|
if (bitlen < 32) goto fail;
|
||||||
xing->scale = mad_bit_read(&ptr, 32);
|
xing->scale = mad_bit_read(&ptr, 32);
|
||||||
bitlen -= 32;
|
bitlen -= 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
|
return 1;
|
||||||
fail:
|
fail:
|
||||||
xing->flags = 0;
|
xing->flags = 0;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int decodeFirstFrame(mp3DecodeData * data, DecoderControl * dc,
|
static int decodeFirstFrame(mp3DecodeData * data, DecoderControl * dc,
|
||||||
|
Reference in New Issue
Block a user