Commit 9f7ca0b7 authored by Fergus Simpson's avatar Fergus Simpson

handle_inter_mode: rename opt_args to args

The addition of a 2D array to the HandleInterModeArgs struct means there
is now a non-optional member in the opt_args struct passed to
handle_inter_mode and its child functions. Since opt_args no longer
consists solely of optional members I've renamed it args.

Change-Id: I7f3b22188777d8fdac2c244746638c34b5d8636c
parent 3260480b
...@@ -7906,7 +7906,7 @@ static int64_t handle_newmv(const AV1_COMP *const cpi, MACROBLOCK *const x, ...@@ -7906,7 +7906,7 @@ static int64_t handle_newmv(const AV1_COMP *const cpi, MACROBLOCK *const x,
int_mv (*const mode_mv)[TOTAL_REFS_PER_FRAME], int_mv (*const mode_mv)[TOTAL_REFS_PER_FRAME],
const int mi_row, const int mi_col, const int mi_row, const int mi_col,
int *const rate_mv, int_mv *const single_newmv, int *const rate_mv, int_mv *const single_newmv,
HandleInterModeArgs *const opt_args) { HandleInterModeArgs *const args) {
const MACROBLOCKD *const xd = &x->e_mbd; const MACROBLOCKD *const xd = &x->e_mbd;
const MB_MODE_INFO *const mbmi = &xd->mi[0]->mbmi; const MB_MODE_INFO *const mbmi = &xd->mi[0]->mbmi;
const MB_MODE_INFO_EXT *const mbmi_ext = x->mbmi_ext; const MB_MODE_INFO_EXT *const mbmi_ext = x->mbmi_ext;
...@@ -7921,13 +7921,13 @@ static int64_t handle_newmv(const AV1_COMP *const cpi, MACROBLOCK *const x, ...@@ -7921,13 +7921,13 @@ static int64_t handle_newmv(const AV1_COMP *const cpi, MACROBLOCK *const x,
mbmi->ref_frame[1] < 0 ? 0 : mbmi->ref_frame[1] }; mbmi->ref_frame[1] < 0 ? 0 : mbmi->ref_frame[1] };
int i; int i;
(void)opt_args; (void)args;
if (is_comp_pred) { if (is_comp_pred) {
#if CONFIG_EXT_INTER #if CONFIG_EXT_INTER
for (i = 0; i < 2; ++i) { for (i = 0; i < 2; ++i) {
single_newmv[refs[i]].as_int = single_newmv[refs[i]].as_int =
opt_args->single_newmvs[mv_idx][refs[i]].as_int; args->single_newmvs[mv_idx][refs[i]].as_int;
} }
if (this_mode == NEW_NEWMV) { if (this_mode == NEW_NEWMV) {
...@@ -7982,12 +7982,12 @@ static int64_t handle_newmv(const AV1_COMP *const cpi, MACROBLOCK *const x, ...@@ -7982,12 +7982,12 @@ static int64_t handle_newmv(const AV1_COMP *const cpi, MACROBLOCK *const x,
} else { } else {
#if CONFIG_EXT_INTER #if CONFIG_EXT_INTER
if (is_comp_interintra_pred) { if (is_comp_interintra_pred) {
x->best_mv = opt_args->single_newmvs[mv_idx][refs[0]]; x->best_mv = args->single_newmvs[mv_idx][refs[0]];
*rate_mv = opt_args->single_newmvs_rate[mv_idx][refs[0]]; *rate_mv = args->single_newmvs_rate[mv_idx][refs[0]];
} else { } else {
single_motion_search(cpi, x, bsize, mi_row, mi_col, 0, mv_idx, rate_mv); single_motion_search(cpi, x, bsize, mi_row, mi_col, 0, mv_idx, rate_mv);
opt_args->single_newmvs[mv_idx][refs[0]] = x->best_mv; args->single_newmvs[mv_idx][refs[0]] = x->best_mv;
opt_args->single_newmvs_rate[mv_idx][refs[0]] = *rate_mv; args->single_newmvs_rate[mv_idx][refs[0]] = *rate_mv;
} }
#else #else
single_motion_search(cpi, x, bsize, mi_row, mi_col, rate_mv); single_motion_search(cpi, x, bsize, mi_row, mi_col, rate_mv);
...@@ -8138,7 +8138,7 @@ static int64_t handle_inter_mode( ...@@ -8138,7 +8138,7 @@ static int64_t handle_inter_mode(
const AV1_COMP *const cpi, MACROBLOCK *x, BLOCK_SIZE bsize, const AV1_COMP *const cpi, MACROBLOCK *x, BLOCK_SIZE bsize,
RD_STATS *rd_stats, RD_STATS *rd_stats_y, RD_STATS *rd_stats_uv, RD_STATS *rd_stats, RD_STATS *rd_stats_y, RD_STATS *rd_stats_uv,
int *disable_skip, int_mv (*mode_mv)[TOTAL_REFS_PER_FRAME], int mi_row, int *disable_skip, int_mv (*mode_mv)[TOTAL_REFS_PER_FRAME], int mi_row,
int mi_col, HandleInterModeArgs *opt_args, const int64_t ref_best_rd) { int mi_col, HandleInterModeArgs *args, const int64_t ref_best_rd) {
const AV1_COMMON *cm = &cpi->common; const AV1_COMMON *cm = &cpi->common;
MACROBLOCKD *xd = &x->e_mbd; MACROBLOCKD *xd = &x->e_mbd;
MB_MODE_INFO *mbmi = &xd->mi[0]->mbmi; MB_MODE_INFO *mbmi = &xd->mi[0]->mbmi;
...@@ -8163,7 +8163,7 @@ static int64_t handle_inter_mode( ...@@ -8163,7 +8163,7 @@ static int64_t handle_inter_mode(
uint8_t ref_frame_type = av1_ref_frame_type(mbmi->ref_frame); uint8_t ref_frame_type = av1_ref_frame_type(mbmi->ref_frame);
#endif // CONFIG_REF_MV #endif // CONFIG_REF_MV
#else #else
int_mv *const single_newmv = opt_args->single_newmv; int_mv *const single_newmv = args->single_newmv;
#endif // CONFIG_EXT_INTER #endif // CONFIG_EXT_INTER
#if CONFIG_AOM_HIGHBITDEPTH #if CONFIG_AOM_HIGHBITDEPTH
DECLARE_ALIGNED(16, uint8_t, tmp_buf_[2 * MAX_MB_PLANE * MAX_SB_SQUARE]); DECLARE_ALIGNED(16, uint8_t, tmp_buf_[2 * MAX_MB_PLANE * MAX_SB_SQUARE]);
...@@ -8204,9 +8204,9 @@ static int64_t handle_inter_mode( ...@@ -8204,9 +8204,9 @@ static int64_t handle_inter_mode(
#endif // CONFIG_MOTION_VAR || CONFIG_WARPED_MOTION #endif // CONFIG_MOTION_VAR || CONFIG_WARPED_MOTION
#if CONFIG_EXT_INTER #if CONFIG_EXT_INTER
*opt_args->compmode_interintra_cost = 0; *args->compmode_interintra_cost = 0;
mbmi->use_wedge_interintra = 0; mbmi->use_wedge_interintra = 0;
*opt_args->compmode_interinter_cost = 0; *args->compmode_interinter_cost = 0;
mbmi->interinter_compound_data.type = COMPOUND_AVERAGE; mbmi->interinter_compound_data.type = COMPOUND_AVERAGE;
// is_comp_interintra_pred implies !is_comp_pred // is_comp_interintra_pred implies !is_comp_pred
...@@ -8251,7 +8251,7 @@ static int64_t handle_inter_mode( ...@@ -8251,7 +8251,7 @@ static int64_t handle_inter_mode(
mbmi->motion_mode = SIMPLE_TRANSLATION; mbmi->motion_mode = SIMPLE_TRANSLATION;
if (have_newmv_in_inter_mode(this_mode)) { if (have_newmv_in_inter_mode(this_mode)) {
const int64_t ret_val = handle_newmv(cpi, x, bsize, mode_mv, mi_row, mi_col, const int64_t ret_val = handle_newmv(cpi, x, bsize, mode_mv, mi_row, mi_col,
&rate_mv, single_newmv, opt_args); &rate_mv, single_newmv, args);
if (ret_val != 0) if (ret_val != 0)
return ret_val; return ret_val;
else else
...@@ -8402,8 +8402,8 @@ static int64_t handle_inter_mode( ...@@ -8402,8 +8402,8 @@ static int64_t handle_inter_mode(
return INT64_MAX; return INT64_MAX;
int64_t ret_val = interpolation_filter_search( int64_t ret_val = interpolation_filter_search(
x, cpi, bsize, mi_row, mi_col, &tmp_dst, &orig_dst, x, cpi, bsize, mi_row, mi_col, &tmp_dst, &orig_dst, args->single_filter,
opt_args->single_filter, &rd, &rs, &skip_txfm_sb, &skip_sse_sb); &rd, &rs, &skip_txfm_sb, &skip_sse_sb);
if (ret_val != 0) return ret_val; if (ret_val != 0) return ret_val;
#if CONFIG_EXT_INTER #if CONFIG_EXT_INTER
...@@ -8532,7 +8532,7 @@ static int64_t handle_inter_mode( ...@@ -8532,7 +8532,7 @@ static int64_t handle_inter_mode(
pred_exists = 0; pred_exists = 0;
*opt_args->compmode_interinter_cost = *args->compmode_interinter_cost =
compound_type_cost[mbmi->interinter_compound_data.type] + compound_type_cost[mbmi->interinter_compound_data.type] +
av1_cost_literal(get_interinter_compound_type_bits( av1_cost_literal(get_interinter_compound_type_bits(
bsize, mbmi->interinter_compound_data.type)); bsize, mbmi->interinter_compound_data.type));
...@@ -8671,20 +8671,20 @@ static int64_t handle_inter_mode( ...@@ -8671,20 +8671,20 @@ static int64_t handle_inter_mode(
} }
pred_exists = 0; pred_exists = 0;
*opt_args->compmode_interintra_cost = *args->compmode_interintra_cost =
av1_cost_bit(cm->fc->interintra_prob[size_group_lookup[bsize]], 1); av1_cost_bit(cm->fc->interintra_prob[size_group_lookup[bsize]], 1);
*opt_args->compmode_interintra_cost += *args->compmode_interintra_cost +=
interintra_mode_cost[mbmi->interintra_mode]; interintra_mode_cost[mbmi->interintra_mode];
if (is_interintra_wedge_used(bsize)) { if (is_interintra_wedge_used(bsize)) {
*opt_args->compmode_interintra_cost += av1_cost_bit( *args->compmode_interintra_cost += av1_cost_bit(
cm->fc->wedge_interintra_prob[bsize], mbmi->use_wedge_interintra); cm->fc->wedge_interintra_prob[bsize], mbmi->use_wedge_interintra);
if (mbmi->use_wedge_interintra) { if (mbmi->use_wedge_interintra) {
*opt_args->compmode_interintra_cost += *args->compmode_interintra_cost +=
av1_cost_literal(get_interintra_wedge_bits(bsize)); av1_cost_literal(get_interintra_wedge_bits(bsize));
} }
} }
} else if (is_interintra_allowed(mbmi)) { } else if (is_interintra_allowed(mbmi)) {
*opt_args->compmode_interintra_cost = *args->compmode_interintra_cost =
av1_cost_bit(cm->fc->interintra_prob[size_group_lookup[bsize]], 0); av1_cost_bit(cm->fc->interintra_prob[size_group_lookup[bsize]], 0);
} }
...@@ -8700,24 +8700,24 @@ static int64_t handle_inter_mode( ...@@ -8700,24 +8700,24 @@ static int64_t handle_inter_mode(
if (!is_comp_pred) if (!is_comp_pred)
#if CONFIG_DUAL_FILTER #if CONFIG_DUAL_FILTER
opt_args->single_filter[this_mode][refs[0]] = mbmi->interp_filter[0]; args->single_filter[this_mode][refs[0]] = mbmi->interp_filter[0];
#else #else
opt_args->single_filter[this_mode][refs[0]] = mbmi->interp_filter; args->single_filter[this_mode][refs[0]] = mbmi->interp_filter;
#endif // CONFIG_DUAL_FILTER #endif // CONFIG_DUAL_FILTER
#if CONFIG_EXT_INTER #if CONFIG_EXT_INTER
if (opt_args->modelled_rd != NULL) { if (args->modelled_rd != NULL) {
if (is_comp_pred) { if (is_comp_pred) {
const int mode0 = compound_ref0_mode(this_mode); const int mode0 = compound_ref0_mode(this_mode);
const int mode1 = compound_ref1_mode(this_mode); const int mode1 = compound_ref1_mode(this_mode);
const int64_t mrd = AOMMIN(opt_args->modelled_rd[mode0][refs[0]], const int64_t mrd = AOMMIN(args->modelled_rd[mode0][refs[0]],
opt_args->modelled_rd[mode1][refs[1]]); args->modelled_rd[mode1][refs[1]]);
if (rd / 4 * 3 > mrd && ref_best_rd < INT64_MAX) { if (rd / 4 * 3 > mrd && ref_best_rd < INT64_MAX) {
restore_dst_buf(xd, orig_dst); restore_dst_buf(xd, orig_dst);
return INT64_MAX; return INT64_MAX;
} }
} else if (!is_comp_interintra_pred) { } else if (!is_comp_interintra_pred) {
opt_args->modelled_rd[this_mode][refs[0]] = rd; args->modelled_rd[this_mode][refs[0]] = rd;
} }
} }
#endif // CONFIG_EXT_INTER #endif // CONFIG_EXT_INTER
...@@ -8798,9 +8798,8 @@ static int64_t handle_inter_mode( ...@@ -8798,9 +8798,8 @@ static int64_t handle_inter_mode(
#endif // CONFIG_EXT_INTER #endif // CONFIG_EXT_INTER
} }
av1_build_obmc_inter_prediction( av1_build_obmc_inter_prediction(
cm, xd, mi_row, mi_col, opt_args->above_pred_buf, cm, xd, mi_row, mi_col, args->above_pred_buf, args->above_pred_stride,
opt_args->above_pred_stride, opt_args->left_pred_buf, args->left_pred_buf, args->left_pred_stride);
opt_args->left_pred_stride);
model_rd_for_sb(cpi, bsize, x, xd, 0, MAX_MB_PLANE - 1, &tmp_rate, model_rd_for_sb(cpi, bsize, x, xd, 0, MAX_MB_PLANE - 1, &tmp_rate,
&tmp_dist, &skip_txfm_sb, &skip_sse_sb); &tmp_dist, &skip_txfm_sb, &skip_sse_sb);
} }
...@@ -9511,7 +9510,7 @@ void av1_rd_pick_inter_mode_sb(const AV1_COMP *cpi, TileDataEnc *tile_data, ...@@ -9511,7 +9510,7 @@ void av1_rd_pick_inter_mode_sb(const AV1_COMP *cpi, TileDataEnc *tile_data,
od_rollback_buffer pre_buf; od_rollback_buffer pre_buf;
#endif // CONFIG_PVQ #endif // CONFIG_PVQ
HandleInterModeArgs opt_args = { HandleInterModeArgs args = {
#if CONFIG_MOTION_VAR #if CONFIG_MOTION_VAR
{ NULL }, { NULL },
{ MAX_SB_SIZE, MAX_SB_SIZE, MAX_SB_SIZE }, { MAX_SB_SIZE, MAX_SB_SIZE, MAX_SB_SIZE },
...@@ -9557,24 +9556,22 @@ void av1_rd_pick_inter_mode_sb(const AV1_COMP *cpi, TileDataEnc *tile_data, ...@@ -9557,24 +9556,22 @@ void av1_rd_pick_inter_mode_sb(const AV1_COMP *cpi, TileDataEnc *tile_data,
#if CONFIG_AOM_HIGHBITDEPTH #if CONFIG_AOM_HIGHBITDEPTH
if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) { if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) {
int len = sizeof(uint16_t); int len = sizeof(uint16_t);
opt_args.above_pred_buf[0] = CONVERT_TO_BYTEPTR(tmp_buf1); args.above_pred_buf[0] = CONVERT_TO_BYTEPTR(tmp_buf1);
opt_args.above_pred_buf[1] = args.above_pred_buf[1] = CONVERT_TO_BYTEPTR(tmp_buf1 + MAX_SB_SQUARE * len);
CONVERT_TO_BYTEPTR(tmp_buf1 + MAX_SB_SQUARE * len); args.above_pred_buf[2] =
opt_args.above_pred_buf[2] =
CONVERT_TO_BYTEPTR(tmp_buf1 + 2 * MAX_SB_SQUARE * len); CONVERT_TO_BYTEPTR(tmp_buf1 + 2 * MAX_SB_SQUARE * len);
opt_args.left_pred_buf[0] = CONVERT_TO_BYTEPTR(tmp_buf2); args.left_pred_buf[0] = CONVERT_TO_BYTEPTR(tmp_buf2);
opt_args.left_pred_buf[1] = args.left_pred_buf[1] = CONVERT_TO_BYTEPTR(tmp_buf2 + MAX_SB_SQUARE * len);
CONVERT_TO_BYTEPTR(tmp_buf2 + MAX_SB_SQUARE * len); args.left_pred_buf[2] =
opt_args.left_pred_buf[2] =
CONVERT_TO_BYTEPTR(tmp_buf2 + 2 * MAX_SB_SQUARE * len); CONVERT_TO_BYTEPTR(tmp_buf2 + 2 * MAX_SB_SQUARE * len);
} else { } else {
#endif // CONFIG_AOM_HIGHBITDEPTH #endif // CONFIG_AOM_HIGHBITDEPTH
opt_args.above_pred_buf[0] = tmp_buf1; args.above_pred_buf[0] = tmp_buf1;
opt_args.above_pred_buf[1] = tmp_buf1 + MAX_SB_SQUARE; args.above_pred_buf[1] = tmp_buf1 + MAX_SB_SQUARE;
opt_args.above_pred_buf[2] = tmp_buf1 + 2 * MAX_SB_SQUARE; args.above_pred_buf[2] = tmp_buf1 + 2 * MAX_SB_SQUARE;
opt_args.left_pred_buf[0] = tmp_buf2; args.left_pred_buf[0] = tmp_buf2;
opt_args.left_pred_buf[1] = tmp_buf2 + MAX_SB_SQUARE; args.left_pred_buf[1] = tmp_buf2 + MAX_SB_SQUARE;
opt_args.left_pred_buf[2] = tmp_buf2 + 2 * MAX_SB_SQUARE; args.left_pred_buf[2] = tmp_buf2 + 2 * MAX_SB_SQUARE;
#if CONFIG_AOM_HIGHBITDEPTH #if CONFIG_AOM_HIGHBITDEPTH
} }
#endif // CONFIG_AOM_HIGHBITDEPTH #endif // CONFIG_AOM_HIGHBITDEPTH
...@@ -9605,7 +9602,7 @@ void av1_rd_pick_inter_mode_sb(const AV1_COMP *cpi, TileDataEnc *tile_data, ...@@ -9605,7 +9602,7 @@ void av1_rd_pick_inter_mode_sb(const AV1_COMP *cpi, TileDataEnc *tile_data,
for (i = 0; i < TOTAL_REFS_PER_FRAME; ++i) x->pred_sse[i] = INT_MAX; for (i = 0; i < TOTAL_REFS_PER_FRAME; ++i) x->pred_sse[i] = INT_MAX;
for (i = 0; i < MB_MODE_COUNT; ++i) { for (i = 0; i < MB_MODE_COUNT; ++i) {
for (k = 0; k < TOTAL_REFS_PER_FRAME; ++k) { for (k = 0; k < TOTAL_REFS_PER_FRAME; ++k) {
opt_args.single_filter[i][k] = SWITCHABLE; args.single_filter[i][k] = SWITCHABLE;
} }
} }
...@@ -9680,19 +9677,18 @@ void av1_rd_pick_inter_mode_sb(const AV1_COMP *cpi, TileDataEnc *tile_data, ...@@ -9680,19 +9677,18 @@ void av1_rd_pick_inter_mode_sb(const AV1_COMP *cpi, TileDataEnc *tile_data,
#if CONFIG_MOTION_VAR #if CONFIG_MOTION_VAR
av1_count_overlappable_neighbors(cm, xd, mi_row, mi_col); av1_count_overlappable_neighbors(cm, xd, mi_row, mi_col);
if (check_num_overlappable_neighbors(mbmi)) { if (check_num_overlappable_neighbors(mbmi)) {
av1_build_prediction_by_above_preds( av1_build_prediction_by_above_preds(cm, xd, mi_row, mi_col,
cm, xd, mi_row, mi_col, opt_args.above_pred_buf, dst_width1, args.above_pred_buf, dst_width1,
dst_height1, opt_args.above_pred_stride); dst_height1, args.above_pred_stride);
av1_build_prediction_by_left_preds(cm, xd, mi_row, mi_col, av1_build_prediction_by_left_preds(cm, xd, mi_row, mi_col,
opt_args.left_pred_buf, dst_width2, args.left_pred_buf, dst_width2,
dst_height2, opt_args.left_pred_stride); dst_height2, args.left_pred_stride);
av1_setup_dst_planes(xd->plane, get_frame_new_buffer(cm), mi_row, mi_col); av1_setup_dst_planes(xd->plane, get_frame_new_buffer(cm), mi_row, mi_col);
x->mask_buf = mask2d_buf; x->mask_buf = mask2d_buf;
x->wsrc_buf = weighted_src_buf; x->wsrc_buf = weighted_src_buf;
calc_target_weighted_pred( calc_target_weighted_pred(cm, x, xd, mi_row, mi_col, args.above_pred_buf[0],
cm, x, xd, mi_row, mi_col, opt_args.above_pred_buf[0], args.above_pred_stride[0], args.left_pred_buf[0],
opt_args.above_pred_stride[0], opt_args.left_pred_buf[0], args.left_pred_stride[0]);
opt_args.left_pred_stride[0]);
} }
#endif // CONFIG_MOTION_VAR #endif // CONFIG_MOTION_VAR
...@@ -10254,21 +10250,21 @@ void av1_rd_pick_inter_mode_sb(const AV1_COMP *cpi, TileDataEnc *tile_data, ...@@ -10254,21 +10250,21 @@ void av1_rd_pick_inter_mode_sb(const AV1_COMP *cpi, TileDataEnc *tile_data,
// Point to variables that are maintained between loop iterations // Point to variables that are maintained between loop iterations
#if CONFIG_EXT_INTER #if CONFIG_EXT_INTER
opt_args.single_newmvs = single_newmvs; args.single_newmvs = single_newmvs;
opt_args.single_newmvs_rate = single_newmvs_rate; args.single_newmvs_rate = single_newmvs_rate;
opt_args.compmode_interintra_cost = &compmode_interintra_cost; args.compmode_interintra_cost = &compmode_interintra_cost;
opt_args.compmode_interinter_cost = &compmode_interinter_cost; args.compmode_interinter_cost = &compmode_interinter_cost;
opt_args.modelled_rd = modelled_rd; args.modelled_rd = modelled_rd;
#else #else
opt_args.single_newmv = single_newmv; args.single_newmv = single_newmv;
#endif // CONFIG_EXT_INTER #endif // CONFIG_EXT_INTER
this_rd = handle_inter_mode(cpi, x, bsize, &rd_stats, &rd_stats_y, this_rd = handle_inter_mode(cpi, x, bsize, &rd_stats, &rd_stats_y,
&rd_stats_uv, &disable_skip, frame_mv, &rd_stats_uv, &disable_skip, frame_mv,
mi_row, mi_col, &opt_args, best_rd); mi_row, mi_col, &args, best_rd);
// Prevent pointers from escaping local scope // Prevent pointers from escaping local scope
#if CONFIG_EXT_INTER #if CONFIG_EXT_INTER
opt_args.compmode_interintra_cost = NULL; args.compmode_interintra_cost = NULL;
opt_args.compmode_interinter_cost = NULL; args.compmode_interinter_cost = NULL;
#endif // CONFIG_EXT_INTER #endif // CONFIG_EXT_INTER
rate2 = rd_stats.rate; rate2 = rd_stats.rate;
...@@ -10384,26 +10380,25 @@ void av1_rd_pick_inter_mode_sb(const AV1_COMP *cpi, TileDataEnc *tile_data, ...@@ -10384,26 +10380,25 @@ void av1_rd_pick_inter_mode_sb(const AV1_COMP *cpi, TileDataEnc *tile_data,
// Point to variables that are not maintained between iterations // Point to variables that are not maintained between iterations
#if CONFIG_EXT_INTER #if CONFIG_EXT_INTER
opt_args.single_newmvs = dummy_single_newmvs; args.single_newmvs = dummy_single_newmvs;
opt_args.single_newmvs_rate = dummy_single_newmvs_rate; args.single_newmvs_rate = dummy_single_newmvs_rate;
opt_args.compmode_interintra_cost = &tmp_compmode_interintra_cost; args.compmode_interintra_cost = &tmp_compmode_interintra_cost;
opt_args.compmode_interinter_cost = &tmp_compmode_interinter_cost; args.compmode_interinter_cost = &tmp_compmode_interinter_cost;
opt_args.modelled_rd = NULL; args.modelled_rd = NULL;
#else #else
opt_args.single_newmv = dummy_single_newmv; args.single_newmv = dummy_single_newmv;
#endif // CONFIG_EXT_INTER #endif // CONFIG_EXT_INTER
tmp_alt_rd = tmp_alt_rd = handle_inter_mode(
handle_inter_mode(cpi, x, bsize, &tmp_rd_stats, &tmp_rd_stats_y, cpi, x, bsize, &tmp_rd_stats, &tmp_rd_stats_y, &tmp_rd_stats_uv,
&tmp_rd_stats_uv, &dummy_disable_skip, &dummy_disable_skip, frame_mv, mi_row, mi_col, &args, best_rd);
frame_mv, mi_row, mi_col, &opt_args, best_rd);
// Prevent pointers from escaping local scope // Prevent pointers from escaping local scope
#if CONFIG_EXT_INTER #if CONFIG_EXT_INTER
opt_args.single_newmvs = NULL; args.single_newmvs = NULL;
opt_args.single_newmvs_rate = NULL; args.single_newmvs_rate = NULL;
opt_args.compmode_interintra_cost = NULL; args.compmode_interintra_cost = NULL;
opt_args.compmode_interinter_cost = NULL; args.compmode_interinter_cost = NULL;
#else #else
opt_args.single_newmv = NULL; args.single_newmv = NULL;
#endif // CONFIG_EXT_INTER #endif // CONFIG_EXT_INTER
} }
...@@ -10729,9 +10724,8 @@ void av1_rd_pick_inter_mode_sb(const AV1_COMP *cpi, TileDataEnc *tile_data, ...@@ -10729,9 +10724,8 @@ void av1_rd_pick_inter_mode_sb(const AV1_COMP *cpi, TileDataEnc *tile_data,
#if CONFIG_MOTION_VAR #if CONFIG_MOTION_VAR
if (mbmi->motion_mode == OBMC_CAUSAL) if (mbmi->motion_mode == OBMC_CAUSAL)
av1_build_obmc_inter_prediction( av1_build_obmc_inter_prediction(
cm, xd, mi_row, mi_col, opt_args.above_pred_buf, cm, xd, mi_row, mi_col, args.above_pred_buf, args.above_pred_stride,
opt_args.above_pred_stride, opt_args.left_pred_buf, args.left_pred_buf, args.left_pred_stride);
opt_args.left_pred_stride);
#endif // CONFIG_MOTION_VAR #endif // CONFIG_MOTION_VAR
av1_subtract_plane(x, bsize, 0); av1_subtract_plane(x, bsize, 0);
#if CONFIG_VAR_TX #if CONFIG_VAR_TX
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment