summaryrefslogtreecommitdiff
path: root/libavcodec/mpegvideo_motion.c
diff options
context:
space:
mode:
authorMans Rullgard <mans@mansr.com>2012-08-04 02:57:53 +0100
committerMans Rullgard <mans@mansr.com>2012-11-23 12:03:54 +0000
commit5e39bb073a1d6fc6ac30b19893beefdd3c7d633f (patch)
treed6ed32fcac6c1cc85ec45d69b2a94d52473e05d1 /libavcodec/mpegvideo_motion.c
parentc262649291e711c084c5d8fc3fd0eee175f155ff (diff)
mpegvideo: simplify dxy calculation in hpel_motion()
Signed-off-by: Mans Rullgard <mans@mansr.com>
Diffstat (limited to 'libavcodec/mpegvideo_motion.c')
-rw-r--r--libavcodec/mpegvideo_motion.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/libavcodec/mpegvideo_motion.c b/libavcodec/mpegvideo_motion.c
index 9168793183..4ea31ad252 100644
--- a/libavcodec/mpegvideo_motion.c
+++ b/libavcodec/mpegvideo_motion.c
@@ -177,20 +177,19 @@ static inline int hpel_motion(MpegEncContext *s,
op_pixels_func *pix_op,
int motion_x, int motion_y)
{
- int dxy;
+ int dxy = 0;
int emu=0;
- dxy = ((motion_y & 1) << 1) | (motion_x & 1);
src_x += motion_x >> 1;
src_y += motion_y >> 1;
/* WARNING: do no forget half pels */
src_x = av_clip(src_x, -16, s->width); //FIXME unneeded for emu?
- if (src_x == s->width)
- dxy &= ~1;
+ if (src_x != s->width)
+ dxy |= motion_x & 1;
src_y = av_clip(src_y, -16, s->height);
- if (src_y == s->height)
- dxy &= ~2;
+ if (src_y != s->height)
+ dxy |= (motion_y & 1) << 1;
src += src_y * s->linesize + src_x;
if(s->unrestricted_mv && (s->flags&CODEC_FLAG_EMU_EDGE)){