From 8f910a5621bbde066bf62fe2b06f11d742ec0756 Mon Sep 17 00:00:00 2001 From: Stefan Gehrer Date: Wed, 23 Jun 2010 21:45:26 +0000 Subject: [PATCH] avoid conditional and division in chroma MV calculation Originally committed as revision 23745 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/vp8.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/vp8.c b/libavcodec/vp8.c index b1c40e8492..3d735e5c13 100644 --- a/libavcodec/vp8.c +++ b/libavcodec/vp8.c @@ -989,8 +989,8 @@ static void inter_predict(VP8Context *s, uint8_t *dst[3], VP8Macroblock *mb, mb->bmv[ 2*y * 4 + 2*x+1].y + mb->bmv[(2*y+1) * 4 + 2*x ].y + mb->bmv[(2*y+1) * 4 + 2*x+1].y; - uvmv.x = (uvmv.x + (uvmv.x < 0 ? -2 : 2)) / 4; - uvmv.y = (uvmv.y + (uvmv.y < 0 ? -2 : 2)) / 4; + uvmv.x = (uvmv.x + 2 + (uvmv.x >> (INT_BIT-1))) >> 2; + uvmv.y = (uvmv.y + 2 + (uvmv.y >> (INT_BIT-1))) >> 2; if (s->profile == 3) { uvmv.x &= ~7; uvmv.y &= ~7;