[FFmpeg-cvslog] lavc/motion_est: Fix undefined negative left shifts.

Carl Eugen Hoyos git at videolan.org
Thu Apr 20 00:38:37 EEST 2017


ffmpeg | branch: master | Carl Eugen Hoyos <cehoyos at ag.or.at> | Tue Apr 18 11:02:30 2017 +0200| [b6a83962453463aa814bb79aeaa7145732158f02] | committer: Carl Eugen Hoyos

lavc/motion_est: Fix undefined negative left shifts.

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

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

diff --git a/libavcodec/motion_est.c b/libavcodec/motion_est.c
index 25b606f819..316d16a77b 100644
--- a/libavcodec/motion_est.c
+++ b/libavcodec/motion_est.c
@@ -956,10 +956,10 @@ void ff_estimate_p_frame_motion(MpegEncContext * s,
             P_TOPRIGHT[1] = s->current_picture.motion_val[0][mot_xy - mot_stride + 2][1];
             if (P_TOP[1] > (c->ymax << shift))
                 P_TOP[1] =  c->ymax << shift;
-            if (P_TOPRIGHT[0] < (c->xmin << shift))
-                P_TOPRIGHT[0] =  c->xmin << shift;
-            if (P_TOPRIGHT[1] > (c->ymax << shift))
-                P_TOPRIGHT[1] =  c->ymax << shift;
+            if (P_TOPRIGHT[0] < (c->xmin * (1 << shift)))
+                P_TOPRIGHT[0] =  c->xmin * (1 << shift);
+            if (P_TOPRIGHT[1] > (c->ymax * (1 << shift)))
+                P_TOPRIGHT[1] =  c->ymax * (1 << shift);
 
             P_MEDIAN[0] = mid_pred(P_LEFT[0], P_TOP[0], P_TOPRIGHT[0]);
             P_MEDIAN[1] = mid_pred(P_LEFT[1], P_TOP[1], P_TOPRIGHT[1]);



More information about the ffmpeg-cvslog mailing list