diff options
| author | Carl Hetherington <cth@carlh.net> | 2022-05-23 15:25:43 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2022-05-23 16:55:28 +0200 |
| commit | f01378133e187043f499fcd9c354e9321343c7be (patch) | |
| tree | 83ed97a5c755c061bf564682bc5e2e8199d5123b /src/lib/j2k_encoder.cc | |
| parent | 7ace2ca4cd301b4c69671a6983804c6a13ec72a0 (diff) | |
encoder using batching
Diffstat (limited to 'src/lib/j2k_encoder.cc')
| -rw-r--r-- | src/lib/j2k_encoder.cc | 12 |
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()); } |
