diff options
author | Dmitry Kovalev <dkovalev@google.com> | 2013-04-30 11:14:27 -0700 |
---|---|---|
committer | Dmitry Kovalev <dkovalev@google.com> | 2013-04-30 11:14:27 -0700 |
commit | 15b5e465f266c9d651a2d37a2759959d57887cf3 (patch) | |
tree | d26a0cc7879f2a653daf1ceccda98d323fb50177 /vp9/common | |
parent | 70d12c3a75bbd5d25ad70e9d1872fc9d4f6cc1c5 (diff) | |
download | libvpx-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.c | 25 | ||||
-rw-r--r-- | vp9/common/vp9_alloccommon.h | 2 |
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_ |