|
|
@ -96,14 +96,14 @@ static void decode(RA288Context *ractx, float gain, int cb_coef) |
|
|
|
for (i=0; i < 5; i++) |
|
|
|
for (i=0; i < 5; i++) |
|
|
|
buffer[i] = codetable[cb_coef][i] * sumsum; |
|
|
|
buffer[i] = codetable[cb_coef][i] * sumsum; |
|
|
|
|
|
|
|
|
|
|
|
sum = ff_dot_productf(buffer, buffer, 5) * ((1<<24)/5.); |
|
|
|
sum = ff_dot_productf(buffer, buffer, 5); |
|
|
|
|
|
|
|
|
|
|
|
sum = FFMAX(sum, 1); |
|
|
|
sum = FFMAX(sum, 5. / (1<<24)); |
|
|
|
|
|
|
|
|
|
|
|
/* shift and store */ |
|
|
|
/* shift and store */ |
|
|
|
memmove(gain_block, gain_block + 1, 9 * sizeof(*gain_block)); |
|
|
|
memmove(gain_block, gain_block + 1, 9 * sizeof(*gain_block)); |
|
|
|
|
|
|
|
|
|
|
|
gain_block[9] = 10 * log10(sum) - 32; |
|
|
|
gain_block[9] = 10 * log10(sum) + (10*log10(((1<<24)/5.)) - 32); |
|
|
|
|
|
|
|
|
|
|
|
ff_celp_lp_synthesis_filterf(block, ractx->sp_lpc, buffer, 5, 36); |
|
|
|
ff_celp_lp_synthesis_filterf(block, ractx->sp_lpc, buffer, 5, 36); |
|
|
|
} |
|
|
|
} |
|
|
|