Fixed this_mode used before set in vp8_pick_inter_mode
authorAdrian Grange <agrange@google.com>
Mon, 31 Oct 2011 19:42:00 +0000 (12:42 -0700)
committerAdrian Grange <agrange@google.com>
Mon, 31 Oct 2011 19:42:00 +0000 (12:42 -0700)
The variable this_mode was being used before it had been
initialized.

Moved the line that sets-up this_mode toward the top of the
enclosing loop, prior to its first use. The bug would result in
tests in the loop lagging the mode that was expected to be
tested.

Change-Id: If4e51600449ce6b4285f112da17a44c24b4a19fb

vp8/encoder/pickinter.c

index 8c6f7dd..404a5bf 100644 (file)
@@ -519,6 +519,8 @@ void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset,
         if (skip_mode[x->e_mbd.mode_info_context->mbmi.ref_frame])
             continue;
 
+        this_mode = vp8_mode_order[mode_index];
+
 #if CONFIG_SEGFEATURES
         // Experimental use of Segment features.
         if ( xd->segmentation_enabled && !cm->refresh_alt_ref_frame )
@@ -575,8 +577,6 @@ void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset,
         rate2 = 0;
         distortion2 = 0;
 
-        this_mode = vp8_mode_order[mode_index];
-
         // Experimental debug code.
         //all_rds[mode_index] = -1;