Revert "Correct the inter prediction coordinate..."
authorhkuang <hkuang@google.com>
Wed, 1 Jul 2015 23:22:47 +0000 (16:22 -0700)
committerJames Zern <jzern@google.com>
Fri, 3 Jul 2015 18:05:28 +0000 (11:05 -0700)
Change in 92b199061a13173d29247257f4ef906d38b012bf leads to frame parallel
decode failure in extreme case.

addresses issue #1010

Change-Id: I4fa488dac8e8c584f5eef4cae1640a579130d387

vp9/decoder/vp9_decodeframe.c

index 659b848..4fc10b4 100644 (file)
@@ -575,10 +575,10 @@ static void dec_build_inter_predictors(VP9Decoder *const pbi, MACROBLOCKD *xd,
   // width/height is not a multiple of 8 pixels.
   if (is_scaled || scaled_mv.col || scaled_mv.row ||
       (frame_width & 0x7) || (frame_height & 0x7)) {
-    int y1 = (y0_16 + (h - 1) * ys) >> SUBPEL_BITS;
+    int y1 = ((y0_16 + (h - 1) * ys) >> SUBPEL_BITS) + 1;
 
     // Get reference block bottom right horizontal coordinate.
-    int x1 = (x0_16 + (w - 1) * xs) >> SUBPEL_BITS;
+    int x1 = ((x0_16 + (w - 1) * xs) >> SUBPEL_BITS) + 1;
     int x_pad = 0, y_pad = 0;
 
     if (subpel_x || (sf->x_step_q4 != SUBPEL_SHIFTS)) {