shithub: libvpx

Download patch

ref: c909b43e3c70ee7d57f0f90dfabb047b2d257b1c
parent: fec0d4bc7dfa070c64558e93fefe2eb5251a7c03
parent: dff81e6c7a712a6441524cc645a37c4922dd5089
author: Dmitry Kovalev <dkovalev@google.com>
date: Wed Mar 12 08:20:18 EDT 2014

Merge "Moving mi_streams from VP9Decompressor to VP9Common."

--- a/vp9/common/vp9_onyxc_int.h
+++ b/vp9/common/vp9_onyxc_int.h
@@ -153,6 +153,10 @@
   MODE_INFO **prev_mi_grid_base;
   MODE_INFO **prev_mi_grid_visible;
 
+  // Each tile column has its own MODE_INFO stream. This array indexes them by
+  // tile column index.
+  MODE_INFO **mi_streams;
+
   // Persistent mb segment id map used in prediction.
   unsigned char *last_frame_seg_map;
 
--- a/vp9/decoder/vp9_decodeframe.c
+++ b/vp9/decoder/vp9_decodeframe.c
@@ -195,16 +195,15 @@
   const int aligned_mi_cols = mi_cols_aligned_to_sb(cm->mi_cols);
   int i, tile_row, tile_col;
 
-  CHECK_MEM_ERROR(cm, pbi->mi_streams,
-                  vpx_realloc(pbi->mi_streams, tile_rows * tile_cols *
-                              sizeof(*pbi->mi_streams)));
+  CHECK_MEM_ERROR(cm, cm->mi_streams,
+                  vpx_realloc(cm->mi_streams, tile_rows * tile_cols *
+                              sizeof(*cm->mi_streams)));
   for (tile_row = 0; tile_row < tile_rows; ++tile_row) {
     for (tile_col = 0; tile_col < tile_cols; ++tile_col) {
       TileInfo tile;
       vp9_tile_init(&tile, cm, tile_row, tile_col);
-      pbi->mi_streams[tile_row * tile_cols + tile_col] =
-          &cm->mi[tile.mi_row_start * cm->mode_info_stride
-                  + tile.mi_col_start];
+      cm->mi_streams[tile_row * tile_cols + tile_col] =
+          &cm->mi[tile.mi_row_start * cm->mode_info_stride + tile.mi_col_start];
     }
   }
 
@@ -731,9 +730,11 @@
 
 static void setup_tile_context(VP9D_COMP *const pbi, MACROBLOCKD *const xd,
                                int tile_row, int tile_col) {
+  VP9_COMMON *const cm = &pbi->common;
+  const int tile_cols = 1 << cm->log2_tile_cols;
   int i;
-  const int tile_cols = 1 << pbi->common.log2_tile_cols;
-  xd->mi_stream = pbi->mi_streams[tile_row * tile_cols + tile_col];
+
+  xd->mi_stream = cm->mi_streams[tile_row * tile_cols + tile_col];
 
   for (i = 0; i < MAX_MB_PLANE; ++i) {
     xd->above_context[i] = pbi->above_context[i];
--- a/vp9/decoder/vp9_decoder.c
+++ b/vp9/decoder/vp9_decoder.c
@@ -189,7 +189,7 @@
     vp9_loop_filter_dealloc(lf_sync, sb_rows);
   }
 
-  vpx_free(pbi->mi_streams);
+  vpx_free(pbi->common.mi_streams);
   vpx_free(pbi->above_context[0]);
   vpx_free(pbi->above_seg_context);
   vpx_free(pbi);
--- a/vp9/decoder/vp9_decoder.h
+++ b/vp9/decoder/vp9_decoder.h
@@ -73,10 +73,6 @@
 
   VP9LfSync lf_row_sync;
 
-  /* Each tile column has its own MODE_INFO stream. This array indexes them by
-     tile column index. */
-  MODE_INFO **mi_streams;
-
   ENTROPY_CONTEXT *above_context[MAX_MB_PLANE];
   PARTITION_CONTEXT *above_seg_context;
 } VP9D_COMP;