shithub: libvpx

Download patch

ref: 5e5470b2546478ceec5b7e70ac099b847c399f2b
parent: a4dd99b34db0eca4e5758dc6d982d8d42171ac5f
author: Jim Bankoski <jimbankoski@google.com>
date: Wed May 29 08:34:10 EDT 2013

fix valgrind warning

scales for second reference frame vars are unitialized if the
second ref frame is one of of those disallowed by refframeflags

Change-Id: I4ce42de391178c1699dcaede18c5f12c84993c61

--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -2567,11 +2567,6 @@
     this_mode = vp9_mode_order[mode_index].mode;
     ref_frame = vp9_mode_order[mode_index].ref_frame;
 
-    if (!(ref_frame == INTRA_FRAME
-        || (cpi->ref_frame_flags & flag_list[ref_frame]))) {
-      continue;
-    }
-
     if (cpi->speed > 0 && bsize >= BLOCK_SIZE_SB8X8) {
       if (!(ref_frame_mask & (1 << ref_frame))) {
         continue;
@@ -2588,6 +2583,15 @@
 
     mbmi->ref_frame = ref_frame;
     mbmi->second_ref_frame = vp9_mode_order[mode_index].second_ref_frame;
+
+    if (!(ref_frame == INTRA_FRAME
+        || (cpi->ref_frame_flags & flag_list[ref_frame]))) {
+      continue;
+    }
+    if (!(mbmi->second_ref_frame == NONE
+        || (cpi->ref_frame_flags & flag_list[mbmi->second_ref_frame]))) {
+      continue;
+    }
 
     // TODO(jingning, jkoleszar): scaling reference frame not supported for
     // SPLITMV.