[FFmpeg-cvslog] AAC encoder: Fix rate control on twoloop.

Claudio Freire git at videolan.org
Sun Jun 2 16:55:28 CEST 2013


ffmpeg | branch: release/1.2 | Claudio Freire <klaussfreire at gmail.com> | Sat May  4 18:36:37 2013 -0300| [9af68f8d1f3df12a32574e003e065bc565695b52] | committer: Carl Eugen Hoyos

AAC encoder: Fix rate control on twoloop.

Fixes a case where multichannel bitrate isn't accurately
targetted by psy model alone, never achieving the target bitrate.
Now fixed.

Fixes ticket #2625.

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
Signed-off-by: Carl Eugen Hoyos <cehoyos at ag.or.at>

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

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

diff --git a/libavcodec/aaccoder.c b/libavcodec/aaccoder.c
index 994de28..45fbc2d 100644
--- a/libavcodec/aaccoder.c
+++ b/libavcodec/aaccoder.c
@@ -710,7 +710,7 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx,
                                           const float lambda)
 {
     int start = 0, i, w, w2, g;
-    int destbits = avctx->bit_rate * 1024.0 / avctx->sample_rate / avctx->channels;
+    int destbits = avctx->bit_rate * 1024.0 / avctx->sample_rate / avctx->channels * (lambda / 120.f);
     float dists[128] = { 0 }, uplims[128];
     float maxvals[128];
     int fflag, minscaler;



More information about the ffmpeg-cvslog mailing list