summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_ethread.c
diff options
context:
space:
mode:
Diffstat (limited to 'vp9/encoder/vp9_ethread.c')
-rw-r--r--vp9/encoder/vp9_ethread.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/vp9/encoder/vp9_ethread.c b/vp9/encoder/vp9_ethread.c
index 895563f57..46814cdfd 100644
--- a/vp9/encoder/vp9_ethread.c
+++ b/vp9/encoder/vp9_ethread.c
@@ -119,10 +119,14 @@ void vp9_encode_tiles_mt(VP9_COMP *cpi) {
thread_data = (EncWorkerData*)worker->data1;
// Before encoding a frame, copy the thread data from cpi.
- thread_data->td->mb = cpi->td.mb;
- thread_data->td->rd_counts = cpi->td.rd_counts;
- vpx_memcpy(thread_data->td->counts, &cpi->common.counts,
- sizeof(cpi->common.counts));
+ if (thread_data->td != &cpi->td) {
+ thread_data->td->mb = cpi->td.mb;
+ thread_data->td->rd_counts = cpi->td.rd_counts;
+ }
+ if (thread_data->td->counts != &cpi->common.counts) {
+ vpx_memcpy(thread_data->td->counts, &cpi->common.counts,
+ sizeof(cpi->common.counts));
+ }
// Handle use_nonrd_pick_mode case.
if (cpi->sf.use_nonrd_pick_mode) {