summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorGanesh Ajjanagadde <gajjanagadde@gmail.com>2015-10-09 14:43:04 -0400
committerMichael Niedermayer <michael@niedermayer.cc>2015-10-09 23:01:55 +0200
commit3be27e07d3c5239f6d53b86aebcd201f722df4d0 (patch)
tree437ffba8a500225c4d146984b31189ee8abb0ff2 /libavcodec
parent25d3013e36152635ca992b63469f6d5b890aaa83 (diff)
avcodec/mpegvideoenc: fix undefined negative left shift
This should fix the first undefined behavior reported in: https://trac.ffmpeg.org/ticket/4727. I can't reproduce the runtime behavior reported in the ticket, hence I can't confirm that this actually fixes the exact issue reported in the ticket. Regardless, I can confirm that this is a genuine issue, and that negative shifts can (and do) occur, fixed by this. Tested with FATE. Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/mpegvideo_enc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index 8e565c12a7..a6af8bda24 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -148,7 +148,7 @@ void ff_convert_matrix(MpegEncContext *s, int (*qmat)[64],
qmat16[qscale][0][i] == 128 * 256)
qmat16[qscale][0][i] = 128 * 256 - 1;
qmat16[qscale][1][i] =
- ROUNDED_DIV(bias << (16 - QUANT_BIAS_SHIFT),
+ ROUNDED_DIV(bias * (1<<(16 - QUANT_BIAS_SHIFT)),
qmat16[qscale][0][i]);
}
}