summaryrefslogtreecommitdiff
path: root/apps/codecs/libalac/alac.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/libalac/alac.c')
-rw-r--r--apps/codecs/libalac/alac.c33
1 files changed, 27 insertions, 6 deletions
diff --git a/apps/codecs/libalac/alac.c b/apps/codecs/libalac/alac.c
index 22d04d2def..638ca93c16 100644
--- a/apps/codecs/libalac/alac.c
+++ b/apps/codecs/libalac/alac.c
@@ -105,7 +105,7 @@ void alac_set_info(alac_file *alac, char *inputbuffer)
105/* stream reading */ 105/* stream reading */
106 106
107/* supports reading 1 to 16 bits, in big endian format */ 107/* supports reading 1 to 16 bits, in big endian format */
108static uint32_t readbits_16(alac_file *alac, int bits) 108static inline uint32_t readbits_16(alac_file *alac, int bits)
109{ 109{
110 uint32_t result; 110 uint32_t result;
111 int new_accumulator; 111 int new_accumulator;
@@ -137,7 +137,7 @@ static uint32_t readbits_16(alac_file *alac, int bits)
137} 137}
138 138
139/* supports reading 1 to 32 bits, in big endian format */ 139/* supports reading 1 to 32 bits, in big endian format */
140static uint32_t readbits(alac_file *alac, int bits) 140static inline uint32_t readbits(alac_file *alac, int bits)
141{ 141{
142 int32_t result = 0; 142 int32_t result = 0;
143 143
@@ -153,7 +153,7 @@ static uint32_t readbits(alac_file *alac, int bits)
153} 153}
154 154
155/* reads a single bit */ 155/* reads a single bit */
156static int readbit(alac_file *alac) 156static inline int readbit(alac_file *alac)
157{ 157{
158 int result; 158 int result;
159 int new_accumulator; 159 int new_accumulator;
@@ -173,7 +173,7 @@ static int readbit(alac_file *alac)
173 return result; 173 return result;
174} 174}
175 175
176static void unreadbits(alac_file *alac, int bits) 176static inline void unreadbits(alac_file *alac, int bits)
177{ 177{
178 int new_accumulator = (alac->input_buffer_bitaccumulator - bits); 178 int new_accumulator = (alac->input_buffer_bitaccumulator - bits);
179 179
@@ -187,7 +187,7 @@ static void unreadbits(alac_file *alac, int bits)
187/* hideously inefficient. could use a bitmask search, 187/* hideously inefficient. could use a bitmask search,
188 * alternatively bsr on x86, 188 * alternatively bsr on x86,
189 */ 189 */
190static int count_leading_zeros(int32_t input) 190static inline int count_leading_zeros(int32_t input)
191{ 191{
192 int i = 0; 192 int i = 0;
193 while (!(0x80000000 & input) && i < 32) 193 while (!(0x80000000 & input) && i < 32)
@@ -206,7 +206,16 @@ void basterdised_rice_decompress(alac_file *alac,
206 int rice_kmodifier, /* arg424->d */ 206 int rice_kmodifier, /* arg424->d */
207 int rice_historymult, /* arg424->c */ 207 int rice_historymult, /* arg424->c */
208 int rice_kmodifier_mask /* arg424->e */ 208 int rice_kmodifier_mask /* arg424->e */
209 ) 209 ) ICODE_ATTR;
210void basterdised_rice_decompress(alac_file *alac,
211 int32_t *output_buffer,
212 int output_size,
213 int readsamplesize, /* arg_10 */
214 int rice_initialhistory, /* arg424->b */
215 int rice_kmodifier, /* arg424->d */
216 int rice_historymult, /* arg424->c */
217 int rice_kmodifier_mask /* arg424->e */
218 )
210{ 219{
211 int output_count; 220 int output_count;
212 unsigned int history = rice_initialhistory; 221 unsigned int history = rice_initialhistory;
@@ -344,6 +353,13 @@ static void predictor_decompress_fir_adapt(int32_t *error_buffer,
344 int readsamplesize, 353 int readsamplesize,
345 int16_t *predictor_coef_table, 354 int16_t *predictor_coef_table,
346 int predictor_coef_num, 355 int predictor_coef_num,
356 int predictor_quantitization) ICODE_ATTR;
357static void predictor_decompress_fir_adapt(int32_t *error_buffer,
358 int32_t *buffer_out,
359 int output_size,
360 int readsamplesize,
361 int16_t *predictor_coef_table,
362 int predictor_coef_num,
347 int predictor_quantitization) 363 int predictor_quantitization)
348{ 364{
349 int i; 365 int i;
@@ -609,6 +625,11 @@ void deinterlace_16(int32_t* buffer0,
609 int32_t* buffer1, 625 int32_t* buffer1,
610 int numsamples, 626 int numsamples,
611 uint8_t interlacing_shift, 627 uint8_t interlacing_shift,
628 uint8_t interlacing_leftweight) ICODE_ATTR;
629void deinterlace_16(int32_t* buffer0,
630 int32_t* buffer1,
631 int numsamples,
632 uint8_t interlacing_shift,
612 uint8_t interlacing_leftweight) 633 uint8_t interlacing_leftweight)
613{ 634{
614 int i; 635 int i;