diff options
| author | Carl Hetherington <cth@carlh.net> | 2022-08-15 16:54:40 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2022-08-15 16:54:40 +0200 |
| commit | fdf2d34c513dcf3ab36295e69e7e0c0766789ded (patch) | |
| tree | ced43a975749b21ec15d4fa5a2b1b7c18b6612f3 /src | |
| parent | f13d0a886e36977c13bb41f915e75ad9db8ba850 (diff) | |
Stop assuming that the presence of FullContentTitleText means that there was CPL metadata.
Diffstat (limited to 'src')
| -rw-r--r-- | src/cpl.cc | 1 | ||||
| -rw-r--r-- | src/cpl.h | 8 | ||||
| -rw-r--r-- | src/verify.cc | 5 |
3 files changed, 10 insertions, 4 deletions
@@ -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; } } @@ -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()}); |
