From c3bf8375726cc844434440cbdbe36c3576329166 Mon Sep 17 00:00:00 2001 From: Jingning Han Date: Thu, 17 Sep 2015 09:50:19 -0700 Subject: [PATCH] Refactor mbmi_ext structure This commit removes mbmi_ext_base pointer from MACROBLOCK struct. Its use case can be fully covered by cpi->mbmi_ext_base pointer. Change-Id: I155351609336cf5b6145ed13c21b105052727f30 --- vp10/encoder/bitstream.c | 3 +-- vp10/encoder/block.h | 1 - vp10/encoder/encodeframe.c | 9 +++++---- vp10/encoder/encoder.c | 1 - 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/vp10/encoder/bitstream.c b/vp10/encoder/bitstream.c index 8d84a8590..cd9e7399e 100644 --- a/vp10/encoder/bitstream.c +++ b/vp10/encoder/bitstream.c @@ -386,8 +386,7 @@ static void write_modes_b(VP10_COMP *cpi, const TileInfo *const tile, xd->mi = cm->mi_grid_visible + (mi_row * cm->mi_stride + mi_col); m = xd->mi[0]; - cpi->td.mb.mbmi_ext = cpi->td.mb.mbmi_ext_base + - (mi_row * cm->mi_cols + mi_col); + cpi->td.mb.mbmi_ext = cpi->mbmi_ext_base + (mi_row * cm->mi_cols + mi_col); set_mi_row_col(xd, tile, mi_row, num_8x8_blocks_high_lookup[m->mbmi.sb_type], diff --git a/vp10/encoder/block.h b/vp10/encoder/block.h index cd3baa765..9eff31a2e 100644 --- a/vp10/encoder/block.h +++ b/vp10/encoder/block.h @@ -58,7 +58,6 @@ struct macroblock { MACROBLOCKD e_mbd; MB_MODE_INFO_EXT *mbmi_ext; - MB_MODE_INFO_EXT *mbmi_ext_base; int skip_block; int select_tx_size; int skip_recode; diff --git a/vp10/encoder/encodeframe.c b/vp10/encoder/encodeframe.c index ddea8cd87..c3b6265e3 100644 --- a/vp10/encoder/encodeframe.c +++ b/vp10/encoder/encodeframe.c @@ -170,15 +170,16 @@ static BLOCK_SIZE get_rd_var_based_fixed_partition(VP10_COMP *cpi, // Lighter version of set_offsets that only sets the mode info // pointers. -static INLINE void set_mode_info_offsets(VP10_COMMON *const cm, +static INLINE void set_mode_info_offsets(VP10_COMP *const cpi, MACROBLOCK *const x, MACROBLOCKD *const xd, int mi_row, int mi_col) { + VP10_COMMON *const cm = &cpi->common; const int idx_str = xd->mi_stride * mi_row + mi_col; xd->mi = cm->mi_grid_visible + idx_str; xd->mi[0] = cm->mi + idx_str; - x->mbmi_ext = x->mbmi_ext_base + (mi_row * cm->mi_cols + mi_col); + x->mbmi_ext = cpi->mbmi_ext_base + (mi_row * cm->mi_cols + mi_col); } static void set_offsets(VP10_COMP *cpi, const TileInfo *const tile, @@ -193,7 +194,7 @@ static void set_offsets(VP10_COMP *cpi, const TileInfo *const tile, set_skip_context(xd, mi_row, mi_col); - set_mode_info_offsets(cm, x, xd, mi_row, mi_col); + set_mode_info_offsets(cpi, x, xd, mi_row, mi_col); mbmi = &xd->mi[0]->mbmi; @@ -244,7 +245,7 @@ static void set_block_size(VP10_COMP * const cpi, int mi_row, int mi_col, BLOCK_SIZE bsize) { if (cpi->common.mi_cols > mi_col && cpi->common.mi_rows > mi_row) { - set_mode_info_offsets(&cpi->common, x, xd, mi_row, mi_col); + set_mode_info_offsets(cpi, x, xd, mi_row, mi_col); xd->mi[0]->mbmi.sb_type = bsize; } } diff --git a/vp10/encoder/encoder.c b/vp10/encoder/encoder.c index 08ce94495..6ae4c5ebe 100644 --- a/vp10/encoder/encoder.c +++ b/vp10/encoder/encoder.c @@ -710,7 +710,6 @@ static void update_frame_size(VP10_COMP *cpi) { vp10_set_mb_mi(cm, cm->width, cm->height); vp10_init_context_buffers(cm); vp10_init_macroblockd(cm, xd, NULL); - cpi->td.mb.mbmi_ext_base = cpi->mbmi_ext_base; memset(cpi->mbmi_ext_base, 0, cm->mi_rows * cm->mi_cols * sizeof(*cpi->mbmi_ext_base));