Deprecate mv_precision from av1_build_inter_predictor
Change-Id: Ic4a29d34918ab1d4165992a0a771476b3bd7bed7
diff --git a/av1/encoder/reconinter_enc.c b/av1/encoder/reconinter_enc.c
index 70461b6..979a667 100644
--- a/av1/encoder/reconinter_enc.c
+++ b/av1/encoder/reconinter_enc.c
@@ -289,10 +289,12 @@
int p_row, int plane, int ref,
mv_precision precision, int x, int y,
const MACROBLOCKD *xd, int can_use_previous) {
- const int is_q4 = precision == MV_PRECISION_Q4;
- const MV mv_q4 = { is_q4 ? src_mv->row : src_mv->row * 2,
- is_q4 ? src_mv->col : src_mv->col * 2 };
+ const struct macroblockd_plane *pd = &xd->plane[conv_params->plane];
+ const MV mv_q4 = { pd->subsampling_y ? src_mv->row : src_mv->row * 2,
+ pd->subsampling_x ? src_mv->col : src_mv->col * 2 };
+ (void)plane;
+ (void)precision;
(void)warp_types;
(void)ref;
(void)can_use_previous;
@@ -310,10 +312,10 @@
inter_pred_params.conv_params = *conv_params;
- av1_init_inter_params(
- &inter_pred_params, w, h, p_col, p_row, xd->plane[plane].subsampling_x,
- xd->plane[plane].subsampling_y, xd->bd, is_cur_buf_hbd(xd),
- xd->mi[0]->use_intrabc, sf, interp_filters);
+ av1_init_inter_params(&inter_pred_params, w, h, p_col, p_row,
+ pd->subsampling_x, pd->subsampling_y, xd->bd,
+ is_cur_buf_hbd(xd), xd->mi[0]->use_intrabc, sf,
+ interp_filters);
av1_make_inter_predictor(src, src_stride, dst, dst_stride, &inter_pred_params,
&subpel_params);
diff --git a/av1/encoder/temporal_filter.c b/av1/encoder/temporal_filter.c
index 566483e..83fc112 100644
--- a/av1/encoder/temporal_filter.c
+++ b/av1/encoder/temporal_filter.c
@@ -58,8 +58,6 @@
int can_use_previous, int num_planes, MV *blk_mvs, int use_32x32) {
mv_precision mv_precision_uv;
int uv_stride;
- // TODO(angiebird): change plane setting accordingly
- ConvolveParams conv_params = get_conv_params(0, 0, xd->bd);
const int_interpfilters interp_filters =
av1_broadcast_interp_filter(MULTITAP_SHARP);
WarpTypesAllowed warp_types;
@@ -74,6 +72,7 @@
mv_precision_uv = MV_PRECISION_Q3;
}
+ ConvolveParams conv_params = get_conv_params(0, 0, xd->bd);
if (use_32x32) {
assert(mv_row >= INT16_MIN && mv_row <= INT16_MAX && mv_col >= INT16_MIN &&
mv_col <= INT16_MAX);
@@ -84,10 +83,13 @@
y, 0, 0, MV_PRECISION_Q3, x, y, xd,
can_use_previous);
if (num_planes > 1) {
+ conv_params = get_conv_params(0, 1, xd->bd);
av1_build_inter_predictor(
u_mb_ptr, uv_stride, &pred[BLK_PELS], uv_block_width, &mv, scale,
uv_block_width, uv_block_height, &conv_params, interp_filters,
&warp_types, x, y, 1, 0, mv_precision_uv, x, y, xd, can_use_previous);
+
+ conv_params = get_conv_params(0, 2, xd->bd);
av1_build_inter_predictor(
v_mb_ptr, uv_stride, &pred[(BLK_PELS << 1)], uv_block_width, &mv,
scale, uv_block_width, uv_block_height, &conv_params, interp_filters,
@@ -101,6 +103,7 @@
// predictors.
int i, j, k = 0, ys = (BH >> 1), xs = (BW >> 1);
// Y predictor
+ conv_params = get_conv_params(0, 0, xd->bd);
for (i = 0; i < BH; i += ys) {
for (j = 0; j < BW; j += xs) {
const MV mv = blk_mvs[k];
@@ -127,11 +130,14 @@
const int uv_offset = i * uv_stride + j;
const int p_offset = i * uv_block_width + j;
+ conv_params = get_conv_params(0, 1, xd->bd);
av1_build_inter_predictor(u_mb_ptr + uv_offset, uv_stride,
&pred[BLK_PELS + p_offset], uv_block_width,
&mv, scale, xs, ys, &conv_params,
interp_filters, &warp_types, x, y, 1, 0,
mv_precision_uv, x, y, xd, can_use_previous);
+
+ conv_params = get_conv_params(0, 2, xd->bd);
av1_build_inter_predictor(
v_mb_ptr + uv_offset, uv_stride, &pred[(BLK_PELS << 1) + p_offset],
uv_block_width, &mv, scale, xs, ys, &conv_params, interp_filters,