summaryrefslogtreecommitdiff
path: root/vp9/common/vp9_alloccommon.c
diff options
context:
space:
mode:
authorDmitry Kovalev <dkovalev@google.com>2013-04-30 12:00:35 -0700
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2013-04-30 12:00:35 -0700
commit347ad7fff0459dc8b9dfc9613e66d594c44b57b0 (patch)
tree8e0cb9a9d712dbdf2d79e10bd0874d8110d8a454 /vp9/common/vp9_alloccommon.c
parentbe9cf215a3960ce46b10c1be4e467367f0b18a9a (diff)
parent15b5e465f266c9d651a2d37a2759959d57887cf3 (diff)
downloadlibvpx-347ad7fff0459dc8b9dfc9613e66d594c44b57b0.tar
libvpx-347ad7fff0459dc8b9dfc9613e66d594c44b57b0.tar.gz
libvpx-347ad7fff0459dc8b9dfc9613e66d594c44b57b0.tar.bz2
libvpx-347ad7fff0459dc8b9dfc9613e66d594c44b57b0.zip
Merge "Adding vp9_update_frame_size function." into experimental
Diffstat (limited to 'vp9/common/vp9_alloccommon.c')
-rw-r--r--vp9/common/vp9_alloccommon.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/vp9/common/vp9_alloccommon.c b/vp9/common/vp9_alloccommon.c
index a80276705..8179a6915 100644
--- a/vp9/common/vp9_alloccommon.c
+++ b/vp9/common/vp9_alloccommon.c
@@ -223,3 +223,28 @@ void vp9_initialize_common() {
vp9_entropy_mode_init();
vp9_entropy_mv_init();
}
+
+
+void vp9_update_frame_size(VP9_COMMON *cm) {
+ const int aligned_width = multiple16(cm->width);
+ const int aligned_height = multiple16(cm->height);
+
+ cm->mb_rows = aligned_height >> 4;
+ cm->mb_cols = aligned_width >> 4;
+
+ cm->mi_rows = aligned_height >> LOG2_MI_SIZE;
+ cm->mi_cols = aligned_width >> LOG2_MI_SIZE;
+
+ cm->MBs = cm->mb_rows * cm->mb_cols;
+ cm->mode_info_stride = cm->mi_cols + 1;
+ cm->mi = cm->mip + cm->mode_info_stride + 1;
+ cm->prev_mi = cm->prev_mip + cm->mode_info_stride + 1;
+
+ memset(cm->mip, 0,
+ cm->mode_info_stride * (cm->mi_rows + 1) * sizeof(MODE_INFO));
+ vp9_update_mode_info_border(cm, cm->mip);
+ vp9_update_mode_info_in_image(cm, cm->mi);
+
+ vp9_update_mode_info_border(cm, cm->prev_mip);
+ vp9_update_mode_info_in_image(cm, cm->prev_mi);
+}