summaryrefslogtreecommitdiff
path: root/src/wx
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-11-21 14:32:45 +0100
committerCarl Hetherington <cth@carlh.net>2021-11-25 00:55:02 +0100
commit72ee4688cbaef0832eb44dee78063bbc0df97bf8 (patch)
treebcc4d4325961936366458f749fb14f145d98a6f9 /src/wx
parentd930131bac027fb37af01c2326f5a76ebc23fef7 (diff)
Add fastvideo J2K encoding backend.
Diffstat (limited to 'src/wx')
-rw-r--r--src/wx/full_config_dialog.cc24
-rw-r--r--src/wx/wscript2
2 files changed, 26 insertions, 0 deletions
diff --git a/src/wx/full_config_dialog.cc b/src/wx/full_config_dialog.cc
index db499f575..d10b01d8e 100644
--- a/src/wx/full_config_dialog.cc
+++ b/src/wx/full_config_dialog.cc
@@ -94,6 +94,13 @@ private:
int r = 0;
add_language_controls (table, r);
+#ifdef DCPOMATIC_FASTVIDEO
+ add_label_to_sizer (table, _panel, _("Encode using"), true, wxGBPosition(r, 0));
+ _encoding_backend = new wxChoice (_panel, wxID_ANY);
+ table->Add (_encoding_backend, wxGBPosition(r, 1));
+ ++r;
+#endif
+
add_label_to_sizer (table, _panel, _("Number of threads DCP-o-matic should use"), true, wxGBPosition (r, 0));
_master_encoding_threads = new wxSpinCtrl (_panel);
table->Add (_master_encoding_threads, wxGBPosition (r, 1));
@@ -128,6 +135,11 @@ private:
add_update_controls (table, r);
+#ifdef DCPOMATIC_FASTVIDEO
+ _encoding_backend->Append ("CPU");
+ _encoding_backend->Append ("GPU");
+ _encoding_backend->Bind (wxEVT_CHOICE, boost::bind(&FullGeneralPage::encoding_backend_changed, this));
+#endif
_config_file->Bind (wxEVT_FILEPICKER_CHANGED, boost::bind(&FullGeneralPage::config_file_changed, this));
_cinemas_file->Bind (wxEVT_FILEPICKER_CHANGED, boost::bind(&FullGeneralPage::cinemas_file_changed, this));
@@ -147,6 +159,10 @@ private:
{
auto config = Config::instance ();
+#ifdef DCPOMATIC_FASTVIDEO
+ checked_set (_encoding_backend, Config::instance()->encoding_backend() == Config::EncodingBackend::CPU ? 0 : 1);
+#endif
+
checked_set (_master_encoding_threads, config->master_encoding_threads ());
checked_set (_server_encoding_threads, config->server_encoding_threads ());
#ifdef DCPOMATIC_HAVE_EBUR128_PATCHED_FFMPEG
@@ -159,6 +175,11 @@ private:
GeneralPage::config_changed ();
}
+ void encoding_backend_changed ()
+ {
+ Config::instance()->set_encoding_backend(_encoding_backend->GetSelection() == 0 ? Config::EncodingBackend::CPU : Config::EncodingBackend::FASTVIDEO);
+ }
+
void export_cinemas_file ()
{
auto d = new wxFileDialog (
@@ -225,6 +246,9 @@ private:
Config::instance()->set_cinemas_file (wx_to_std (_cinemas_file->GetPath ()));
}
+#ifdef DCPOMATIC_FASTVIDEO
+ wxChoice* _encoding_backend;
+#endif
wxSpinCtrl* _master_encoding_threads;
wxSpinCtrl* _server_encoding_threads;
FilePickerCtrl* _config_file;
diff --git a/src/wx/wscript b/src/wx/wscript
index 50c078f2b..757772183 100644
--- a/src/wx/wscript
+++ b/src/wx/wscript
@@ -316,6 +316,8 @@ def build(bld):
obj.uselib += 'WINSOCK2 OLE32 DSOUND WINMM KSUSER GL GLU GLEW '
if bld.env.TARGET_OSX:
obj.framework = ['CoreAudio', 'OpenGL']
+ if bld.env.ENABLE_FASTVIDEO:
+ obj.uselib += ' FASTVIDEO'
obj.use = 'libdcpomatic2'
obj.source = sources
obj.target = 'dcpomatic2-wx'