avfilter/vf_deshake: fix loss of precission with odd resolutions
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 16 Apr 2014 00:06:37 +0000 (02:06 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 8 Jun 2014 23:50:04 +0000 (01:50 +0200)
Fixes part of Ticket3466
Found-by: Andrey_Karpov / PVS-Studio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 73734282e0e4df92269984ee1671424e39249481)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavfilter/vf_deshake.c

index bb20551..bf605d3 100644 (file)
@@ -315,8 +315,8 @@ static void find_motion(DeshakeContext *deshake, uint8_t *src1, uint8_t *src2,
         //av_log(NULL, AV_LOG_ERROR, "\n");
     }
 
-    p_x = (center_x - width / 2);
-    p_y = (center_y - height / 2);
+    p_x = (center_x - width / 2.0);
+    p_y = (center_y - height / 2.0);
     t->vector.x += (cos(t->angle)-1)*p_x  - sin(t->angle)*p_y;
     t->vector.y += sin(t->angle)*p_x  + (cos(t->angle)-1)*p_y;