summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-04-02 20:55:40 +0200
committerCarl Hetherington <cth@carlh.net>2021-04-04 20:48:34 +0200
commit0d9831021c7dc508bc69f7bd759dacd50ccb2766 (patch)
tree602bd4d88dfac90177cc187d12baebeb713f80e2 /src/lib
parent8e1b0dfe3103867a749ff51156e3ed6547f298a0 (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.cc13
-rw-r--r--src/lib/isdcf_metadata.cc7
-rw-r--r--src/lib/isdcf_metadata.h4
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;