@ -1204,11 +1204,13 @@ static av_cold void aac_static_table_init(void)
for ( unsigned i = 0 , offset = 0 ; i < 11 ; i + + ) {
vlc_spectral [ i ] . table = & vlc_buf [ offset ] ;
vlc_spectral [ i ] . table_allocated = FF_ARRAY_ELEMS ( vlc_buf ) - offset ;
init_vlc ( & vlc_spectral [ i ] , 8 , ff_aac_spectral_sizes [ i ] ,
ff_aac_spectral_bits [ i ] , sizeof ( ff_aac_spectral_bits [ i ] [ 0 ] ) ,
sizeof ( ff_aac_spectral_bits [ i ] [ 0 ] ) ,
ff_aac_spectral_codes [ i ] , sizeof ( ff_aac_spectral_codes [ i ] [ 0 ] ) ,
sizeof ( ff_aac_spectral_codes [ i ] [ 0 ] ) ,
ff_init_vlc_sparse ( & vlc_spectral [ i ] , 8 , ff_aac_spectral_sizes [ i ] ,
ff_aac_spectral_bits [ i ] , sizeof ( ff_aac_spectral_bits [ i ] [ 0 ] ) ,
sizeof ( ff_aac_spectral_bits [ i ] [ 0 ] ) ,
ff_aac_spectral_codes [ i ] , sizeof ( ff_aac_spectral_codes [ i ] [ 0 ] ) ,
sizeof ( ff_aac_spectral_codes [ i ] [ 0 ] ) ,
ff_aac_codebook_vector_idx [ i ] , sizeof ( ff_aac_codebook_vector_idx [ i ] [ 0 ] ) ,
sizeof ( ff_aac_codebook_vector_idx [ i ] [ 0 ] ) ,
INIT_VLC_STATIC_OVERLONG ) ;
offset + = vlc_spectral [ i ] . table_size ;
}
@ -1796,7 +1798,6 @@ static int decode_spectrum_and_dequant(AACContext *ac, INTFLOAT coef[1024],
# if !USE_FIXED
const float * vq = ff_aac_codebook_vector_vals [ cbt_m1 ] ;
# endif /* !USE_FIXED */
const uint16_t * cb_vector_idx = ff_aac_codebook_vector_idx [ cbt_m1 ] ;
VLC_TYPE ( * vlc_tab ) [ 2 ] = vlc_spectral [ cbt_m1 ] . table ;
OPEN_READER ( re , gb ) ;
@ -1812,7 +1813,7 @@ static int decode_spectrum_and_dequant(AACContext *ac, INTFLOAT coef[1024],
UPDATE_CACHE ( re , gb ) ;
GET_VLC ( code , re , gb , vlc_tab , 8 , 2 ) ;
cb_idx = cb_vector_idx [ c ode ] ;
cb_idx = code ;
# if USE_FIXED
cf = DEC_SQUAD ( cf , cb_idx ) ;
# else
@ -1835,7 +1836,7 @@ static int decode_spectrum_and_dequant(AACContext *ac, INTFLOAT coef[1024],
UPDATE_CACHE ( re , gb ) ;
GET_VLC ( code , re , gb , vlc_tab , 8 , 2 ) ;
cb_idx = cb_vector_idx [ c ode ] ;
cb_idx = code ;
nnz = cb_idx > > 8 & 15 ;
bits = nnz ? GET_CACHE ( re , gb ) : 0 ;
LAST_SKIP_BITS ( re , gb , nnz ) ;
@ -1859,7 +1860,7 @@ static int decode_spectrum_and_dequant(AACContext *ac, INTFLOAT coef[1024],
UPDATE_CACHE ( re , gb ) ;
GET_VLC ( code , re , gb , vlc_tab , 8 , 2 ) ;
cb_idx = cb_vector_idx [ c ode ] ;
cb_idx = code ;
# if USE_FIXED
cf = DEC_SPAIR ( cf , cb_idx ) ;
# else
@ -1883,7 +1884,7 @@ static int decode_spectrum_and_dequant(AACContext *ac, INTFLOAT coef[1024],
UPDATE_CACHE ( re , gb ) ;
GET_VLC ( code , re , gb , vlc_tab , 8 , 2 ) ;
cb_idx = cb_vector_idx [ c ode ] ;
cb_idx = code ;
nnz = cb_idx > > 8 & 15 ;
sign = nnz ? SHOW_UBITS ( re , gb , nnz ) < < ( cb_idx > > 12 ) : 0 ;
LAST_SKIP_BITS ( re , gb , nnz ) ;
@ -1916,14 +1917,14 @@ static int decode_spectrum_and_dequant(AACContext *ac, INTFLOAT coef[1024],
UPDATE_CACHE ( re , gb ) ;
GET_VLC ( code , re , gb , vlc_tab , 8 , 2 ) ;
cb_idx = code ;
if ( ! code ) {
if ( cb_idx = = 0x0000 ) {
* icf + + = 0 ;
* icf + + = 0 ;
continue ;
}
cb_idx = cb_vector_idx [ code ] ;
nnz = cb_idx > > 12 ;
nzt = cb_idx > > 8 ;
bits = SHOW_UBITS ( re , gb , nnz ) < < ( 32 - nnz ) ;