summaryrefslogtreecommitdiff
path: root/src/lib/j2k_encoder.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2022-05-23 15:25:43 +0200
committerCarl Hetherington <cth@carlh.net>2022-05-23 16:55:28 +0200
commitf01378133e187043f499fcd9c354e9321343c7be (patch)
tree83ed97a5c755c061bf564682bc5e2e8199d5123b /src/lib/j2k_encoder.cc
parent7ace2ca4cd301b4c69671a6983804c6a13ec72a0 (diff)
encoder using batching
Diffstat (limited to 'src/lib/j2k_encoder.cc')
-rw-r--r--src/lib/j2k_encoder.cc12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/lib/j2k_encoder.cc b/src/lib/j2k_encoder.cc
index 11b360b34..49f11377c 100644
--- a/src/lib/j2k_encoder.cc
+++ b/src/lib/j2k_encoder.cc
@@ -115,6 +115,10 @@ J2KEncoder::end ()
_full_condition.wait (lock);
}
+ for (auto& worker: _workers) {
+ worker->flush();
+ }
+
lock.unlock ();
LOG_GENERAL_NC (N_("Terminating encoder threads"));
@@ -378,9 +382,11 @@ J2KEncoder::servers_list_changed ()
}
}
#endif
- auto worker = make_shared<CUDAJ2KFrameEncoder>();
- _workers.push_back(worker);
- _threads->create_thread(boost::bind(&J2KEncoder::encoder_thread, this, worker));
+ for (int i = 0; i < CUDAJ2KFrameEncoder::batch_size; ++i) {
+ auto worker = make_shared<CUDAJ2KFrameEncoder>();
+ _workers.push_back(worker);
+ _threads->create_thread(boost::bind(&J2KEncoder::encoder_thread, this, worker));
+ }
_writer->set_encoder_threads (_threads->size());
}