From d7670f2827b3bebcf0c0969e8a4bcf0745db0236 Mon Sep 17 00:00:00 2001 From: Reimar Döffinger Date: Fri, 17 Apr 2009 20:05:27 +0000 Subject: Use sign_extend function instead of reimplementing it. Originally committed as revision 18599 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/xan.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'libavcodec/xan.c') diff --git a/libavcodec/xan.c b/libavcodec/xan.c index bb6dab49ce..748f4d1eab 100644 --- a/libavcodec/xan.c +++ b/libavcodec/xan.c @@ -333,16 +333,10 @@ static void xan_wc3_decode_frame(XanContext *s) { } } else { /* run-based motion compensation from last frame */ - motion_x = *vector_segment >> 4; - motion_y = *vector_segment & 0xF; + motion_x = sign_extend(*vector_segment >> 4, 4); + motion_y = sign_extend(*vector_segment & 0xF, 4); vector_segment++; - /* sign extension */ - if (motion_x & 0x8) - motion_x |= 0xFFFFFFF0; - if (motion_y & 0x8) - motion_y |= 0xFFFFFFF0; - /* copy a run of pixels from the previous frame */ xan_wc3_copy_pixel_run(s, x, y, size, motion_x, motion_y); -- cgit v1.2.3