Fix a data race in SB level re-encoding
Currently, the functions av1_backup_sb_state and av1_restore_sb_state
reads/writes RD_COUNTS to/from AV1_COMP. This causes data race as the
reads/writes should be done to ThreadData instead.
Change-Id: I7eee4bfb22a76aac466de0f750627972cdb0aeeb
diff --git a/av1/encoder/encodeframe_utils.c b/av1/encoder/encodeframe_utils.c
index fdfddcb..e011b11 100644
--- a/av1/encoder/encodeframe_utils.c
+++ b/av1/encoder/encodeframe_utils.c
@@ -1446,7 +1446,7 @@
xd->left_txfm_context_buffer + (mi_row & MAX_MIB_MASK);
av1_save_context(x, &sb_fp_stats->x_ctx, mi_row, mi_col, sb_size, num_planes);
- sb_fp_stats->rd_count = cpi->td.rd_counts;
+ sb_fp_stats->rd_count = td->rd_counts;
sb_fp_stats->split_count = x->txfm_search_info.txb_split_count;
sb_fp_stats->fc = *td->counts;
@@ -1479,7 +1479,7 @@
av1_restore_context(x, &sb_fp_stats->x_ctx, mi_row, mi_col, sb_size,
num_planes);
- cpi->td.rd_counts = sb_fp_stats->rd_count;
+ td->rd_counts = sb_fp_stats->rd_count;
x->txfm_search_info.txb_split_count = sb_fp_stats->split_count;
*td->counts = sb_fp_stats->fc;