Fix a bug in handle_inter_mode The return value is incorrect if joint compound search is early terminated. STATS_CHANGED Change-Id: I5911057b098a137be7d67b63abd494341cd53039
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c index a14f876..d0d6b1c 100644 --- a/av1/encoder/rdopt.c +++ b/av1/encoder/rdopt.c
@@ -8842,12 +8842,12 @@ *rd_stats = best_rd_stats; *rd_stats_y = best_rd_stats_y; *rd_stats_uv = best_rd_stats_uv; - ret_val = best_ret_val; *mbmi = best_mbmi; assert(IMPLIES(mbmi->comp_group_idx == 1, mbmi->interinter_comp.type != COMPOUND_AVERAGE)); memcpy(x->blk_skip, best_blk_skip, sizeof(best_blk_skip[0]) * xd->n8_h * xd->n8_w); + return RDCOST(x->rdmult, rd_stats->rate, rd_stats->dist); } if (early_terminate == INT64_MAX) return INT64_MAX; if (ret_val != 0) return ret_val;