ref: 8d028402d786f20c522ddfe73d267c73d9ab39ae
parent: 811f80ca25728ed3a1e5be9a3e8dfae5c7cc52c1
author: Ronald S. Bultje <rbultje@google.com>
date: Wed Apr 24 08:28:27 EDT 2013
Remove implicit assumption that mode_info_stride == mb_cols + 1. Change-Id: I3030d7adac73109aeaa1ecc0f78ac968c092d9aa
--- 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;
}
}
--- 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);
--- 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);
--- 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));
}
}
--
⑨