]> granicus.if.org Git - libvpx/commitdiff
Fix unit test failure due to ext-inter and dual filter
authorJingning Han <jingning@google.com>
Mon, 9 May 2016 15:59:47 +0000 (08:59 -0700)
committerJingning Han <jingning@google.com>
Mon, 9 May 2016 16:41:57 +0000 (16:41 +0000)
Make the inter predictor use the right filter type to avoid
enc/dec mismatch.

Change-Id: I2aa416d50450188ec2057dca3338fa258314e562

vp10/common/reconinter.c

index 165b3ba68cc40c26e6901d53e40105d1bbf53f8b..daad38e855e4beac47d963c182ac4f195ef675f7 100644 (file)
@@ -472,6 +472,11 @@ void vp10_make_masked_inter_predictor(
 #endif  // CONFIG_SUPERTX
     const MACROBLOCKD *xd) {
   const MODE_INFO *mi = xd->mi[0];
+  // The prediction filter types used here should be those for
+  // the second reference block.
+  INTERP_FILTER tmp_ipf[4] = {interp_filter[2], interp_filter[3],
+      interp_filter[2], interp_filter[3],
+  };
 #if CONFIG_VP9_HIGHBITDEPTH
   DECLARE_ALIGNED(16, uint8_t, tmp_dst_[2 * MAX_SB_SQUARE]);
   uint8_t *tmp_dst =
@@ -479,7 +484,7 @@ void vp10_make_masked_inter_predictor(
       CONVERT_TO_BYTEPTR(tmp_dst_) : tmp_dst_;
   vp10_make_inter_predictor(pre, pre_stride, tmp_dst, MAX_SB_SIZE,
                             subpel_x, subpel_y, sf, w, h, 0,
-                            interp_filter, xs, ys, xd);
+                            tmp_ipf, xs, ys, xd);
 #if CONFIG_SUPERTX
   if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH)
     build_masked_compound_wedge_extend_highbd(
@@ -513,7 +518,7 @@ void vp10_make_masked_inter_predictor(
   DECLARE_ALIGNED(16, uint8_t, tmp_dst[MAX_SB_SQUARE]);
   vp10_make_inter_predictor(pre, pre_stride, tmp_dst, MAX_SB_SIZE,
                             subpel_x, subpel_y, sf, w, h, 0,
-                            interp_filter, xs, ys, xd);
+                            tmp_ipf, xs, ys, xd);
 #if CONFIG_SUPERTX
   build_masked_compound_wedge_extend(
       dst, dst_stride, tmp_dst, MAX_SB_SIZE,