summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2022-08-15 16:54:40 +0200
committerCarl Hetherington <cth@carlh.net>2022-08-15 16:54:40 +0200
commitfdf2d34c513dcf3ab36295e69e7e0c0766789ded (patch)
treeced43a975749b21ec15d4fa5a2b1b7c18b6612f3 /src
parentf13d0a886e36977c13bb41f915e75ad9db8ba850 (diff)
Stop assuming that the presence of FullContentTitleText means that there was CPL metadata.
Diffstat (limited to 'src')
-rw-r--r--src/cpl.cc1
-rw-r--r--src/cpl.h8
-rw-r--r--src/verify.cc5
3 files changed, 10 insertions, 4 deletions
diff --git a/src/cpl.cc b/src/cpl.cc
index 815f9a76..79726f7f 100644
--- a/src/cpl.cc
+++ b/src/cpl.cc
@@ -153,6 +153,7 @@ CPL::CPL (boost::filesystem::path file)
auto metadata = asset_list->optional_node_child("CompositionMetadataAsset");
if (metadata) {
read_composition_metadata_asset (metadata);
+ _read_composition_metadata = true;
}
}
diff --git a/src/cpl.h b/src/cpl.h
index 439aeda0..74bac5f1 100644
--- a/src/cpl.h
+++ b/src/cpl.h
@@ -328,6 +328,13 @@ public:
return _standard;
}
+ /** @return true iff this CPL was read from a file and it contained
+ * a CompositionMetadataAsset node.
+ */
+ bool read_composition_metadata() const {
+ return _read_composition_metadata;
+ }
+
static std::string static_pkl_type (Standard standard);
protected:
@@ -373,6 +380,7 @@ private:
/* See note for _release_territory above */
std::vector<std::string> _additional_subtitle_languages;
boost::optional<std::string> _sign_language_video_language;
+ bool _read_composition_metadata = false;
std::vector<std::shared_ptr<Reel>> _reels;
diff --git a/src/verify.cc b/src/verify.cc
index bef05a16..e698920c 100644
--- a/src/verify.cc
+++ b/src/verify.cc
@@ -1534,10 +1534,7 @@ dcp::verify (
notes.push_back ({VerificationNote::Type::BV21_ERROR, VerificationNote::Code::INVALID_CLOSED_CAPTION_LINE_LENGTH});
}
- if (!cpl->full_content_title_text()) {
- /* Since FullContentTitleText is assumed always to exist if there's a CompositionMetadataAsset we
- * can use it as a proxy for CompositionMetadataAsset's existence.
- */
+ if (!cpl->read_composition_metadata()) {
notes.push_back ({VerificationNote::Type::BV21_ERROR, VerificationNote::Code::MISSING_CPL_METADATA, cpl->id(), cpl->file().get()});
} else if (!cpl->version_number()) {
notes.push_back ({VerificationNote::Type::BV21_ERROR, VerificationNote::Code::MISSING_CPL_METADATA_VERSION_NUMBER, cpl->id(), cpl->file().get()});