summaryrefslogtreecommitdiff
path: root/vp9/common
diff options
context:
space:
mode:
authorDmitry Kovalev <dkovalev@google.com>2013-04-30 11:14:27 -0700
committerDmitry Kovalev <dkovalev@google.com>2013-04-30 11:14:27 -0700
commit15b5e465f266c9d651a2d37a2759959d57887cf3 (patch)
treed26a0cc7879f2a653daf1ceccda98d323fb50177 /vp9/common
parent70d12c3a75bbd5d25ad70e9d1872fc9d4f6cc1c5 (diff)
downloadlibvpx-15b5e465f266c9d651a2d37a2759959d57887cf3.tar
libvpx-15b5e465f266c9d651a2d37a2759959d57887cf3.tar.gz
libvpx-15b5e465f266c9d651a2d37a2759959d57887cf3.tar.bz2
libvpx-15b5e465f266c9d651a2d37a2759959d57887cf3.zip
Adding vp9_update_frame_size function.
Moving common code from encoder and decoder to vp9_update_frame_size. Change-Id: I6ca758b7d05ffd52821bd3f7ad68089da11e4165
Diffstat (limited to 'vp9/common')
-rw-r--r--vp9/common/vp9_alloccommon.c25
-rw-r--r--vp9/common/vp9_alloccommon.h2
2 files changed, 27 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);
+}
diff --git a/vp9/common/vp9_alloccommon.h b/vp9/common/vp9_alloccommon.h
index c505717ef..814a7607a 100644
--- a/vp9/common/vp9_alloccommon.h
+++ b/vp9/common/vp9_alloccommon.h
@@ -25,4 +25,6 @@ void vp9_free_frame_buffers(VP9_COMMON *oci);
void vp9_setup_version(VP9_COMMON *oci);
+void vp9_update_frame_size(VP9_COMMON *cm);
+
#endif // VP9_COMMON_VP9_ALLOCCOMMON_H_