From dff81e6c7a712a6441524cc645a37c4922dd5089 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalev Date: Mon, 10 Mar 2014 16:12:45 -0700 Subject: [PATCH] Moving mi_streams from VP9Decompressor to VP9Common. Change-Id: I7ad79c061ad4efbc4914ac49723b48183fdbdd47 --- vp9/common/vp9_onyxc_int.h | 4 ++++ vp9/decoder/vp9_decodeframe.c | 17 +++++++++-------- vp9/decoder/vp9_decoder.c | 2 +- vp9/decoder/vp9_decoder.h | 4 ---- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/vp9/common/vp9_onyxc_int.h b/vp9/common/vp9_onyxc_int.h index 52889f75f..024b197a1 100644 --- a/vp9/common/vp9_onyxc_int.h +++ b/vp9/common/vp9_onyxc_int.h @@ -153,6 +153,10 @@ typedef struct VP9Common { 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; diff --git a/vp9/decoder/vp9_decodeframe.c b/vp9/decoder/vp9_decodeframe.c index 1e203b19f..99a13e587 100644 --- a/vp9/decoder/vp9_decodeframe.c +++ b/vp9/decoder/vp9_decodeframe.c @@ -195,16 +195,15 @@ static void alloc_tile_storage(VP9D_COMP *pbi, int tile_rows, int tile_cols) { 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]; } } @@ -735,9 +734,11 @@ static void setup_frame_size_with_refs(VP9D_COMP *pbi, 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]; diff --git a/vp9/decoder/vp9_decoder.c b/vp9/decoder/vp9_decoder.c index 77985c9e7..a50f5be68 100644 --- a/vp9/decoder/vp9_decoder.c +++ b/vp9/decoder/vp9_decoder.c @@ -189,7 +189,7 @@ void vp9_remove_decompressor(VP9D_COMP *pbi) { 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); diff --git a/vp9/decoder/vp9_decoder.h b/vp9/decoder/vp9_decoder.h index e6edaf91f..4cbff4516 100644 --- a/vp9/decoder/vp9_decoder.h +++ b/vp9/decoder/vp9_decoder.h @@ -73,10 +73,6 @@ typedef struct VP9Decompressor { 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; -- 2.40.0