Revision 4a7d9924 libavcodec/aacsbr.c
libavcodec/aacsbr.c  

1134  1134 
* @param W array of complexvalued samples split into subbands 
1135  1135 
*/ 
1136  1136 
static void sbr_qmf_analysis(DSPContext *dsp, FFTContext *mdct, const float *in, float *x, 
1137 
float z[320], float W[2][32][32][2], 

1138 
float scale) 

1137 
float z[320], float W[2][32][32][2]) 

1139  1138 
{ 
1140  1139 
int i, k; 
1141  1140 
memcpy(W[0], W[1], sizeof(W[0])); 
1142  1141 
memcpy(x , x+1024, (32032)*sizeof(x[0])); 
1143 
if (scale != 1.0f) 

1144 
dsp>vector_fmul_scalar(x+288, in, scale, 1024); 

1145 
else 

1146 
memcpy(x+288, in, 1024*sizeof(*x)); 

1142 
memcpy(x+288, in, 1024*sizeof(x[0])); 

1147  1143 
for (i = 0; i < 32; i++) { // numTimeSlots*RATE = 16*2 as 960 sample frames 
1148  1144 
// are not supported 
1149  1145 
dsp>vector_fmul_reverse(z, sbr_qmf_window_ds, x, 320); 
...  ...  
1722  1718 
/* decode channel */ 
1723  1719 
sbr_qmf_analysis(&ac>dsp, &sbr>mdct_ana, ch ? R : L, sbr>data[ch].analysis_filterbank_samples, 
1724  1720 
(float*)sbr>qmf_filter_scratch, 
1725 
sbr>data[ch].W, 1/(1024 * ac>sf_scale));


1721 
sbr>data[ch].W); 

1726  1722 
sbr_lf_gen(ac, sbr, sbr>X_low, sbr>data[ch].W); 
1727  1723 
if (sbr>start) { 
1728  1724 
sbr_hf_inverse_filter(sbr>alpha0, sbr>alpha1, sbr>X_low, sbr>k[0]); 
Also available in: Unified diff