diff options
| author | Carl Hetherington <cth@carlh.net> | 2019-02-23 00:09:24 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2020-08-23 20:32:49 +0200 |
| commit | 1d0b111ac9692dedfd4a23c268f362e522105bcf (patch) | |
| tree | 80b73a35efb80cce520055a343818f57eb267cbc | |
| parent | 90154a126c2b71b4a574ab21b366bd6c72ff6d17 (diff) | |
Add stub GPU encode worker.
| -rw-r--r-- | src/lib/gpu_j2k_encode_worker.cc | 49 | ||||
| -rw-r--r-- | src/lib/gpu_j2k_encode_worker.h | 31 | ||||
| -rw-r--r-- | src/lib/j2k_encoder.cc | 10 | ||||
| -rw-r--r-- | src/lib/wscript | 1 |
4 files changed, 88 insertions, 3 deletions
diff --git a/src/lib/gpu_j2k_encode_worker.cc b/src/lib/gpu_j2k_encode_worker.cc new file mode 100644 index 000000000..4c38aca27 --- /dev/null +++ b/src/lib/gpu_j2k_encode_worker.cc @@ -0,0 +1,49 @@ +/* + Copyright (C) 2019 Carl Hetherington <cth@carlh.net> + + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + DCP-o-matic is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>. + +*/ + +#include "gpu_j2k_encode_worker.h" +#include "dcp_video.h" +#include "cross.h" +#include "dcpomatic_log.h" + +#include "i18n.h" + +using dcp::Data; +using boost::optional; +using boost::shared_ptr; + +GPUJ2KEncodeWorker::GPUJ2KEncodeWorker () +{ + /* XXX: setup poznan library */ +} + +optional<Data> +GPUJ2KEncodeWorker::encode (shared_ptr<DCPVideo> vf) +{ + optional<Data> encoded; + + return encoded; +} + +void +GPUJ2KEncodeWorker::log_thread_start () +{ + LOG_TIMING ("start-encoder-thread thread=%1 GPU", thread_id()); +} diff --git a/src/lib/gpu_j2k_encode_worker.h b/src/lib/gpu_j2k_encode_worker.h new file mode 100644 index 000000000..0745b7199 --- /dev/null +++ b/src/lib/gpu_j2k_encode_worker.h @@ -0,0 +1,31 @@ +/* + Copyright (C) 2019 Carl Hetherington <cth@carlh.net> + + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + DCP-o-matic is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>. + +*/ + +#include "j2k_encode_worker.h" +#include <dcp/data.h> + +class GPUJ2KEncodeWorker : public J2KEncodeWorker +{ +public: + GPUJ2KEncodeWorker (); + + boost::optional<dcp::Data> encode (boost::shared_ptr<DCPVideo>); + void log_thread_start (); +}; 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()); } diff --git a/src/lib/wscript b/src/lib/wscript index 007bd9f51..5d417ed4a 100644 --- a/src/lib/wscript +++ b/src/lib/wscript @@ -115,6 +115,7 @@ sources = """ font.cc frame_interval_checker.cc frame_rate_change.cc + gpu_j2k_encode_worker.cc hints.cc internet.cc image.cc |
