[FFmpeg-cvslog] AAC encoder: Fixed a rounding bug in psy's channel bitrate computation.

Claudio Freire git at videolan.org
Sun May 5 02:01:58 CEST 2013


ffmpeg | branch: master | Claudio Freire <klaussfreire at gmail.com> | Sat May  4 18:35:49 2013 -0300| [c545876d1bcf0f91ab7a2b73a7e9c19057e1a5bd] | committer: Michael Niedermayer

AAC encoder: Fixed a rounding bug in psy's channel bitrate computation.

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c545876d1bcf0f91ab7a2b73a7e9c19057e1a5bd
---

 libavcodec/aacpsy.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/aacpsy.c b/libavcodec/aacpsy.c
index 4d4fb54..51c669a 100644
--- a/libavcodec/aacpsy.c
+++ b/libavcodec/aacpsy.c
@@ -316,7 +316,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;



More information about the ffmpeg-cvslog mailing list