Converting set_prev_mi() to get_prev_mi().
authorDmitry Kovalev <dkovalev@google.com>
Mon, 7 Apr 2014 23:01:34 +0000 (16:01 -0700)
committerDmitry Kovalev <dkovalev@google.com>
Mon, 7 Apr 2014 23:01:34 +0000 (16:01 -0700)
Change-Id: Iad4002d7aecaae0e25d88e286bacde7e6cd7264f

vp9/common/vp9_mvref_common.c
vp9/common/vp9_onyxc_int.h
vp9/decoder/vp9_decodeframe.c
vp9/encoder/vp9_encodeframe.c

index 61682c4..1aab362 100644 (file)
@@ -195,7 +195,7 @@ static void find_mv_refs_idx(const VP9_COMMON *cm, const MACROBLOCKD *xd,
                              int block, int mi_row, int mi_col) {
   const int *ref_sign_bias = cm->ref_frame_sign_bias;
   int i, refmv_count = 0;
-  const MODE_INFO *prev_mi = cm->coding_use_prev_mi && cm->prev_mi
+  const MODE_INFO *prev_mi = cm->prev_mi
         ? cm->prev_mi_grid_visible[mi_row * xd->mi_stride + mi_col]
         : NULL;
   const MB_MODE_INFO *const prev_mbmi = prev_mi ? &prev_mi->mbmi : NULL;
index ea1b885..32dc2d9 100644 (file)
@@ -281,15 +281,15 @@ static INLINE void set_mi_row_col(MACROBLOCKD *xd, const TileInfo *const tile,
   xd->left_available  = (mi_col > tile->mi_col_start);
 }
 
-static INLINE void set_prev_mi(VP9_COMMON *cm) {
-  const int use_prev_in_find_mv_refs = cm->width == cm->last_width &&
-                                       cm->height == cm->last_height &&
-                                       !cm->intra_only &&
-                                       cm->last_show_frame;
+static INLINE MODE_INFO *get_prev_mi(VP9_COMMON *cm) {
+  const int use_prev_mi = cm->coding_use_prev_mi &&
+                          cm->width == cm->last_width &&
+                          cm->height == cm->last_height &&
+                          !cm->intra_only &&
+                          cm->last_show_frame;
   // Special case: set prev_mi to NULL when the previous mode info
   // context cannot be used.
-  cm->prev_mi = use_prev_in_find_mv_refs ?
-                  cm->prev_mip + cm->mi_stride + 1 : NULL;
+  return use_prev_mi ? &cm->prev_mip[cm->mi_stride + 1] : NULL;
 }
 
 static INLINE int frame_is_intra_only(const VP9_COMMON *const cm) {
index 5a2e6f8..d2f814e 100644 (file)
@@ -1288,11 +1288,7 @@ int vp9_decode_frame(VP9D_COMP *pbi,
   }
 
   init_macroblockd(cm, &pbi->mb);
-
-  if (cm->coding_use_prev_mi)
-    set_prev_mi(cm);
-  else
-    cm->prev_mi = NULL;
+  cm->prev_mi = get_prev_mi(cm);
 
   setup_plane_dequants(cm, xd, cm->base_qindex);
   vp9_setup_block_planes(xd, cm->subsampling_x, cm->subsampling_y);
index 9297225..b0fabb9 100644 (file)
@@ -3084,7 +3084,7 @@ static void encode_frame_internal(VP9_COMP *cpi) {
   vp9_zero(cpi->rd_tx_select_diff);
   vp9_zero(cpi->rd_tx_select_threshes);
 
-  set_prev_mi(cm);
+  cm->prev_mi = get_prev_mi(cm);
 
   if (cpi->sf.use_nonrd_pick_mode) {
     // Initialize internal buffer pointers for rtc coding, where non-RD