From 0087aa47d0a46cb9919d3fe480be99fb77443446 Mon Sep 17 00:00:00 2001 From: Jason Garrett-Glaser Date: Fri, 23 Jul 2010 06:41:35 +0000 Subject: [PATCH] VP8: fix broken sign bias code in MV pred Apparently the official conformance test vectors don't test this feature, even though libvpx uses it. Originally committed as revision 24456 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/vp8.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavcodec/vp8.c b/libavcodec/vp8.c index 744627c932..8ff6fbad99 100644 --- a/libavcodec/vp8.c +++ b/libavcodec/vp8.c @@ -557,7 +557,8 @@ static void find_near_mvs(VP8Context *s, VP8Macroblock *mb, int mb_x, int mb_y, if (mv) {\ if (cur_sign_bias != sign_bias[edge_ref]) {\ /* SWAR negate of the values in mv. */\ - mv = ((mv&0x80008000) + 0x00010001) ^ (mv&0x7fff7fff);\ + mv = ~mv;\ + mv = ((mv&0x7fff7fff) + 0x00010001) ^ (mv&0x80008000);\ }\ if (!n || mv != AV_RN32A(&near_mv[idx]))\ AV_WN32A(&near_mv[++idx], mv);\