decoder/mad: make variables more local
This commit is contained in:
parent
e1e62d97a8
commit
662cc5fe20
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user