Fix a bug happening while encoding at profile=3
authorYunqing Wang <yunqingwang@google.com>
Tue, 24 May 2011 19:59:37 +0000 (15:59 -0400)
committerYunqing Wang <yunqingwang@google.com>
Tue, 24 May 2011 20:28:23 +0000 (16:28 -0400)
While profile=3, there is no sub-pixel search. Distortion and SSE
have to calculated using get_inter_mbpred_error().

Change-Id: Ifb36e17eef7750af93efa7d0e2870142ef540184

vp8/encoder/pickinter.c

index 4311276..6669480 100644 (file)
@@ -840,7 +840,7 @@ void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset,
             x->e_mbd.block[0].bmi.mode = this_mode;
             x->e_mbd.block[0].bmi.mv.as_int = x->e_mbd.mode_info_context->mbmi.mv.as_int;
 
-            if((this_mode != NEWMV) || !(have_subp_search))
+            if((this_mode != NEWMV) || !(have_subp_search) || cpi->common.full_pixel==1)
                 distortion2 = get_inter_mbpred_error(x, &cpi->fn_ptr[BLOCK_16X16], &sse);
 
             this_rd = RDCOST(x->rdmult, x->rddiv, rate2, distortion2);