summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_ethread.c
diff options
context:
space:
mode:
authorAlex Converse <aconverse@google.com>2015-03-05 12:09:48 -0800
committerAlex Converse <aconverse@google.com>2015-03-05 12:10:56 -0800
commit71d5a59c6db964cee203349b8bfad3a15aa719b2 (patch)
tree3c90645414b334dd4ab8777c5f6172e8662868f7 /vp9/encoder/vp9_ethread.c
parent56cc37c64295715f632c9f169f106bf5ce9420b6 (diff)
downloadlibvpx-71d5a59c6db964cee203349b8bfad3a15aa719b2.tar
libvpx-71d5a59c6db964cee203349b8bfad3a15aa719b2.tar.gz
libvpx-71d5a59c6db964cee203349b8bfad3a15aa719b2.tar.bz2
libvpx-71d5a59c6db964cee203349b8bfad3a15aa719b2.zip
Don't copy thread data for the main thread.
Change-Id: I6adee6704cacfeae0ed0b217a91095457d1be74a
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) {