[FFmpeg-cvslog] avcodec/hevcpred_template: Fix integer overflows

Michael Niedermayer git at videolan.org
Sun Oct 27 12:08:34 CET 2013


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sun Oct 27 11:50:24 2013 +0100| [09ef98f1ae3c8a4e08b66f41c3bd97dd7b07405f] | committer: Michael Niedermayer

avcodec/hevcpred_template: Fix integer overflows

signed integer overflow is undefined in C

Fixes the following gcc warnings:
In file included from libavcodec/hevcpred.c:27:0:
libavcodec/hevcpred_template.c: In function ‘intra_pred_8’:
libavcodec/hevcpred_template.c:302:9: warning: assuming signed overflow does not occur when assuming that (X - c) > X is always false [-Wstrict-overflow]
In file included from libavcodec/hevcpred.c:31:0:
libavcodec/hevcpred_template.c: In function ‘intra_pred_9’:
libavcodec/hevcpred_template.c:302:9: warning: assuming signed overflow does not occur when assuming that (X - c) > X is always false [-Wstrict-overflow]
In file included from libavcodec/hevcpred.c:35:0:
libavcodec/hevcpred_template.c: In function ‘intra_pred_10’:
libavcodec/hevcpred_template.c:302:9: warning: assuming signed overflow does not occur when assuming that (X - c) > X is always false [-Wstrict-overflow]

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

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

 libavcodec/hevcpred_template.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavcodec/hevcpred_template.c b/libavcodec/hevcpred_template.c
index 9697506..f055bb6 100644
--- a/libavcodec/hevcpred_template.c
+++ b/libavcodec/hevcpred_template.c
@@ -299,8 +299,8 @@ static void FUNC(intra_pred)(HEVCContext *s, int x0, int y0, int log2_size, int
     // Filtering process
     if (c_idx == 0 && mode != INTRA_DC && size != 4) {
         int intra_hor_ver_dist_thresh[] = { 7, 1, 0 };
-        int min_dist_vert_hor           = FFMIN(FFABS((int)mode - 26),
-                                                FFABS((int)mode - 10));
+        int min_dist_vert_hor           = FFMIN(FFABS((int)(mode - 26U)),
+                                                FFABS((int)(mode - 10U)));
         if (min_dist_vert_hor > intra_hor_ver_dist_thresh[log2_size - 3]) {
             int threshold = 1 << (BIT_DEPTH - 5);
             if (s->sps->sps_strong_intra_smoothing_enable_flag &&



More information about the ffmpeg-cvslog mailing list