Revision 57cc1ad3
libavcodec/aaccoder.c  

110  110 
const float IQ = ff_aac_pow2sf_tab[200 + scale_idx  SCALE_ONE_POS + SCALE_DIV_512]; 
111  111 
const float Q = ff_aac_pow2sf_tab[200  scale_idx + SCALE_ONE_POS  SCALE_DIV_512]; 
112  112 
const float CLIPPED_ESCAPE = 165140.0f*IQ; 
113 
int i, j, k;


113 
int i, j; 

114  114 
float cost = 0; 
115  115 
const int dim = BT_PAIR ? 2 : 4; 
116  116 
int resbits = 0; 
...  ...  
149  149 
curbits = ff_aac_spectral_bits[cb1][curidx]; 
150  150 
vec = &ff_aac_codebook_vectors[cb1][curidx*dim]; 
151  151 
if (BT_UNSIGNED) { 
152 
for (k = 0; k < dim; k++) {


153 
float t = fabsf(in[i+k]);


152 
for (j = 0; j < dim; j++) {


153 
float t = fabsf(in[i+j]);


154  154 
float di; 
155 
if (BT_ESC && vec[k] == 64.0f) { //FIXME: slow


155 
if (BT_ESC && vec[j] == 64.0f) { //FIXME: slow


156  156 
if (t >= CLIPPED_ESCAPE) { 
157  157 
di = t  CLIPPED_ESCAPE; 
158  158 
curbits += 21; 
...  ...  
162  162 
curbits += av_log2(c)*2  4 + 1; 
163  163 
} 
164  164 
} else { 
165 
di = t  vec[k]*IQ;


165 
di = t  vec[j]*IQ;


166  166 
} 
167 
if (vec[k] != 0.0f)


167 
if (vec[j] != 0.0f)


168  168 
curbits++; 
169  169 
rd += di*di; 
170  170 
} 
171  171 
} else { 
172 
for (k = 0; k < dim; k++) {


173 
float di = in[i+k]  vec[k]*IQ;


172 
for (j = 0; j < dim; j++) {


173 
float di = in[i+j]  vec[j]*IQ;


174  174 
rd += di*di; 
175  175 
} 
176  176 
} 
Also available in: Unified diff