Make InterModesInfo tile-independent for enc row-mt
InterModesInfo has been moved from TileDataEnc to ThreadData to
avoid race conditions when row based multi-threading is enabled
for encoder.
Change-Id: I19340b858334b3f3be4a43485a064e3227c97b07
diff --git a/av1/encoder/ethread.c b/av1/encoder/ethread.c
index 213bfe7..7c0e9cc 100644
--- a/av1/encoder/ethread.c
+++ b/av1/encoder/ethread.c
@@ -97,6 +97,12 @@
(int32_t *)aom_memalign(
16, MAX_SB_SQUARE * sizeof(*thread_data->td->wsrc_buf)));
+#if CONFIG_COLLECT_INTER_MODE_RD_STATS
+ CHECK_MEM_ERROR(cm, thread_data->td->inter_modes_info,
+ (InterModesInfo *)aom_malloc(
+ sizeof(*thread_data->td->inter_modes_info)));
+#endif
+
for (int x = 0; x < 2; x++)
for (int y = 0; y < 2; y++)
CHECK_MEM_ERROR(
@@ -199,6 +205,9 @@
thread_data->td->mb.above_pred_buf = thread_data->td->above_pred_buf;
thread_data->td->mb.left_pred_buf = thread_data->td->left_pred_buf;
thread_data->td->mb.wsrc_buf = thread_data->td->wsrc_buf;
+#if CONFIG_COLLECT_INTER_MODE_RD_STATS
+ thread_data->td->mb.inter_modes_info = thread_data->td->inter_modes_info;
+#endif
for (int x = 0; x < 2; x++) {
for (int y = 0; y < 2; y++) {
memcpy(thread_data->td->hash_value_buffer[x][y],