From c0918613a0ecaac6819409c64107583eebc0ccc2 Mon Sep 17 00:00:00 2001 From: Rostislav Pehlivanov Date: Wed, 30 Mar 2016 00:58:28 +0100 Subject: [PATCH] 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 Signed-off-by: Rostislav Pehlivanov --- 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 425040748c..106e632d05 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); -- 2.11.0