summaryrefslogtreecommitdiff
path: root/src/lib/j2k_encoder.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/j2k_encoder.cc')
-rw-r--r--src/lib/j2k_encoder.cc10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/lib/j2k_encoder.cc b/src/lib/j2k_encoder.cc
index e906a2e1a..ac6dd296c 100644
--- a/src/lib/j2k_encoder.cc
+++ b/src/lib/j2k_encoder.cc
@@ -24,6 +24,7 @@
#include "j2k_encoder.h"
#include "cpu_j2k_encode_worker.h"
+#include "gpu_j2k_encode_worker.h"
#include "remote_j2k_encode_worker.h"
#include "util.h"
#include "film.h"
@@ -337,6 +338,7 @@ J2KEncoder::servers_list_changed ()
{
terminate_threads ();
_threads.reset (new boost::thread_group());
+ _workers.clear ();
/* XXX: could re-use threads */
@@ -350,8 +352,6 @@ J2KEncoder::servers_list_changed ()
}
#endif
- _workers.clear ();
-
if (!Config::instance()->only_servers_encode ()) {
for (int i = 0; i < Config::instance()->master_encoding_threads (); ++i) {
shared_ptr<CPUJ2KEncodeWorker> w (new CPUJ2KEncodeWorker());
@@ -386,5 +386,9 @@ J2KEncoder::servers_list_changed ()
}
}
- _writer->set_encoder_threads (_threads->size());
+ shared_ptr<GPUJ2KEncodeWorker> w (new GPUJ2KEncodeWorker());
+ _workers.push_back (w);
+ _threads.push_back (new boost::thread(boost::bind(&J2KEncoder::encoder_thread, this, w)));
+
+ _writer->set_encoder_threads (_threads.size());
}