diff --git a/libavcodec/ra288.c b/libavcodec/ra288.c index 9445e7088e..f2b97cca97 100644 --- a/libavcodec/ra288.c +++ b/libavcodec/ra288.c @@ -96,14 +96,14 @@ static void decode(RA288Context *ractx, float gain, int cb_coef) for (i=0; i < 5; i++) 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 */ 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); }