Pass ConvolveParams into prediction functions
Those functions includes
av1_make_inter_predictor
av1_build_inter_predictor
inter_predictor
Change-Id: Ide3b744277cf30964e8b352fc8de91365d7217a8
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index ee6cc7f..9418017 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -4879,6 +4879,7 @@
int id = ite % 2; // Even iterations search in the first reference frame,
// odd iterations search in the second. The predictor
// found for the 'other' reference frame is factored in.
+ ConvolveParams conv_params = get_conv_params(0);
// Initialized here because of compiler problem in Visual Studio.
ref_yv12[0] = xd->plane[0].pre[0];
@@ -4902,16 +4903,16 @@
MV_PRECISION_Q3, mi_col * MI_SIZE, mi_row * MI_SIZE, xd->bd);
} else {
second_pred = (uint8_t *)second_pred_alloc_16;
- av1_build_inter_predictor(ref_yv12[!id].buf, ref_yv12[!id].stride,
- second_pred, pw, &frame_mv[refs[!id]].as_mv,
- &sf, pw, ph, 0, interp_filter, MV_PRECISION_Q3,
- mi_col * MI_SIZE, mi_row * MI_SIZE);
+ av1_build_inter_predictor(
+ ref_yv12[!id].buf, ref_yv12[!id].stride, second_pred, pw,
+ &frame_mv[refs[!id]].as_mv, &sf, pw, ph, &conv_params, interp_filter,
+ MV_PRECISION_Q3, mi_col * MI_SIZE, mi_row * MI_SIZE);
}
#else
- av1_build_inter_predictor(ref_yv12[!id].buf, ref_yv12[!id].stride,
- second_pred, pw, &frame_mv[refs[!id]].as_mv, &sf,
- pw, ph, 0, interp_filter, MV_PRECISION_Q3,
- mi_col * MI_SIZE, mi_row * MI_SIZE);
+ av1_build_inter_predictor(
+ ref_yv12[!id].buf, ref_yv12[!id].stride, second_pred, pw,
+ &frame_mv[refs[!id]].as_mv, &sf, pw, ph, &conv_params, interp_filter,
+ MV_PRECISION_Q3, mi_col * MI_SIZE, mi_row * MI_SIZE);
#endif // CONFIG_AOM_HIGHBITDEPTH
// Do compound motion search on the current reference frame.
diff --git a/av1/encoder/temporal_filter.c b/av1/encoder/temporal_filter.c
index 4804499..c727000 100644
--- a/av1/encoder/temporal_filter.c
+++ b/av1/encoder/temporal_filter.c
@@ -39,6 +39,7 @@
const MV mv = { mv_row, mv_col };
enum mv_precision mv_precision_uv;
int uv_stride;
+ ConvolveParams conv_params = get_conv_params(which_mv);
#if USE_TEMPORALFILTER_12TAP
#if CONFIG_DUAL_FILTER
@@ -81,15 +82,15 @@
}
#endif // CONFIG_AOM_HIGHBITDEPTH
av1_build_inter_predictor(y_mb_ptr, stride, &pred[0], 16, &mv, scale, 16, 16,
- which_mv, interp_filter, MV_PRECISION_Q3, x, y);
+ &conv_params, interp_filter, MV_PRECISION_Q3, x, y);
av1_build_inter_predictor(u_mb_ptr, uv_stride, &pred[256], uv_block_width,
&mv, scale, uv_block_width, uv_block_height,
- which_mv, interp_filter, mv_precision_uv, x, y);
+ &conv_params, interp_filter, mv_precision_uv, x, y);
av1_build_inter_predictor(v_mb_ptr, uv_stride, &pred[512], uv_block_width,
&mv, scale, uv_block_width, uv_block_height,
- which_mv, interp_filter, mv_precision_uv, x, y);
+ &conv_params, interp_filter, mv_precision_uv, x, y);
}
void av1_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride,