[FFmpeg-cvslog] avcodec/motion_est: Fix undefined shifts in cmp_inline()

Michael Niedermayer git at videolan.org
Wed Jul 1 14:38:15 CEST 2015


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Wed Jul  1 13:41:26 2015 +0200| [4eee685a212a1e189860dfc27d14e41130c730c1] | committer: Michael Niedermayer

avcodec/motion_est: Fix undefined shifts in cmp_inline()

Fixes: signal_sigsegv_35eac16_2762_cov_2704249783_missing_frames.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

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

diff --git a/libavcodec/motion_est.c b/libavcodec/motion_est.c
index 96aa9ac..9e184df 100644
--- a/libavcodec/motion_est.c
+++ b/libavcodec/motion_est.c
@@ -183,8 +183,8 @@ static av_always_inline int cmp_inline(MpegEncContext *s, const int x, const int
     const int stride= c->stride;
     const int uvstride= c->uvstride;
     const int dxy= subx + (suby<<(1+qpel)); //FIXME log2_subpel?
-    const int hx= subx + (x<<(1+qpel));
-    const int hy= suby + (y<<(1+qpel));
+    const int hx= subx + x*(1<<(1+qpel));
+    const int hy= suby + y*(1<<(1+qpel));
     uint8_t * const * const ref= c->ref[ref_index];
     uint8_t * const * const src= c->src[src_index];
     int d;



More information about the ffmpeg-cvslog mailing list