diff options
Diffstat (limited to 'vp9/encoder/vp9_rdopt.c')
-rw-r--r-- | vp9/encoder/vp9_rdopt.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c index 2f03a264c..a8ea3956e 100644 --- a/vp9/encoder/vp9_rdopt.c +++ b/vp9/encoder/vp9_rdopt.c @@ -1165,7 +1165,7 @@ static int64_t rd_pick_intra4x4block(VP9_COMP *cpi, MACROBLOCK *x, BLOCK *be, DECLARE_ALIGNED_ARRAY(16, int16_t, best_dqcoeff, 16); #if CONFIG_NEWBINTRAMODES - b->bmi.as_mode.context = vp9_find_bpred_context(b); + b->bmi.as_mode.context = vp9_find_bpred_context(xd, b); #endif xd->mode_info_context->mbmi.txfm_size = TX_4X4; for (mode = B_DC_PRED; mode < LEFT4X4; mode++) { @@ -1276,7 +1276,7 @@ static int64_t rd_pick_intra4x4mby_modes(VP9_COMP *cpi, MACROBLOCK *mb, bmode_costs = mb->bmode_costs[A][L]; } #if CONFIG_NEWBINTRAMODES - mic->bmi[i].as_mode.context = vp9_find_bpred_context(xd->block + i); + mic->bmi[i].as_mode.context = vp9_find_bpred_context(xd, xd->block + i); #endif total_rd += rd_pick_intra4x4block( @@ -3441,9 +3441,11 @@ static void setup_buffer_inter(VP9_COMP *cpi, MACROBLOCK *x, // Further refinement that is encode side only to test the top few candidates // in full and choose the best as the centre point for subsequent searches. - mv_pred(cpi, x, yv12_mb[frame_type].y_buffer, yv12->y_stride, - frame_type, block_size); - + // The current implementation doesn't support scaling. + if (scale[frame_type].x_num == scale[frame_type].x_den && + scale[frame_type].y_num == scale[frame_type].y_den) + mv_pred(cpi, x, yv12_mb[frame_type].y_buffer, yv12->y_stride, + frame_type, block_size); } static void model_rd_from_var_lapndz(int var, int n, int qstep, |