diff options
| author | Carl Hetherington <cth@carlh.net> | 2021-04-02 20:55:40 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2021-04-04 20:48:34 +0200 |
| commit | 0d9831021c7dc508bc69f7bd759dacd50ccb2766 (patch) | |
| tree | 602bd4d88dfac90177cc187d12baebeb713f80e2 /src/lib | |
| parent | 8e1b0dfe3103867a749ff51156e3ed6547f298a0 (diff) | |
Use content version from Interop (or version number from SMPTE metadata)
rather than the content version in the ISDCF metadata dialogue.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/film.cc | 13 | ||||
| -rw-r--r-- | src/lib/isdcf_metadata.cc | 7 | ||||
| -rw-r--r-- | src/lib/isdcf_metadata.h | 4 |
3 files changed, 15 insertions, 9 deletions
diff --git a/src/lib/film.cc b/src/lib/film.cc index 7dd0ff6f1..5ccc5437a 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -846,7 +846,18 @@ Film::isdcf_name (bool if_created_now) const if (dcp_content_type()) { d += "_" + dcp_content_type()->isdcf_name(); - d += "-" + raw_convert<string>(isdcf_metadata().content_version); + string version = "1"; + if (_interop) { + if (!_content_versions.empty()) { + auto cv = _content_versions[0]; + if (!cv.empty() && std::all_of(cv.begin(), cv.end(), isdigit)) { + version = cv; + } + } + } else { + version = dcp::raw_convert<string>(_version_number); + } + d += "-" + version; } auto const dm = isdcf_metadata (); diff --git a/src/lib/isdcf_metadata.cc b/src/lib/isdcf_metadata.cc index 6adbd0f3c..4f157ce70 100644 --- a/src/lib/isdcf_metadata.cc +++ b/src/lib/isdcf_metadata.cc @@ -34,8 +34,7 @@ using std::shared_ptr; using dcp::raw_convert; ISDCFMetadata::ISDCFMetadata (cxml::ConstNodePtr node) - : content_version (node->number_child<int> ("ContentVersion")) - , territory (node->string_child ("Territory")) + : territory (node->string_child ("Territory")) , rating (node->string_child ("Rating")) , studio (node->string_child ("Studio")) , facility (node->string_child ("Facility")) @@ -53,7 +52,6 @@ ISDCFMetadata::ISDCFMetadata (cxml::ConstNodePtr node) void ISDCFMetadata::as_xml (xmlpp::Node* root) const { - root->add_child("ContentVersion")->add_child_text (raw_convert<string> (content_version)); root->add_child("Territory")->add_child_text (territory); root->add_child("Rating")->add_child_text (rating); root->add_child("Studio")->add_child_text (studio); @@ -69,8 +67,7 @@ ISDCFMetadata::as_xml (xmlpp::Node* root) const bool operator== (ISDCFMetadata const & a, ISDCFMetadata const & b) { - return a.content_version == b.content_version && - a.territory == b.territory && + return a.territory == b.territory && a.rating == b.rating && a.studio == b.studio && a.facility == b.facility && diff --git a/src/lib/isdcf_metadata.h b/src/lib/isdcf_metadata.h index fd021b8dc..22c418c6e 100644 --- a/src/lib/isdcf_metadata.h +++ b/src/lib/isdcf_metadata.h @@ -32,8 +32,7 @@ class ISDCFMetadata { public: ISDCFMetadata () - : content_version (1) - , temp_version (false) + : temp_version (false) , pre_release (false) , red_band (false) , two_d_version_of_three_d (false) @@ -44,7 +43,6 @@ public: void as_xml (xmlpp::Node *) const; void read_old_metadata (std::string, std::string); - int content_version; std::string territory; std::string rating; std::string studio; |
