]> granicus.if.org Git - libvpx/commitdiff
Fix for multi-res-encoding:
authorMarco Paniconi <marpan@google.com>
Fri, 12 Apr 2013 01:19:18 +0000 (18:19 -0700)
committerMarco Paniconi <marpan@google.com>
Fri, 12 Apr 2013 04:56:23 +0000 (21:56 -0700)
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

index 4c2527d68ade140a0f2942959d004e77dc77fbe1..c5279fed2a88612f954559b8f38e4fc653995932 100644 (file)
@@ -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)
                     {