diff options
Diffstat (limited to 'src/libfaad/rvlc.c')
-rw-r--r-- | src/libfaad/rvlc.c | 41 |
1 files changed, 20 insertions, 21 deletions
diff --git a/src/libfaad/rvlc.c b/src/libfaad/rvlc.c index 70dcf7c29..59034b6df 100644 --- a/src/libfaad/rvlc.c +++ b/src/libfaad/rvlc.c @@ -1,6 +1,6 @@ /* -** FAAD - Freeware Advanced Audio Decoder -** Copyright (C) 2002 M. Bakker +** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding +** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by @@ -16,7 +16,13 @@ ** along with this program; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ** -** $Id: rvlc.c,v 1.2 2003/04/12 14:58:47 miguelfreitas Exp $ +** Any non-GPL usage of this software or parts of this software is strictly +** forbidden. +** +** Commercial non-GPL licensing of this software is possible. +** For more info contact Ahead Software through Mpeg4AAClicense@nero.com. +** +** $Id: rvlc.c,v 1.3 2003/12/30 02:00:10 miguelfreitas Exp $ **/ /* RVLC scalefactor decoding @@ -52,19 +58,19 @@ uint8_t rvlc_scale_factor_data(ic_stream *ics, bitfile *ld) ics->sf_concealment = faad_get1bit(ld DEBUGVAR(1,149,"rvlc_scale_factor_data(): sf_concealment")); - ics->rev_global_gain = faad_getbits(ld, 8 + ics->rev_global_gain = (uint8_t)faad_getbits(ld, 8 DEBUGVAR(1,150,"rvlc_scale_factor_data(): rev_global_gain")); if (ics->window_sequence == EIGHT_SHORT_SEQUENCE) bits = 11; /* the number of bits used for the huffman codewords */ - ics->length_of_rvlc_sf = faad_getbits(ld, bits + ics->length_of_rvlc_sf = (uint16_t)faad_getbits(ld, bits DEBUGVAR(1,151,"rvlc_scale_factor_data(): length_of_rvlc_sf")); if (ics->noise_used) { - ics->dpcm_noise_nrg = faad_getbits(ld, 9 + ics->dpcm_noise_nrg = (uint16_t)faad_getbits(ld, 9 DEBUGVAR(1,152,"rvlc_scale_factor_data(): dpcm_noise_nrg")); ics->length_of_rvlc_sf -= 9; @@ -75,13 +81,13 @@ uint8_t rvlc_scale_factor_data(ic_stream *ics, bitfile *ld) if (ics->sf_escapes_present) { - ics->length_of_rvlc_escapes = faad_getbits(ld, 8 + ics->length_of_rvlc_escapes = (uint8_t)faad_getbits(ld, 8 DEBUGVAR(1,154,"rvlc_scale_factor_data(): length_of_rvlc_escapes")); } if (ics->noise_used) { - ics->dpcm_noise_last_position = faad_getbits(ld, 9 + ics->dpcm_noise_last_position = (uint16_t)faad_getbits(ld, 9 DEBUGVAR(1,155,"rvlc_scale_factor_data(): dpcm_noise_last_position")); } @@ -130,8 +136,8 @@ uint8_t rvlc_decode_scale_factors(ic_stream *ics, bitfile *ld) // &ld_rvlc_esc_rev, intensity_used); - if (rvlc_esc_buffer) free(rvlc_esc_buffer); - if (rvlc_sf_buffer) free(rvlc_sf_buffer); + if (rvlc_esc_buffer) faad_free(rvlc_esc_buffer); + if (rvlc_sf_buffer) faad_free(rvlc_sf_buffer); if (ics->length_of_rvlc_sf > 0) faad_endbits(&ld_rvlc_sf); @@ -198,8 +204,6 @@ static uint8_t rvlc_decode_sf_forward(ic_stream *ics, bitfile *ld_sf, bitfile *l ics->scale_factors[g][sfb] = noise_energy; break; - case BOOKSCL: /* invalid books */ - return 3; default: /* spectral books */ /* decode scale factor */ @@ -279,9 +283,8 @@ static uint8_t rvlc_decode_sf_reverse(ic_stream *ics, bitfile *ld_sf, bitfile *l t = rvlc_huffman_sf(ld_sf, ld_esc, -1); is_position -= t; - ics->scale_factors[g][sfb] = is_position; + ics->scale_factors[g][sfb] = (uint8_t)is_position; } - break; case NOISE_HCB: /* noise books */ @@ -295,11 +298,8 @@ static uint8_t rvlc_decode_sf_reverse(ic_stream *ics, bitfile *ld_sf, bitfile *l noise_energy -= t; } - ics->scale_factors[g][sfb] = noise_energy; - + ics->scale_factors[g][sfb] = (uint8_t)noise_energy; break; - case BOOKSCL: /* invalid books */ - return 3; default: /* spectral books */ if (sf_pcm_flag || (sfb == 0)) @@ -313,11 +313,10 @@ static uint8_t rvlc_decode_sf_reverse(ic_stream *ics, bitfile *ld_sf, bitfile *l scale_factor -= t; } - ics->scale_factors[g][sfb] = scale_factor; - if (scale_factor < 0) return 4; + ics->scale_factors[g][sfb] = (uint8_t)scale_factor; break; } #ifdef PRINT_RVLC @@ -509,4 +508,4 @@ static int8_t rvlc_huffman_esc(bitfile *ld, return h->index; } -#endif +#endif
\ No newline at end of file |