1
0
Fork 0
forked from len0rd/rockbox

Refactor alac decoder as preparation for upcoming m4a changes. The alac decoder does not need to use get_sample_info() to gather frame size or the number of consumed bytes.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29724 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Andree Buschmann 2011-04-16 19:08:50 +00:00
parent e4dd514e6f
commit 19f9fd0f5f
3 changed files with 15 additions and 16 deletions

View file

@ -1108,10 +1108,14 @@ int alac_decode_frame(alac_file *alac,
{
int channels;
int outputsamples;
int input_buffer_start;
/* setup the stream */
alac->input_buffer = inbuffer;
alac->input_buffer_bitaccumulator = 0;
/* save to gather byte consumption */
input_buffer_start = (int)alac->input_buffer;
channels = readbits(alac, 3);
@ -1127,6 +1131,11 @@ int alac_decode_frame(alac_file *alac,
default: /* Unsupported */
return -1;
}
/* calculate consumed bytes */
alac->bytes_consumed = (int)alac->input_buffer - input_buffer_start;
alac->bytes_consumed += (alac->input_buffer_bitaccumulator>5) ? 2 : 1;
return outputsamples;
}