]> granicus.if.org Git - libvpx/commitdiff
Fix subpixel_predict initialization
authorYunqing Wang <yunqingwang@google.com>
Mon, 2 Jul 2012 21:47:47 +0000 (14:47 -0700)
committerYunqing Wang <yunqingwang@google.com>
Mon, 2 Jul 2012 21:47:47 +0000 (14:47 -0700)
xd->subpixel_predict16x16 is called in first pass, but isn't
initialized in first pass, which causes segfault. This patch
fixed that problem.

Change-Id: Ibd2cad4e2d32ea589fc3e0876d60d3079ae836e7

vp8/encoder/firstpass.c

index a6db5af28c03117a097965990244a8d8aae49620..f0d2d38078fbe27ae02411f95b4a1b7116b27a53 100644 (file)
@@ -545,6 +545,21 @@ void vp8_first_pass(VP8_COMP *cpi)
 
     xd->mode_info_context = cm->mi;
 
+    if(!cm->use_bilinear_mc_filter)
+    {
+         xd->subpixel_predict        = vp8_sixtap_predict4x4;
+         xd->subpixel_predict8x4     = vp8_sixtap_predict8x4;
+         xd->subpixel_predict8x8     = vp8_sixtap_predict8x8;
+         xd->subpixel_predict16x16   = vp8_sixtap_predict16x16;
+     }
+     else
+     {
+         xd->subpixel_predict        = vp8_bilinear_predict4x4;
+         xd->subpixel_predict8x4     = vp8_bilinear_predict8x4;
+         xd->subpixel_predict8x8     = vp8_bilinear_predict8x8;
+         xd->subpixel_predict16x16   = vp8_bilinear_predict16x16;
+     }
+
     vp8_build_block_offsets(x);
 
     vp8_setup_block_dptrs(&x->e_mbd);