summaryrefslogtreecommitdiff
path: root/src/libfaad/rvlc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libfaad/rvlc.c')
-rw-r--r--src/libfaad/rvlc.c41
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