Index: source/libvpx/vp9/common/vp9_alloccommon.c |
=================================================================== |
--- source/libvpx/vp9/common/vp9_alloccommon.c (revision 290053) |
+++ source/libvpx/vp9/common/vp9_alloccommon.c (working copy) |
@@ -34,7 +34,7 @@ |
cm->mi_cols = aligned_width >> MI_SIZE_LOG2; |
cm->mi_rows = aligned_height >> MI_SIZE_LOG2; |
- cm->mi_stride = cm->mi_cols + MI_BLOCK_SIZE; |
+ cm->mi_stride = calc_mi_size(cm->mi_cols); |
cm->mb_cols = (cm->mi_cols + 1) >> 1; |
cm->mb_rows = (cm->mi_rows + 1) >> 1; |
@@ -60,16 +60,18 @@ |
for (i = 0; i < 2; ++i) { |
cm->mip_array[i] = |
- (MODE_INFO *)vpx_calloc(mi_size, sizeof(*cm->mip)); |
+ (MODE_INFO *)vpx_calloc(mi_size, sizeof(MODE_INFO)); |
if (cm->mip_array[i] == NULL) |
return 1; |
cm->mi_grid_base_array[i] = |
- (MODE_INFO **)vpx_calloc(mi_size, sizeof(*cm->mi_grid_base)); |
+ (MODE_INFO **)vpx_calloc(mi_size, sizeof(MODE_INFO*)); |
if (cm->mi_grid_base_array[i] == NULL) |
return 1; |
} |
+ cm->mi_alloc_size = mi_size; |
+ |
// Init the index. |
cm->mi_idx = 0; |
cm->prev_mi_idx = 1; |
@@ -131,7 +133,8 @@ |
vp9_free_context_buffers(cm); |
vp9_set_mb_mi(cm, width, height); |
- if (alloc_mi(cm, cm->mi_stride * (cm->mi_rows + MI_BLOCK_SIZE))) goto fail; |
+ if (alloc_mi(cm, cm->mi_stride * calc_mi_size(cm->mi_rows))) |
+ goto fail; |
cm->last_frame_seg_map = (uint8_t *)vpx_calloc(cm->mi_rows * cm->mi_cols, 1); |
if (!cm->last_frame_seg_map) goto fail; |