summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vp9/encoder/vp9_encoder.c19
-rw-r--r--vp9/encoder/vp9_rdopt.c2
2 files changed, 14 insertions, 7 deletions
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c
index c18e3d5aa..a753cad91 100644
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -7133,12 +7133,6 @@ static void init_tpl_buffer(VP9_COMP *cpi) {
// TODO(angiebird): This probably needs further modifications to support
// frame scaling later on.
- Status status = vp9_alloc_motion_field_info(
- &cpi->motion_field_info, MAX_ARF_GOP_SIZE, mi_rows, mi_cols);
- if (status == STATUS_FAILED) {
- vpx_internal_error(&(cm)->error, VPX_CODEC_MEM_ERROR,
- "vp9_alloc_motion_field_info failed");
- }
if (cpi->feature_score_loc_alloc == 0) {
// The smallest block size of motion field is 4x4, but the mi_unit is 8x8,
@@ -7470,6 +7464,19 @@ int vp9_get_compressed_data(VP9_COMP *cpi, unsigned int *frame_flags,
cpi->kmeans_data_arr_alloc = 1;
}
+#if CONFIG_NON_GREEDY_MV
+ {
+ const int mi_cols = mi_cols_aligned_to_sb(cm->mi_cols);
+ const int mi_rows = mi_cols_aligned_to_sb(cm->mi_rows);
+ Status status = vp9_alloc_motion_field_info(
+ &cpi->motion_field_info, MAX_ARF_GOP_SIZE, mi_rows, mi_cols);
+ if (status == STATUS_FAILED) {
+ vpx_internal_error(&(cm)->error, VPX_CODEC_MEM_ERROR,
+ "vp9_alloc_motion_field_info failed");
+ }
+ }
+#endif // CONFIG_NON_GREEDY_MV
+
if (gf_group_index == 1 &&
cpi->twopass.gf_group.update_type[gf_group_index] == ARF_UPDATE &&
cpi->sf.enable_tpl_model) {
diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c
index 1104c20bb..fa7472ca6 100644
--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -2499,7 +2499,7 @@ static void single_motion_search(VP9_COMP *cpi, MACROBLOCK *x, BLOCK_SIZE bsize,
int gf_group_idx = cpi->twopass.gf_group.index;
int gf_rf_idx = ref_frame_to_gf_rf_idx(ref);
BLOCK_SIZE square_bsize = get_square_block_size(bsize);
- int_mv nb_full_mvs[NB_MVS_NUM];
+ int_mv nb_full_mvs[NB_MVS_NUM] = { 0 };
MotionField *motion_field = vp9_motion_field_info_get_motion_field(
&cpi->motion_field_info, gf_group_idx, gf_rf_idx, square_bsize);
const int nb_full_mv_num =