Fix crash in av1_compute_gm_for_valid_ref_frames
Address an issue in
https://aomedia-review.googlesource.com/c/aom/+/181161.
Fix a crash of the
AV1/AVxFrameParallelThreadEncodeLowResTestLarge.FrameParallelThreadEncodeTest/6
test in the av1_compute_gm_for_valid_ref_frames() call in
gm_mt_worker_hook() in -DCONFIG_FPMT_TEST=1 build. In
gm_mt_worker_hook(), the xd struct is all zeros except xd->error_info,
so if we pass xd to av1_compute_gm_for_valid_ref_frames, we eventually
crash in a is_cur_buf_hbd(xd) call because xd->cur_buf is a null
pointer.
Pass error_info instead of xd to av1_compute_gm_for_valid_ref_frames().
Change-Id: I54db3808ce7b2c49d45849c0b7caf6d1de812c3e
diff --git a/av1/encoder/ethread.c b/av1/encoder/ethread.c
index f28d78f..e020063 100644
--- a/av1/encoder/ethread.c
+++ b/av1/encoder/ethread.c
@@ -2537,9 +2537,9 @@
// Compute global motion for the given ref_buf_idx.
av1_compute_gm_for_valid_ref_frames(
- cpi, xd, gm_info->ref_buf, ref_buf_idx, gm_thread_data->motion_models,
- gm_thread_data->segment_map, gm_info->segment_map_w,
- gm_info->segment_map_h);
+ cpi, error_info, gm_info->ref_buf, ref_buf_idx,
+ gm_thread_data->motion_models, gm_thread_data->segment_map,
+ gm_info->segment_map_w, gm_info->segment_map_h);
#if CONFIG_MULTITHREAD
pthread_mutex_lock(gm_mt_mutex_);