decoder/mad: make variables more local

This commit is contained in:
Max Kellermann 2014-08-24 20:57:47 +02:00
parent e1e62d97a8
commit 662cc5fe20

View File

@ -96,12 +96,9 @@ mad_fixed_to_24_buffer(int32_t *dest, const struct mad_synth *synth,
unsigned int start, unsigned int end,
unsigned int num_channels)
{
unsigned int i, c;
for (i = start; i < end; ++i) {
for (c = 0; c < num_channels; ++c)
for (unsigned i = start; i < end; ++i)
for (unsigned c = 0; c < num_channels; ++c)
*dest++ = mad_fixed_to_24_sample(synth->pcm.samples[c][i]);
}
}
static bool
@ -254,22 +251,19 @@ static bool
parse_id3_replay_gain_info(ReplayGainInfo &rgi,
struct id3_tag *tag)
{
int i;
char *key;
char *value;
struct id3_frame *frame;
bool found = false;
rgi.Clear();
for (i = 0; (frame = id3_tag_findframe(tag, "TXXX", i)); i++) {
struct id3_frame *frame;
for (unsigned i = 0; (frame = id3_tag_findframe(tag, "TXXX", i)); i++) {
if (frame->nfields < 3)
continue;
key = (char *)
char *const key = (char *)
id3_ucs4_latin1duplicate(id3_field_getstring
(&frame->fields[1]));
value = (char *)
char *const value = (char *)
id3_ucs4_latin1duplicate(id3_field_getstring
(&frame->fields[2]));
@ -302,21 +296,17 @@ gcc_pure
static MixRampInfo
parse_id3_mixramp(struct id3_tag *tag)
{
int i;
char *key;
char *value;
struct id3_frame *frame;
MixRampInfo result;
for (i = 0; (frame = id3_tag_findframe(tag, "TXXX", i)); i++) {
struct id3_frame *frame;
for (unsigned i = 0; (frame = id3_tag_findframe(tag, "TXXX", i)); i++) {
if (frame->nfields < 3)
continue;
key = (char *)
char *const key = (char *)
id3_ucs4_latin1duplicate(id3_field_getstring
(&frame->fields[1]));
value = (char *)
char *const value = (char *)
id3_ucs4_latin1duplicate(id3_field_getstring
(&frame->fields[2]));
@ -338,13 +328,11 @@ inline void
MadDecoder::ParseId3(size_t tagsize, Tag **mpd_tag)
{
#ifdef HAVE_ID3TAG
struct id3_tag *id3_tag = nullptr;
id3_length_t count;
id3_byte_t const *id3_data;
id3_byte_t *allocated = nullptr;
count = stream.bufend - stream.this_frame;
const id3_length_t count = stream.bufend - stream.this_frame;
const id3_byte_t *id3_data;
if (tagsize <= count) {
id3_data = stream.this_frame;
mad_stream_skip(&(stream), tagsize);
@ -363,7 +351,7 @@ MadDecoder::ParseId3(size_t tagsize, Tag **mpd_tag)
id3_data = allocated;
}
id3_tag = id3_tag_parse(id3_data, tagsize);
struct id3_tag *const id3_tag = id3_tag_parse(id3_data, tagsize);
if (id3_tag == nullptr) {
delete[] allocated;
return;
@ -558,17 +546,12 @@ struct lame {
static bool
parse_xing(struct xing *xing, struct mad_bitptr *ptr, int *oldbitlen)
{
unsigned long bits;
int bitlen;
int bitsleft;
int i;
bitlen = *oldbitlen;
int bitlen = *oldbitlen;
if (bitlen < 16)
return false;
bits = mad_bit_read(ptr, 16);
const unsigned long bits = mad_bit_read(ptr, 16);
bitlen -= 16;
if (bits == XI_MAGIC) {
@ -617,7 +600,8 @@ parse_xing(struct xing *xing, struct mad_bitptr *ptr, int *oldbitlen)
if (xing->flags & XING_TOC) {
if (bitlen < 800)
return false;
for (i = 0; i < 100; ++i) xing->toc[i] = mad_bit_read(ptr, 8);
for (unsigned i = 0; i < 100; ++i)
xing->toc[i] = mad_bit_read(ptr, 8);
bitlen -= 800;
}
@ -630,7 +614,7 @@ parse_xing(struct xing *xing, struct mad_bitptr *ptr, int *oldbitlen)
/* Make sure we consume no less than 120 bytes (960 bits) in hopes that
* the LAME tag is found there, and not right after the Xing header */
bitsleft = 960 - ((*oldbitlen) - bitlen);
const int bitsleft = 960 - (*oldbitlen - bitlen);
if (bitsleft < 0)
return false;
else if (bitsleft > 0) {
@ -646,19 +630,12 @@ parse_xing(struct xing *xing, struct mad_bitptr *ptr, int *oldbitlen)
static bool
parse_lame(struct lame *lame, struct mad_bitptr *ptr, int *bitlen)
{
int adj = 0;
int name;
int orig;
int sign;
int gain;
int i;
/* Unlike the xing header, the lame tag has a fixed length. Fail if
* not all 36 bytes (288 bits) are there. */
if (*bitlen < 288)
return false;
for (i = 0; i < 9; i++)
for (unsigned i = 0; i < 9; i++)
lame->encoder[i] = (char)mad_bit_read(ptr, 8);
lame->encoder[9] = '\0';
@ -684,6 +661,7 @@ parse_lame(struct lame *lame, struct mad_bitptr *ptr, int *bitlen)
* it's impossible to make the proper adjustment for 3.95.
* Fortunately, 3.95 was only out for about a day before 3.95.1 was
* released. -- tmz */
int adj = 0;
if (lame->version.major < 3 ||
(lame->version.major == 3 && lame->version.minor < 95))
adj = 6;
@ -694,10 +672,10 @@ parse_lame(struct lame *lame, struct mad_bitptr *ptr, int *bitlen)
FormatDebug(mad_domain, "LAME peak found: %f", lame->peak);
lame->track_gain = 0;
name = mad_bit_read(ptr, 3); /* gain name */
orig = mad_bit_read(ptr, 3); /* gain originator */
sign = mad_bit_read(ptr, 1); /* sign bit */
gain = mad_bit_read(ptr, 9); /* gain*10 */
unsigned name = mad_bit_read(ptr, 3); /* gain name */
unsigned orig = mad_bit_read(ptr, 3); /* gain originator */
unsigned sign = mad_bit_read(ptr, 1); /* sign bit */
unsigned gain = mad_bit_read(ptr, 9); /* gain*10 */
if (gain && name == 1 && orig != 0) {
lame->track_gain = ((sign ? -gain : gain) / 10.0) + adj;
FormatDebug(mad_domain, "LAME track gain found: %f",
@ -785,17 +763,13 @@ MadDecoder::FileSizeToSongLength()
inline bool
MadDecoder::DecodeFirstFrame(Tag **tag)
{
struct xing xing;
struct lame lame;
struct mad_bitptr ptr;
int bitlen;
enum mp3_action ret;
/* stfu gcc */
struct xing xing;
memset(&xing, 0, sizeof(struct xing));
xing.flags = 0;
while (true) {
enum mp3_action ret;
do {
ret = DecodeNextFrameHeader(tag);
} while (ret == DECODE_CONT);
@ -811,8 +785,8 @@ MadDecoder::DecodeFirstFrame(Tag **tag)
if (ret == DECODE_OK) break;
}
ptr = stream.anc_ptr;
bitlen = stream.anc_bitlen;
struct mad_bitptr ptr = stream.anc_ptr;
int bitlen = stream.anc_bitlen;
FileSizeToSongLength();
@ -830,6 +804,7 @@ MadDecoder::DecodeFirstFrame(Tag **tag)
max_frames = xing.frames;
}
struct lame lame;
if (parse_lame(&lame, &ptr, &bitlen)) {
if (gapless_playback && input_stream.IsSeekable()) {
drop_start_samples = lame.encoder_delay +
@ -931,9 +906,7 @@ MadDecoder::UpdateTimerNextFrame()
DecoderCommand
MadDecoder::SendPCM(unsigned i, unsigned pcm_length)
{
unsigned max_samples;
max_samples = sizeof(output_buffer) /
unsigned max_samples = sizeof(output_buffer) /
sizeof(output_buffer[0]) /
MAD_NCHANNELS(&frame.header);
@ -1128,9 +1101,7 @@ static bool
mad_decoder_scan_stream(InputStream &is,
const struct tag_handler *handler, void *handler_ctx)
{
int total_time;
total_time = mad_decoder_total_file_time(is);
const int total_time = mad_decoder_total_file_time(is);
if (total_time < 0)
return false;