aacenc: Fix a rounding bug in aacpsy channel bitrate computation
authorClaudio Freire <klaussfreire@gmail.com>
Sat, 4 May 2013 21:35:49 +0000 (18:35 -0300)
committerMartin Storsjö <martin@martin.st>
Tue, 14 May 2013 09:42:03 +0000 (12:42 +0300)
Signed-off-by: Martin Storsjö <martin@martin.st>
libavcodec/aacpsy.c

index 6f1ac05..66cf6d5 100644 (file)
@@ -312,7 +312,7 @@ static av_cold int psy_3gpp_init(FFPsyContext *ctx) {
         AacPsyCoeffs *coeffs = pctx->psy_coef[j];
         const uint8_t *band_sizes = ctx->bands[j];
         float line_to_frequency = ctx->avctx->sample_rate / (j ? 256.f : 2048.0f);
-        float avg_chan_bits = chan_bitrate / ctx->avctx->sample_rate * (j ? 128.0f : 1024.0f);
+        float avg_chan_bits = chan_bitrate * (j ? 128.0f : 1024.0f) / ctx->avctx->sample_rate;
         /* reference encoder uses 2.4% here instead of 60% like the spec says */
         float bark_pe = 0.024f * PSY_3GPP_BITS_TO_PE(avg_chan_bits) / num_bark;
         float en_spread_low = j ? PSY_3GPP_EN_SPREAD_LOW_S : PSY_3GPP_EN_SPREAD_LOW_L;