From 282c963923eb969c146d63e934bbece433a95282 Mon Sep 17 00:00:00 2001 From: Marco Paniconi Date: Thu, 11 Apr 2013 18:19:18 -0700 Subject: [PATCH] Fix for multi-res-encoding: Use local variable for setting the improved prediction mode. cpi->sf.improved_mv_pred is set/fixed at the frame level and should not be changed inside pick_inter_mode. Change-Id: Ie28d9171ac000e631af0e30204970e3d4fff3078 --- vp8/encoder/pickinter.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/vp8/encoder/pickinter.c b/vp8/encoder/pickinter.c index 4c2527d..c5279fe 100644 --- a/vp8/encoder/pickinter.c +++ b/vp8/encoder/pickinter.c @@ -594,6 +594,7 @@ void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, unsigned int zero_mv_sse = INT_MAX, best_sse = INT_MAX; #endif + int sf_improved_mv_pred = cpi->sf.improved_mv_pred; int_mv mvp; int near_sadidx[8] = {0, 1, 2, 3, 4, 5, 6, 7}; @@ -882,7 +883,7 @@ void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, last frame motion info is not stored, then we can not use improved_mv_pred. */ if (cpi->oxcf.mr_encoder_id && !parent_ref_valid) - cpi->sf.improved_mv_pred = 0; + sf_improved_mv_pred = 0; if (parent_ref_valid && parent_ref_frame) { @@ -899,7 +900,7 @@ void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, }else #endif { - if(cpi->sf.improved_mv_pred) + if(sf_improved_mv_pred) { if(!saddone) { -- 2.7.4