diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-05-04 11:08:46 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-05-04 11:08:46 +0100 |
| commit | 1738f2e7336734190bed7e94ce3d691d4a9c9e4c (patch) | |
| tree | 5e057dd6522e72a443a5be3d2ef4dd554c783c53 /src/lib | |
| parent | cc56fc111c742ed5ec072fa0bbe0b950150d40c1 (diff) | |
Add config options for some of the DCP XML metadata (#122).
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/config.cc | 27 | ||||
| -rw-r--r-- | src/lib/config.h | 10 | ||||
| -rw-r--r-- | src/lib/writer.cc | 6 |
3 files changed, 33 insertions, 10 deletions
diff --git a/src/lib/config.cc b/src/lib/config.cc index 0e2e33a16..8c65e371a 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -104,6 +104,12 @@ Config::Config () _default_format = Format::from_metadata (v); } else if (k == "default_dcp_content_type") { _default_dcp_content_type = DCPContentType::from_dci_name (v); + } else if (k == "dcp_metadata_issuer") { + _dcp_metadata.issuer = v; + } else if (k == "dcp_metadata_creator") { + _dcp_metadata.creator = v; + } else if (k == "dcp_metadata_issue_date") { + _dcp_metadata.issue_date = v; } _default_dci_metadata.read (k, v); @@ -136,26 +142,26 @@ void Config::write () const { ofstream f (file().c_str ()); - f << N_("num_local_encoding_threads ") << _num_local_encoding_threads << N_("\n") - << N_("default_directory ") << _default_directory << N_("\n") - << N_("server_port ") << _server_port << N_("\n"); + f << "num_local_encoding_threads " << _num_local_encoding_threads << "\n" + << "default_directory " << _default_directory << "\n" + << "server_port " << _server_port << "\n"; if (_reference_scaler) { f << "reference_scaler " << _reference_scaler->id () << "\n"; } for (vector<Filter const *>::const_iterator i = _reference_filters.begin(); i != _reference_filters.end(); ++i) { - f << N_("reference_filter ") << (*i)->id () << N_("\n"); + f << "reference_filter " << (*i)->id () << "\n"; } for (vector<ServerDescription*>::const_iterator i = _servers.begin(); i != _servers.end(); ++i) { - f << N_("server ") << (*i)->as_metadata () << N_("\n"); + f << "server " << (*i)->as_metadata () << "\n"; } - f << N_("tms_ip ") << _tms_ip << N_("\n"); - f << N_("tms_path ") << _tms_path << N_("\n"); - f << N_("tms_user ") << _tms_user << N_("\n"); - f << N_("tms_password ") << _tms_password << N_("\n"); + f << "tms_ip " << _tms_ip << "\n"; + f << "tms_path " << _tms_path << "\n"; + f << "tms_user " << _tms_user << "\n"; + f << "tms_password " << _tms_password << "\n"; if (_sound_processor) { f << "sound_processor " << _sound_processor->id () << "\n"; } @@ -168,6 +174,9 @@ Config::write () const if (_default_dcp_content_type) { f << "default_dcp_content_type " << _default_dcp_content_type->dci_name() << "\n"; } + f << "dcp_metadata_issuer " << _dcp_metadata.issuer << "\n"; + f << "dcp_metadata_creator " << _dcp_metadata.creator << "\n"; + f << "dcp_metadata_issue_date " << _dcp_metadata.issue_date << "\n"; _default_dci_metadata.write (f); } diff --git a/src/lib/config.h b/src/lib/config.h index 6041045cf..a59cdcae0 100644 --- a/src/lib/config.h +++ b/src/lib/config.h @@ -27,6 +27,7 @@ #include <vector> #include <boost/shared_ptr.hpp> #include <boost/signals2.hpp> +#include <libdcp/metadata.h> #include "dci_metadata.h" class ServerDescription; @@ -117,6 +118,10 @@ public: return _default_dcp_content_type; } + libdcp::XMLMetadata dcp_metadata () const { + return _dcp_metadata; + } + /** @param n New number of local encoding threads */ void set_num_local_encoding_threads (int n) { _num_local_encoding_threads = n; @@ -187,6 +192,10 @@ public: void set_default_dcp_content_type (DCPContentType const * t) { _default_dcp_content_type = t; } + + void set_dcp_metadata (libdcp::XMLMetadata m) { + _dcp_metadata = m; + } void write () const; @@ -226,6 +235,7 @@ private: boost::optional<std::string> _language; Format const * _default_format; DCPContentType const * _default_dcp_content_type; + libdcp::XMLMetadata _dcp_metadata; /** Singleton instance, or 0 */ static Config* _instance; diff --git a/src/lib/writer.cc b/src/lib/writer.cc index ad81686d1..177e929ae 100644 --- a/src/lib/writer.cc +++ b/src/lib/writer.cc @@ -22,12 +22,14 @@ #include <libdcp/sound_asset.h> #include <libdcp/picture_frame.h> #include <libdcp/reel.h> +#include <libdcp/cpl.h> #include "writer.h" #include "compose.hpp" #include "film.h" #include "format.h" #include "log.h" #include "dcp_video_frame.h" +#include "config.h" #include "i18n.h" @@ -320,7 +322,9 @@ Writer::finish () ) )); - dcp.write_xml (); + libdcp::XMLMetadata meta = Config::instance()->dcp_metadata (); + meta.set_issue_date_now (); + dcp.write_xml (meta); _film->log()->log (String::compose (N_("Wrote %1 FULL, %2 FAKE, %3 REPEAT; %4 pushed to disk"), _full_written, _fake_written, _repeat_written, _pushed_to_disk)); } |
