[FFmpeg-cvslog] aacenc: use av_clip() instead of av_clip() during quantization

Rostislav Pehlivanov git at videolan.org
Wed Mar 30 02:05:52 CEST 2016


ffmpeg | branch: master | Rostislav Pehlivanov <atomnuker at gmail.com> | Wed Mar 30 00:58:28 2016 +0100| [c0918613a0ecaac6819409c64107583eebc0ccc2] | committer: Rostislav Pehlivanov

aacenc: use av_clip() instead of av_clip() during quantization

Seems like clang might be miscompiling it and causing a signed integer overflow,
making a FATE test fail.
Doesn't seem to affect performance, it only runs on the ESC codebook.

Reviewed-by: Claudio Freire <klaussfreire at gmail.com>
Signed-off-by: Rostislav Pehlivanov <atomnuker at gmail.com>

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

 libavcodec/aacenc_quantization.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/aacenc_quantization.h b/libavcodec/aacenc_quantization.h
index 4250407..106e632 100644
--- a/libavcodec/aacenc_quantization.h
+++ b/libavcodec/aacenc_quantization.h
@@ -141,7 +141,7 @@ static av_always_inline float quantize_and_encode_band_cost_template(
             if (BT_ESC) {
                 for (j = 0; j < 2; j++) {
                     if (ff_aac_codebook_vectors[cb-1][curidx*2+j] == 64.0f) {
-                        int coef = av_clip_uintp2(quant(fabsf(in[i+j]), Q, ROUNDING), 13);
+                        int coef = av_clip(quant(fabsf(in[i+j]), Q, ROUNDING), 0, (1 << 13) - 1);
                         int len = av_log2(coef);
 
                         put_bits(pb, len - 4 + 1, (1 << (len - 4 + 1)) - 2);



More information about the ffmpeg-cvslog mailing list