]> granicus.if.org Git - libvpx/commitdiff
Remove implicit assumption that mode_info_stride == mb_cols + 1.
authorRonald S. Bultje <rbultje@google.com>
Wed, 24 Apr 2013 19:28:27 +0000 (12:28 -0700)
committerRonald S. Bultje <rbultje@google.com>
Thu, 25 Apr 2013 21:21:01 +0000 (14:21 -0700)
Change-Id: I3030d7adac73109aeaa1ecc0f78ac968c092d9aa

vp9/common/vp9_alloccommon.c
vp9/common/vp9_entropymode.c
vp9/decoder/vp9_decodframe.c
vp9/encoder/vp9_onyx_if.c

index 56fac12b43b91e51393d811d77c61bd53d204914..b88a5d43e10cd317214062aee458e319ea707ce1 100644 (file)
@@ -33,15 +33,18 @@ void vp9_update_mode_info_border(VP9_COMMON *cpi, MODE_INFO *mi) {
 
 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;
   }
 }
 
index 626c7d4cf70e346c88984ffd8ffe528c8f0594a9..fbf4bdfc224da64456bc41a100151106c31aa77c 100644 (file)
@@ -705,9 +705,9 @@ void vp9_setup_past_independence(VP9_COMMON *cm, MACROBLOCKD *xd) {
     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);
index 46ef076257b77928d08355b5135afbd364f450e3..16d52a25d87bf10963d28db01d7648afa4984443 100644 (file)
@@ -1051,7 +1051,7 @@ static void update_frame_size(VP9D_COMP *pbi) {
   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);
 
index 706cf9ac9b0ed9fcc590b8fab0085d44ebdc497d..0b64fe1d986f0b3571b559cd3e0761c2b53fb584 100644 (file)
@@ -906,7 +906,7 @@ static void alloc_raw_frame_buffers(VP9_COMP *cpi) {
 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 @@ static void update_frame_size(VP9_COMP *cpi) {
   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 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi,
 
   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));
   }
 }