Fix a segfault in simple_motion_search due to invalid search site
simple_motion_search uses NSTEP as its search_method, which depends on
search_site_config in AV1_COMP. On speed >= 6, search_site_config is not
updated correctly when there is a scaled reference frame as the
offset in search_site is not updated based on the current frame.
(search_site_config is only initialized once when AV1_COMP is created,
but the offset needs to be updated based on the current scale factor).
This commit fixes the segfault by forcing simple_motion_search to use
the search_method defined in speed feature. On speed == 6, this is set
to HEX, which does not rely on search_site_config anymore.
STATS_CHANGED
BUG=aomedia:2362
Change-Id: I10e1a165f41498413f332a46fca6cf7304f9c755
diff --git a/av1/encoder/mcomp.c b/av1/encoder/mcomp.c
index a2840d0..a3f7d25 100644
--- a/av1/encoder/mcomp.c
+++ b/av1/encoder/mcomp.c
@@ -3095,7 +3095,7 @@
MV ref_mv = { 0, 0 };
const int step_param = cpi->mv_step_param;
const MvLimits tmp_mv_limits = x->mv_limits;
- const SEARCH_METHODS search_methods = NSTEP;
+ const SEARCH_METHODS search_methods = cpi->sf.mv.search_method;
const int do_mesh_search = 0;
const int sadpb = x->sadperbit16;
int cost_list[5];