Remove implicit assumption that mode_info_stride == mb_cols + 1. Change-Id: I3030d7adac73109aeaa1ecc0f78ac968c092d9aa
diff --git a/vp9/common/vp9_alloccommon.c b/vp9/common/vp9_alloccommon.c index 56fac12..b88a5d4 100644 --- a/vp9/common/vp9_alloccommon.c +++ b/vp9/common/vp9_alloccommon.c
@@ -33,15 +33,18 @@ void vp9_update_mode_info_in_image(VP9_COMMON *cpi, MODE_INFO *mi) { int i, j; + MODE_INFO *ptr; // For each in image mode_info element set the in image flag to 1 for (i = 0; i < cpi->mb_rows; i++) { + ptr = mi; for (j = 0; j < cpi->mb_cols; j++) { - mi->mbmi.mb_in_image = 1; - mi++; // Next element in the row + ptr->mbmi.mb_in_image = 1; + ptr++; // Next element in the row } - mi++; // Step over border element at start of next row + // Step over border element at start of next row + mi += cpi->mode_info_stride; } }
diff --git a/vp9/common/vp9_entropymode.c b/vp9/common/vp9_entropymode.c index 626c7d4..fbf4bdf 100644 --- a/vp9/common/vp9_entropymode.c +++ b/vp9/common/vp9_entropymode.c
@@ -705,9 +705,9 @@ vpx_memcpy(&cm->frame_contexts[i], &cm->fc, sizeof(cm->fc)); vpx_memset(cm->prev_mip, 0, - (cm->mb_cols + 1) * (cm->mb_rows + 1)* sizeof(MODE_INFO)); + cm->mode_info_stride * (cm->mb_rows + 1)* sizeof(MODE_INFO)); vpx_memset(cm->mip, 0, - (cm->mb_cols + 1) * (cm->mb_rows + 1)* sizeof(MODE_INFO)); + cm->mode_info_stride * (cm->mb_rows + 1)* sizeof(MODE_INFO)); vp9_update_mode_info_border(cm, cm->mip); vp9_update_mode_info_in_image(cm, cm->mi);
diff --git a/vp9/decoder/vp9_decodframe.c b/vp9/decoder/vp9_decodframe.c index 46ef076..16d52a2 100644 --- a/vp9/decoder/vp9_decodframe.c +++ b/vp9/decoder/vp9_decodframe.c
@@ -1051,7 +1051,7 @@ cm->MBs = cm->mb_rows * cm->mb_cols; cm->mode_info_stride = cm->mb_cols + 1; memset(cm->mip, 0, - (cm->mb_cols + 1) * (cm->mb_rows + 1) * sizeof(MODE_INFO)); + cm->mode_info_stride * (cm->mb_rows + 1) * sizeof(MODE_INFO)); vp9_update_mode_info_border(cm, cm->mip); vp9_update_mode_info_border(cm, cm->prev_mip);
diff --git a/vp9/encoder/vp9_onyx_if.c b/vp9/encoder/vp9_onyx_if.c index 706cf9a..0b64fe1 100644 --- a/vp9/encoder/vp9_onyx_if.c +++ b/vp9/encoder/vp9_onyx_if.c
@@ -906,7 +906,7 @@ static int alloc_partition_data(VP9_COMP *cpi) { vpx_free(cpi->mb.pip); - cpi->mb.pip = vpx_calloc((cpi->common.mb_cols + 1) * + cpi->mb.pip = vpx_calloc((cpi->common.mode_info_stride) * (cpi->common.mb_rows + 1), sizeof(PARTITION_INFO)); if (!cpi->mb.pip) @@ -991,7 +991,7 @@ cm->MBs = cm->mb_rows * cm->mb_cols; cm->mode_info_stride = cm->mb_cols + 1; memset(cm->mip, 0, - (cm->mb_cols + 1) * (cm->mb_rows + 1) * sizeof(MODE_INFO)); + cm->mode_info_stride * (cm->mb_rows + 1) * sizeof(MODE_INFO)); vp9_update_mode_info_border(cm, cm->mip); cm->mi = cm->mip + cm->mode_info_stride + 1; @@ -3668,10 +3668,10 @@ if (cm->show_frame) { vpx_memcpy(cm->prev_mip, cm->mip, - (cm->mb_cols + 1) * (cm->mb_rows + 1)* sizeof(MODE_INFO)); + cm->mode_info_stride * (cm->mb_rows + 1) * sizeof(MODE_INFO)); } else { vpx_memset(cm->prev_mip, 0, - (cm->mb_cols + 1) * (cm->mb_rows + 1)* sizeof(MODE_INFO)); + cm->mode_info_stride * (cm->mb_rows + 1) * sizeof(MODE_INFO)); } }