From 4359fb4c2b42a1030dd85c7330c6533362ed7539 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 28 Mar 2026 22:18:35 +0100 Subject: Add a load of new properties to VerificationNote. They aren't used yet. --- src/verify.cc | 149 ++++++++++++++++++++++++++++++++++++++- src/verify.h | 223 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 369 insertions(+), 3 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index d8745672..6660beb8 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -2374,9 +2374,31 @@ dcp::operator== (dcp::VerificationNote const& a, dcp::VerificationNote const& b) a.other_asset_id() == b.other_asset_id() && a.frame_rate() == b.frame_rate() && a.cpl_id() == b.cpl_id() && + a.pkl_id() == b.pkl_id() && a.reference_hash() == b.reference_hash() && a.calculated_hash() == b.calculated_hash() && - a.reel_index() == b.reel_index(); + a.reel_index() == b.reel_index() && + a.annotation_text() == b.annotation_text() && + a.bit_depth() == b.bit_depth() && + a.capabilities() == b.capabilities() && + a.code_block_height() == b.code_block_height() && + a.code_block_width() == b.code_block_width() && + a.content_kind() == b.content_kind() && + a.content_version() == b.content_version() && + a.duration() == b.duration() && + a.error() == b.error() && + a.guard_bits() == b.guard_bits() && + a.issue_date() == b.issue_date() && + a.language() == b.language() && + a.main_picture_active_area() == b.main_picture_active_area() && + a.other_duration() == b.other_duration() && + a.poc_marker() == b.poc_marker() && + a.poc_markers() == b.poc_markers() && + a.size_in_pixels() == b.size_in_pixels() && + a.territory() == b.territory() && + a.tile_parts() == b.tile_parts() && + a.time() == b.time() && + a.xml_namespace() == b.xml_namespace(); } @@ -2410,6 +2432,33 @@ less_than_optional(boost::optional a, boost::optional b) } +template +bool +less_than_optional_size(boost::optional a, boost::optional b) +{ + if (!static_cast(a) && !static_cast(b)) { + // same + return false; + } + + if (!static_cast(a) && static_cast(b)) { + // none is smaller than any actual value + return true; + } + + if (static_cast(a) && !static_cast(b)) { + // none is smaller than any actual value + return false; + } + + if (a->width != b->width) { + return a->width < b->width; + } + + return a->height < b->height; +} + + bool dcp::operator< (dcp::VerificationNote const& a, dcp::VerificationNote const& b) { @@ -2457,15 +2506,111 @@ dcp::operator< (dcp::VerificationNote const& a, dcp::VerificationNote const& b) return less_than_optional(a.other_asset_id(), b.other_asset_id()); } + if (a.frame_rate() != b.frame_rate()) { + return less_than_optional(a.frame_rate(), b.frame_rate()); + } + if (a.cpl_id() != b.cpl_id()) { return less_than_optional(a.cpl_id(), b.cpl_id()); } + if (a.pkl_id() != b.pkl_id()) { + return less_than_optional(a.pkl_id(), b.pkl_id()); + } + + if (a.reference_hash() != b.reference_hash()) { + return less_than_optional(a.reference_hash(), b.reference_hash()); + } + + if (a.calculated_hash() != b.calculated_hash()) { + return less_than_optional(a.calculated_hash(), b.calculated_hash()); + } + if (a.reel_index() != b.reel_index()) { return less_than_optional(a.reel_index(), b.reel_index()); } - return less_than_optional(a.frame_rate(), b.frame_rate()); + if (a.annotation_text() != b.annotation_text()) { + return less_than_optional(a.annotation_text(), b.annotation_text()); + } + + if (a.bit_depth() != b.bit_depth()) { + return less_than_optional(a.bit_depth(), b.bit_depth()); + } + + if (a.capabilities() != b.capabilities()) { + return less_than_optional(a.capabilities(), b.capabilities()); + } + + if (a.code_block_height() != b.code_block_height()) { + return less_than_optional(a.code_block_height(), b.code_block_height()); + } + + if (a.code_block_width() != b.code_block_width()) { + return less_than_optional(a.code_block_width(), b.code_block_width()); + } + + if (a.content_kind() != b.content_kind()) { + return less_than_optional(a.content_kind(), b.content_kind()); + } + + if (a.content_version() != b.content_version()) { + return less_than_optional(a.content_version(), b.content_version()); + } + + if (a.duration() != b.duration()) { + return less_than_optional(a.duration(), b.duration()); + } + + if (a.error() != b.error()) { + return less_than_optional(a.error(), b.error()); + } + + if (a.guard_bits() != b.guard_bits()) { + return less_than_optional(a.guard_bits(), b.guard_bits()); + } + + if (a.issue_date() != b.issue_date()) { + return less_than_optional(a.issue_date(), b.issue_date()); + } + + if (a.language() != b.language()) { + return less_than_optional(a.language(), b.language()); + } + + if (a.main_picture_active_area() != b.main_picture_active_area()) { + return less_than_optional_size(a.main_picture_active_area(), b.main_picture_active_area()); + } + + if (a.other_duration() != b.other_duration()) { + return less_than_optional(a.other_duration(), b.other_duration()); + } + + if (a.poc_marker() != b.poc_marker()) { + return less_than_optional(a.poc_marker(), b.poc_marker()); + } + + if (a.poc_markers() != b.poc_markers()) { + return less_than_optional(a.poc_markers(), b.poc_markers()); + } + + if (a.size_in_pixels() != b.size_in_pixels()) { + return less_than_optional_size(a.size_in_pixels(), b.size_in_pixels()); + } + + if (a.territory() != b.territory()) { + return less_than_optional(a.territory(), b.territory()); + } + + if (a.tile_parts() != b.tile_parts()) { + return less_than_optional(a.tile_parts(), b.tile_parts()); + } + + if (a.time() != b.time()) { + return less_than_optional(a.time(), b.time()); + } + + return less_than_optional(a.xml_namespace(), b.xml_namespace()); } diff --git a/src/verify.h b/src/verify.h index eac68f62..1aeac080 100644 --- a/src/verify.h +++ b/src/verify.h @@ -41,6 +41,7 @@ #define LIBDCP_VERIFY_H +#include "dcp_time.h" #include "decrypted_kdm.h" #include "types.h" #include @@ -619,20 +620,42 @@ public: private: enum class Data { + ANNOTATION_TEXT, ASSET_ID, + BIT_DEPTH, CALCULATED_HASH, + CAPABILITIES, + CODE_BLOCK_HEIGHT, + CODE_BLOCK_WIDTH, COMPONENT, + CONTENT_KIND, + CONTENT_VERSION, CPL_ID, + DURATION, + ERROR, FILE, ///< path of file containing the error FRAME, FRAME_RATE, + GUARD_BITS, + ISSUE_DATE, + LANGUAGE, LINE, ///< error line number within the FILE LOAD_FONT_ID, + MAIN_PICTURE_ACTIVE_AREA, NOTE, ///< further information about the error OTHER_ASSET_ID, + OTHER_DURATION, + PKL_ID, + POC_MARKER, + POC_MARKERS, REEL_INDEX, ///< reel index, counting from 0 REFERENCE_HASH, - SIZE_IN_BYTES + SIZE_IN_BYTES, + SIZE_IN_PIXELS, + TERRITORY, + TILE_PARTS, + TIME, + XML_NAMESPACE, }; template @@ -748,6 +771,15 @@ public: return data(Data::CPL_ID); } + VerificationNote& set_pkl_id(std::string id) { + _data[Data::PKL_ID] = id; + return *this; + } + + boost::optional pkl_id() const { + return data(Data::PKL_ID); + } + VerificationNote& set_reel_index(int index) { _data[Data::REEL_INDEX] = index; return *this; @@ -757,6 +789,195 @@ public: return data(Data::REEL_INDEX); } + VerificationNote& set_error(std::string error) { + _data[Data::ERROR] = std::move(error); + return *this; + } + + boost::optional error() const { + return data(Data::ERROR); + } + + VerificationNote& set_language(std::string language) { + _data[Data::LANGUAGE] = std::move(language); + return *this; + } + + boost::optional language() const { + return data(Data::LANGUAGE); + } + + VerificationNote& set_territory(std::string territory) { + _data[Data::TERRITORY] = std::move(territory); + return *this; + } + + boost::optional territory() const { + return data(Data::TERRITORY); + } + + VerificationNote& set_size_in_pixels(dcp::Size size_in_pixels) { + _data[Data::SIZE_IN_PIXELS] = size_in_pixels; + return *this; + } + + boost::optional size_in_pixels() const { + return data(Data::SIZE_IN_PIXELS); + } + + VerificationNote& set_bit_depth(int bit_depth) { + _data[Data::BIT_DEPTH] = std::move(bit_depth); + return *this; + } + + boost::optional bit_depth() const { + return data(Data::BIT_DEPTH); + } + + VerificationNote& set_annotation_text(std::string annotation_text) { + _data[Data::ANNOTATION_TEXT] = std::move(annotation_text); + return *this; + } + + boost::optional annotation_text() const { + return data(Data::ANNOTATION_TEXT); + } + + VerificationNote& set_time(dcp::Time time) { + _data[Data::TIME] = std::move(time); + return *this; + } + + boost::optional time() const { + return data(Data::TIME); + } + + VerificationNote& set_guard_bits(int guard_bits) { + _data[Data::GUARD_BITS] = guard_bits; + return *this; + } + + boost::optional guard_bits() const { + return data(Data::GUARD_BITS); + } + + VerificationNote& set_code_block_width(int code_block_width) { + _data[Data::CODE_BLOCK_WIDTH] = code_block_width; + return *this; + } + + boost::optional code_block_width() const { + return data(Data::CODE_BLOCK_WIDTH); + } + + VerificationNote& set_code_block_height(int code_block_height) { + _data[Data::CODE_BLOCK_HEIGHT] = code_block_height; + return *this; + } + + boost::optional code_block_height() const { + return data(Data::CODE_BLOCK_HEIGHT); + } + + VerificationNote& set_poc_marker(int poc_marker) { + _data[Data::POC_MARKER] = poc_marker; + return *this; + } + + boost::optional poc_marker() const { + return data(Data::POC_MARKER); + } + + VerificationNote& set_poc_markers(int poc_markers) { + _data[Data::POC_MARKERS] = poc_markers; + return *this; + } + + boost::optional poc_markers() const { + return data(Data::POC_MARKERS); + } + + VerificationNote& set_tile_parts(int tile_parts) { + _data[Data::TILE_PARTS] = tile_parts; + return *this; + } + + boost::optional tile_parts() const { + return data(Data::TILE_PARTS); + } + + VerificationNote& set_capabilities(int capabilities) { + _data[Data::CAPABILITIES] = capabilities; + return *this; + } + + boost::optional capabilities() const { + return data(Data::CAPABILITIES); + } + + VerificationNote& set_duration(int64_t duration) { + _data[Data::DURATION] = std::move(duration); + return *this; + } + + boost::optional duration() const { + return data(Data::DURATION); + } + + VerificationNote& set_other_duration(int64_t other_duration) { + _data[Data::OTHER_DURATION] = std::move(other_duration); + return *this; + } + + boost::optional other_duration() const { + return data(Data::OTHER_DURATION); + } + + VerificationNote& set_content_kind(std::string content_kind) { + _data[Data::CONTENT_KIND] = std::move(content_kind); + return *this; + } + + boost::optional content_kind() const { + return data(Data::CONTENT_KIND); + } + + VerificationNote& set_main_picture_active_area(dcp::Size main_picture_active_area) { + _data[Data::MAIN_PICTURE_ACTIVE_AREA] = std::move(main_picture_active_area); + return *this; + } + + boost::optional main_picture_active_area() const { + return data(Data::MAIN_PICTURE_ACTIVE_AREA); + } + + VerificationNote& set_issue_date(std::string issue_date) { + _data[Data::ISSUE_DATE] = std::move(issue_date); + return *this; + } + + boost::optional issue_date() const { + return data(Data::ISSUE_DATE); + } + + VerificationNote& set_content_version(std::string content_version) { + _data[Data::CONTENT_VERSION] = std::move(content_version); + return *this; + } + + boost::optional content_version() const { + return data(Data::CONTENT_VERSION); + } + + VerificationNote& set_xml_namespace(std::string xml_namespace) { + _data[Data::XML_NAMESPACE] = std::move(xml_namespace); + return *this; + } + + boost::optional xml_namespace() const { + return data(Data::XML_NAMESPACE); + } + private: Code _code; std::map _data; -- cgit v1.2.3 From 2105b40ff1841be7e4c33d5131e20ef5c086350b Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 28 Mar 2026 22:40:08 +0100 Subject: FAILED_READ: note -> error. --- src/verify.cc | 18 +++++++++--------- src/verify.h | 2 +- test/verify_test.cc | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 6660beb8..d3f41221 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -1877,21 +1877,21 @@ dcp::verify ( try { dcp->read (¬es, true); } catch (MissingAssetmapError& e) { - context.add_note(VerificationNote::Code::FAILED_READ, string(e.what())); + context.add_note(VerificationNote(VerificationNote::Code::FAILED_READ).set_error(e.what())); carry_on = false; } catch (ReadError& e) { - context.add_note(VerificationNote::Code::FAILED_READ, string(e.what())); + context.add_note(VerificationNote(VerificationNote::Code::FAILED_READ).set_error(e.what())); } catch (XMLError& e) { - context.add_note(VerificationNote::Code::FAILED_READ, string(e.what())); + context.add_note(VerificationNote(VerificationNote::Code::FAILED_READ).set_error(e.what())); } catch (MXFFileError& e) { - context.add_note(VerificationNote::Code::FAILED_READ, string(e.what())); + context.add_note(VerificationNote(VerificationNote::Code::FAILED_READ).set_error(e.what())); } catch (BadURNUUIDError& e) { - context.add_note(VerificationNote::Code::FAILED_READ, string(e.what())); + context.add_note(VerificationNote(VerificationNote::Code::FAILED_READ).set_error(e.what())); } catch (cxml::Error& e) { - context.add_note(VerificationNote::Code::FAILED_READ, string(e.what())); + context.add_note(VerificationNote(VerificationNote::Code::FAILED_READ).set_error(e.what())); } catch (xmlpp::parse_error& e) { carry_on = false; - context.add_note(VerificationNote::Code::FAILED_READ, string(e.what())); + context.add_note(VerificationNote(VerificationNote::Code::FAILED_READ).set_error(e.what())); } if (!carry_on) { @@ -1914,7 +1914,7 @@ dcp::verify ( context.audio_channels.reset(); context.subtitle_language.reset(); } catch (ReadError& e) { - notes.push_back({VerificationNote::Code::FAILED_READ, string(e.what())}); + notes.push_back(VerificationNote(VerificationNote::Code::FAILED_READ).set_error(e.what())); } } @@ -1957,7 +1957,7 @@ dcp::note_to_string(VerificationNote note, function process_str switch (note.code()) { case VerificationNote::Code::FAILED_READ: - return process_string(*note.note()); + return process_string(*note.error()); case VerificationNote::Code::MATCHING_CPL_HASHES: return process_string("The hash of the CPL in the PKL matches the CPL file."); case VerificationNote::Code::MISMATCHED_CPL_HASHES: diff --git a/src/verify.h b/src/verify.h index 1aeac080..ab7cd34b 100644 --- a/src/verify.h +++ b/src/verify.h @@ -103,7 +103,7 @@ public: // Only the first line of each comment will be taken as a description of the code. enum class Code { /** A general error when reading the DCP - * note contains (probably technical) details + * error contains (probably technical) details */ FAILED_READ, /** The hash of a CPL in the PKL agrees with the CPL file */ diff --git a/test/verify_test.cc b/test/verify_test.cc index 363aed93..68c8ff77 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -1721,7 +1721,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_cpl_metadata_missing_tag) check_verify_result ( { dir }, {}, - {{ dcp::VerificationNote::Code::FAILED_READ, string("missing XML tag Width in MainPictureStoredArea") }} + { dcp::VerificationNote(dcp::VerificationNote::Code::FAILED_READ).set_error("missing XML tag Width in MainPictureStoredArea") } ); } -- cgit v1.2.3 From e144eafe81f5c7ef51d3c4078a08e69b4e9a79e7 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 28 Mar 2026 23:05:15 +0100 Subject: INVALID_XML: note -> error. --- src/verify.cc | 11 ++--- src/verify.h | 9 +++- test/verify_test.cc | 126 ++++++++++++++++++++-------------------------------- 3 files changed, 63 insertions(+), 83 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index d3f41221..0b80b460 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -370,10 +370,11 @@ validate_xml(Context& context, T xml) for (auto i: error_handler.errors()) { context.add_note( - VerificationNote::Code::INVALID_XML, - i.message(), - boost::trim_copy(i.public_id() + " " + i.system_id()), - i.line() + VerificationNote( + VerificationNote::Code::INVALID_XML, + boost::filesystem::path(boost::trim_copy(i.public_id() + " " + i.system_id())), + i.line() + ).set_error(i.message()) ); } } @@ -1981,7 +1982,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::MISMATCHED_STANDARD: return process_string("The DCP contains both SMPTE and Interop parts."); case VerificationNote::Code::INVALID_XML: - return compose("An XML file is badly formed: %1 (%2:%3)", note.note().get(), filename(), note.line().get()); + return compose("An XML file is badly formed: %1 (%2:%3)", *note.error(), filename(), note.line().get()); case VerificationNote::Code::MISSING_ASSETMAP: return process_string("No valid ASSETMAP or ASSETMAP.xml was found."); case VerificationNote::Code::INVALID_INTRINSIC_DURATION: diff --git a/src/verify.h b/src/verify.h index ab7cd34b..515bbed5 100644 --- a/src/verify.h +++ b/src/verify.h @@ -157,7 +157,7 @@ public: /** The DCP contains both SMPTE and Interop-standard components */ MISMATCHED_STANDARD, /** Some XML fails to validate against its XSD/DTD - * note contains the (probably technical) details + * error contains the (probably technical) details * file contains the invalid filename * line contains the line number * reel_index contains the reel index (starting from 0), if applicable @@ -604,6 +604,13 @@ public: _data[Data::FILE] = file; } + VerificationNote(Code code, boost::filesystem::path file, uint64_t line) + : _code (code) + { + _data[Data::FILE] = file; + _data[Data::LINE] = line; + } + VerificationNote(Code code, std::string note, boost::filesystem::path file, uint64_t line) : _code (code) { diff --git a/test/verify_test.cc b/test/verify_test.cc index 68c8ff77..6bba43fa 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -588,9 +588,9 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_picture_sound_hashes) ).set_cpl_id(dcp_test1_cpl_id()).set_reference_hash("x" + calc.old_hash()).set_calculated_hash(calc.old_hash()), VN(VC::MISMATCHED_PICTURE_HASHES, canonical(dir / "video.mxf")).set_cpl_id(dcp_test1_cpl_id()).set_reel_index(0).set_asset_id("5407b210-4441-4e97-8b16-8bdc7c12da54"), VN(VC::MISMATCHED_SOUND_HASHES, canonical(dir / "audio.mxf")).set_cpl_id(dcp_test1_cpl_id()).set_reel_index(0).set_asset_id("97f0f352-5b77-48ee-a558-9df37717f4fa"), - { VC::INVALID_XML, "value 'x3M7YTgvFKXXMEGLkIbV4miC90FE=' is invalid Base64-encoded binary", canonical(dir / dcp_test1_pkl()), 28 }, - { VC::INVALID_XML, "value 'xskI+5b/9LA/y6h0mcyxysJYanxI=' is invalid Base64-encoded binary", canonical(dir / dcp_test1_pkl()), 12 }, - { VC::INVALID_XML, "value 'xvsVjRV9vhTBPUWfE/TT1o2vdQsI=' is invalid Base64-encoded binary", canonical(dir / dcp_test1_pkl()), 20 }, + VN(VC::INVALID_XML, canonical(dir / dcp_test1_pkl()), 28).set_error("value 'x3M7YTgvFKXXMEGLkIbV4miC90FE=' is invalid Base64-encoded binary"), + VN(VC::INVALID_XML, canonical(dir / dcp_test1_pkl()), 12).set_error("value 'xskI+5b/9LA/y6h0mcyxysJYanxI=' is invalid Base64-encoded binary"), + VN(VC::INVALID_XML, canonical(dir / dcp_test1_pkl()), 20).set_error("value 'xvsVjRV9vhTBPUWfE/TT1o2vdQsI=' is invalid Base64-encoded binary"), }); } @@ -784,18 +784,16 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_standard) note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), { VC::MISMATCHED_STANDARD }, - VN(VC::INVALID_XML, "invalid character encountered", canonical(cpl_path), 42).set_cpl_id(cpl->id()), - VN(VC::INVALID_XML, "no declaration found for element 'Id'", canonical(cpl_path), 53).set_cpl_id(cpl->id()), - VN(VC::INVALID_XML, "no declaration found for element 'EditRate'", canonical(cpl_path), 54).set_cpl_id(cpl->id()), - VN(VC::INVALID_XML, "no declaration found for element 'IntrinsicDuration'", canonical(cpl_path), 55).set_cpl_id(cpl->id()), - VN( - VC::INVALID_XML, + VN(VC::INVALID_XML, canonical(cpl_path), 42).set_cpl_id(cpl->id()).set_error("invalid character encountered"), + VN(VC::INVALID_XML, canonical(cpl_path), 53).set_cpl_id(cpl->id()).set_error("no declaration found for element 'Id'"), + VN(VC::INVALID_XML, canonical(cpl_path), 54).set_cpl_id(cpl->id()).set_error("no declaration found for element 'EditRate'"), + VN(VC::INVALID_XML, canonical(cpl_path), 55).set_cpl_id(cpl->id()).set_error("no declaration found for element 'IntrinsicDuration'"), + VN(VC::INVALID_XML, canonical(cpl_path), 149).set_cpl_id(cpl->id()).set_error( "element 'Id' is not allowed for content model '(Id,AnnotationText?,EditRate,IntrinsicDuration," "EntryPoint?,Duration?,FullContentTitleText,ReleaseTerritory?,VersionNumber?,Chain?,Distributor?," "Facility?,AlternateContentVersionList?,Luminance?,MainSoundConfiguration,MainSoundSampleRate," - "MainPictureStoredArea,MainPictureActiveArea,MainSubtitleLanguageList?,ExtensionMetadataList?,)'", - canonical(cpl_path), 149 - ).set_cpl_id(cpl->id()), + "MainPictureStoredArea,MainPictureActiveArea,MainSubtitleLanguageList?,ExtensionMetadataList?,)'" + ), VN( VC::MISMATCHED_CPL_HASHES, canonical(cpl_path) ).set_cpl_id(cpl->id()).set_reference_hash("skI+5b/9LA/y6h0mcyxysJYanxI=").set_calculated_hash("FZ9E7L/pOuJ6aZfbiaANTv8BFOo=") @@ -833,11 +831,10 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_id) note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - VN( - VC::INVALID_XML, + VN(VC::INVALID_XML, canonical(cpl_path), 3).set_cpl_id(cpl->id()).set_error( "value 'urn:uuid:6affb8ee-0020-4dff-a53c-17652f6358a' does not match regular expression " - "facet 'urn:uuid:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'", canonical(cpl_path), 3 - ).set_cpl_id(cpl->id()) + "facet 'urn:uuid:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'" + ), }; check_verify_result(dcp::verify({dir}, {}, &stage, &progress, {}, xsd_test).notes, expected); @@ -876,7 +873,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_issue_date) VN( VC::MISMATCHED_CPL_HASHES, canonical(cpl_path) ).set_cpl_id(cpl->id()).set_reference_hash("skI+5b/9LA/y6h0mcyxysJYanxI=").set_calculated_hash("sz3BeIugJ567q3HMnA62JeRw4TE="), - VN(VC::INVALID_XML, "invalid character encountered", canonical(cpl_path), 5).set_cpl_id(cpl->id()), + VN(VC::INVALID_XML, canonical(cpl_path), 5).set_cpl_id(cpl->id()).set_error("invalid character encountered"), }; check_verify_result(dcp::verify({dir}, {}, &stage, &progress, {}, xsd_test).notes, expected); @@ -914,12 +911,10 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_pkl_id) note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - VN( - VC::INVALID_XML, + VN(VC::INVALID_XML, canonical(pkl_path), 3).set_error( "value 'urn:uuid:x199d58b-5ef8-4d49-b270-07e590ccb280' does not match regular " - "expression facet 'urn:uuid:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'", - canonical(pkl_path), 3 - ), + "expression facet 'urn:uuid:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'" + ), }; check_verify_result(dcp::verify({dir}, {}, &stage, &progress, {}, xsd_test).notes, expected); @@ -957,12 +952,10 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_asset_map_id) note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - VN( - VC::INVALID_XML, + VN(VC::INVALID_XML, canonical(asset_map_path), 3).set_error( "value 'urn:uuid:x17b3de4-6dda-408d-b19b-6711354b0bc3' does not match regular " - "expression facet 'urn:uuid:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'", - canonical(asset_map_path), 3 - ), + "expression facet 'urn:uuid:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'" + ), }; check_verify_result(dcp::verify({dir}, {}, &stage, &progress, {}, xsd_test).notes, expected); @@ -1321,13 +1314,10 @@ BOOST_AUTO_TEST_CASE (verify_invalid_interop_subtitles) note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), { VC::INVALID_STANDARD }, - VN(VC::INVALID_XML, string("no declaration found for element 'Foo'"), path(), 5).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), - VN( - VC::INVALID_XML, - string("element 'Foo' is not allowed for content model '(SubtitleID,MovieTitle,ReelNumber,Language,LoadFont*,Font*,Subtitle*)'"), - path(), - 29 - ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), + VN(VC::INVALID_XML, path(), 5).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_error("no declaration found for element 'Foo'"), + VN(VC::INVALID_XML, path(), 29).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_error( + "element 'Foo' is not allowed for content model '(SubtitleID,MovieTitle,ReelNumber,Language,LoadFont*,Font*,Subtitle*)'" + ), VN(VC::MISSING_FONT, string{"theFontId"}).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), }); } @@ -1444,13 +1434,11 @@ BOOST_AUTO_TEST_CASE (verify_invalid_smpte_subtitles) note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), - VN(VC::INVALID_XML, string("no declaration found for element 'Foo'"), path(), 2).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), - VN( - VC::INVALID_XML, - string("element 'Foo' is not allowed for content model '(Id,ContentTitleText,AnnotationText?,IssueDate,ReelNumber?,Language?,EditRate,TimeCodeRate,StartTime?,DisplayType?,LoadFont*,SubtitleList)'"), - path(), - 2 - ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), + VN(VC::INVALID_XML, path(), 2).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_error("no declaration found for element 'Foo'"), + VN(VC::INVALID_XML, path(), 2).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_error( + "element 'Foo' is not allowed for content model " + "'(Id,ContentTitleText,AnnotationText?,IssueDate,ReelNumber?,Language?,EditRate,TimeCodeRate,StartTime?,DisplayType?,LoadFont*,SubtitleList)'" + ), VN(VC::MISSING_SUBTITLE_START_TIME, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()), VN(VC::INVALID_SUBTITLE_ISSUE_DATE, string{"2020-05-09T00:29:21.000+02:00"}).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), @@ -1670,22 +1658,16 @@ BOOST_AUTO_TEST_CASE (verify_invalid_cpl_metadata_bad_tag) note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "pic.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), - VN( - VC::INVALID_XML, string("no declaration found for element 'meta:MainSoundXConfiguration'"), canonical(cpl->file().get()), 50 - ).set_cpl_id(cpl->id()), - VN( - VC::INVALID_XML, string("no declaration found for element 'meta:MainSoundXSampleRate'"), canonical(cpl->file().get()), 51 - ).set_cpl_id(cpl->id()), - VN( - VC::INVALID_XML, - string("element 'meta:MainSoundXConfiguration' is not allowed for content model " - "'(Id,AnnotationText?,EditRate,IntrinsicDuration,EntryPoint?,Duration?," - "FullContentTitleText,ReleaseTerritory?,VersionNumber?,Chain?,Distributor?," - "Facility?,AlternateContentVersionList?,Luminance?,MainSoundConfiguration," - "MainSoundSampleRate,MainPictureStoredArea,MainPictureActiveArea,MainSubtitleLanguageList?," - "ExtensionMetadataList?,)'"), - canonical(cpl->file().get()), - 71).set_cpl_id(cpl->id()), + VN(VC::INVALID_XML, canonical(cpl->file().get()), 50).set_cpl_id(cpl->id()).set_error("no declaration found for element 'meta:MainSoundXConfiguration'"), + VN(VC::INVALID_XML, canonical(cpl->file().get()), 51).set_cpl_id(cpl->id()).set_error("no declaration found for element 'meta:MainSoundXSampleRate'"), + VN(VC::INVALID_XML, canonical(cpl->file().get()), 71).set_cpl_id(cpl->id()).set_error( + "element 'meta:MainSoundXConfiguration' is not allowed for content model " + "'(Id,AnnotationText?,EditRate,IntrinsicDuration,EntryPoint?,Duration?," + "FullContentTitleText,ReleaseTerritory?,VersionNumber?,Chain?,Distributor?," + "Facility?,AlternateContentVersionList?,Luminance?,MainSoundConfiguration," + "MainSoundSampleRate,MainPictureStoredArea,MainPictureActiveArea,MainSubtitleLanguageList?," + "ExtensionMetadataList?,)'" + ), VN( VC::MISMATCHED_CPL_HASHES, canonical(cpl->file().get()) ).set_cpl_id(cpl->id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()) @@ -4336,11 +4318,8 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata3) cpl->file().get() ).set_cpl_id(cpl->id()), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), - VN( - VC::INVALID_XML, string("no declaration found for element 'meta:NameX'"), cpl->file().get(), 70 - ).set_cpl_id(cpl->id()), - VN( - VC::INVALID_XML, string("element 'meta:NameX' is not allowed for content model '(Name,PropertyList?,)'"), cpl->file().get(), 77).set_cpl_id(cpl->id()), + VN(VC::INVALID_XML, cpl->file().get(), 70).set_cpl_id(cpl->id()).set_error("no declaration found for element 'meta:NameX'"), + VN(VC::INVALID_XML, cpl->file().get(), 77).set_cpl_id(cpl->id()).set_error("element 'meta:NameX' is not allowed for content model '(Name,PropertyList?,)'"), VN( VC::MISMATCHED_CPL_HASHES, cpl->file().get() ).set_cpl_id(cpl->id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()), @@ -4475,12 +4454,8 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata6) cpl->file().get() ).set_cpl_id(cpl->id()), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), - VN( - VC::INVALID_XML, string("no declaration found for element 'meta:ValueX'"), cpl->file().get(), 74 - ).set_cpl_id(cpl->id()), - VN( - VC::INVALID_XML, string("element 'meta:ValueX' is not allowed for content model '(Name,Value)'"), cpl->file().get(), 75 - ).set_cpl_id(cpl->id()), + VN(VC::INVALID_XML, cpl->file().get(), 74).set_cpl_id(cpl->id()).set_error("no declaration found for element 'meta:ValueX'"), + VN(VC::INVALID_XML, cpl->file().get(), 75).set_cpl_id(cpl->id()).set_error("element 'meta:ValueX' is not allowed for content model '(Name,Value)'"), VN( VC::MISMATCHED_CPL_HASHES, cpl->file().get() ).set_cpl_id(cpl->id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()), @@ -4570,9 +4545,8 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata8) note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, string{"1998x1080"}, cpl->file().get()).set_cpl_id(cpl->id()), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), - VN(VC::INVALID_XML, string("no declaration found for element 'meta:PropertyX'"), cpl->file().get(), 72).set_cpl_id(cpl->id()), - VN( - VC::INVALID_XML, string("element 'meta:PropertyX' is not allowed for content model '(Property+)'"), cpl->file().get(), 76).set_cpl_id(cpl->id()), + VN(VC::INVALID_XML, cpl->file().get(), 72).set_cpl_id(cpl->id()).set_error("no declaration found for element 'meta:PropertyX'"), + VN(VC::INVALID_XML, cpl->file().get(), 76).set_cpl_id(cpl->id()).set_error("element 'meta:PropertyX' is not allowed for content model '(Property+)'"), VN( VC::MISMATCHED_CPL_HASHES, cpl->file().get() ).set_cpl_id(cpl->id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()), @@ -4620,12 +4594,10 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata9) cpl->file().get() ).set_cpl_id(cpl->id()), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), - VN( - VC::INVALID_XML, string("no declaration found for element 'meta:PropertyListX'"), cpl->file().get(), 71 - ).set_cpl_id(cpl->id()), - VN( - VC::INVALID_XML, string("element 'meta:PropertyListX' is not allowed for content model '(Name,PropertyList?,)'"), cpl->file().get(), 77 - ).set_cpl_id(cpl->id()), + VN(VC::INVALID_XML, cpl->file().get(), 71).set_cpl_id(cpl->id()).set_error("no declaration found for element 'meta:PropertyListX'"), + VN(VC::INVALID_XML, cpl->file().get(), 77).set_cpl_id(cpl->id()).set_error( + "element 'meta:PropertyListX' is not allowed for content model '(Name,PropertyList?,)'" + ), VN( VC::MISMATCHED_CPL_HASHES, cpl->file().get() ).set_cpl_id(cpl->id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()), -- cgit v1.2.3 From cd929c438d5e727a78027607fa0c047b26e30642 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 28 Mar 2026 23:12:41 +0100 Subject: INVALID_INTRINSIC_DURATION: note -> asset_id. --- src/verify.cc | 4 ++-- src/verify.h | 2 +- test/verify_test.cc | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 0b80b460..2e4efb62 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -1422,7 +1422,7 @@ verify_reel( context.add_note(VerificationNote::Code::INVALID_DURATION, i->id()); } if ((i->intrinsic_duration() * i->edit_rate().denominator / i->edit_rate().numerator) < 1) { - context.add_note(VerificationNote::Code::INVALID_INTRINSIC_DURATION, i->id()); + context.add_note(VerificationNote(VerificationNote::Code::INVALID_INTRINSIC_DURATION).set_asset_id(i->id())); } if (i->encryptable() && !i->hash()) { context.add_note(VerificationNote::Code::MISSING_HASH, i->id()); @@ -1986,7 +1986,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::MISSING_ASSETMAP: return process_string("No valid ASSETMAP or ASSETMAP.xml was found."); case VerificationNote::Code::INVALID_INTRINSIC_DURATION: - return compose("The intrinsic duration of the asset %1 is less than 1 second.", note.note().get()); + return compose("The intrinsic duration of the asset %1 is less than 1 second.", *note.asset_id()); case VerificationNote::Code::INVALID_DURATION: return compose("The duration of the asset %1 is less than 1 second.", note.note().get()); case VerificationNote::Code::VALID_PICTURE_FRAME_SIZES_IN_BYTES: diff --git a/src/verify.h b/src/verify.h index 515bbed5..e7d70dd2 100644 --- a/src/verify.h +++ b/src/verify.h @@ -166,7 +166,7 @@ public: /** No _ASSETMAP_ or _ASSETMAP.xml_ was found */ MISSING_ASSETMAP, /** An asset's _IntrinsicDuration_ is less than 1 second - * note contains asset ID + * asset_id contains asset ID * reel_index contains the reel index (starting from 0) */ INVALID_INTRINSIC_DURATION, diff --git a/test/verify_test.cc b/test/verify_test.cc index 6bba43fa..c06498ee 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -1055,9 +1055,9 @@ BOOST_AUTO_TEST_CASE (verify_invalid_duration) note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "j2c_d7576dcb-a361-4139-96b8-267f5f8d7f91.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), { VC::INVALID_STANDARD }, VN(VC::INVALID_DURATION, string("d7576dcb-a361-4139-96b8-267f5f8d7f91")).set_cpl_id(cpl->id()).set_reel_index(0), - VN(VC::INVALID_INTRINSIC_DURATION, string("d7576dcb-a361-4139-96b8-267f5f8d7f91")).set_cpl_id(cpl->id()).set_reel_index(0), + VN(VC::INVALID_INTRINSIC_DURATION).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id("d7576dcb-a361-4139-96b8-267f5f8d7f91"), VN(VC::INVALID_DURATION, string("a2a87f5d-b749-4a7e-8d0c-9d48a4abf626")).set_cpl_id(cpl->id()).set_reel_index(0), - VN(VC::INVALID_INTRINSIC_DURATION, string("a2a87f5d-b749-4a7e-8d0c-9d48a4abf626")).set_cpl_id(cpl->id()).set_reel_index(0), + VN(VC::INVALID_INTRINSIC_DURATION).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id("a2a87f5d-b749-4a7e-8d0c-9d48a4abf626"), VN(VC::EMPTY_CONTENT_VERSION_LABEL_TEXT, cpl->file().get()).set_cpl_id(cpl->id()) }; -- cgit v1.2.3 From 1252940b0be76e0cd8f6995a4967d04b65c1e599 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 29 Mar 2026 13:28:35 +0200 Subject: INVALID_DURATION: note -> asset_id. --- src/verify.cc | 4 ++-- src/verify.h | 2 +- test/verify_test.cc | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 2e4efb62..fcee2967 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -1419,7 +1419,7 @@ verify_reel( { for (auto i: reel->file_assets()) { if (i->duration() && (i->duration().get() * i->edit_rate().denominator / i->edit_rate().numerator) < 1) { - context.add_note(VerificationNote::Code::INVALID_DURATION, i->id()); + context.add_note(VerificationNote(VerificationNote::Code::INVALID_DURATION).set_asset_id(i->id())); } if ((i->intrinsic_duration() * i->edit_rate().denominator / i->edit_rate().numerator) < 1) { context.add_note(VerificationNote(VerificationNote::Code::INVALID_INTRINSIC_DURATION).set_asset_id(i->id())); @@ -1988,7 +1988,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::INVALID_INTRINSIC_DURATION: return compose("The intrinsic duration of the asset %1 is less than 1 second.", *note.asset_id()); case VerificationNote::Code::INVALID_DURATION: - return compose("The duration of the asset %1 is less than 1 second.", note.note().get()); + return compose("The duration of the asset %1 is less than 1 second.", *note.asset_id()); case VerificationNote::Code::VALID_PICTURE_FRAME_SIZES_IN_BYTES: return compose("Each frame of the picture asset %1 has a bit rate safely under the limit of 250Mbit/s.", filename()); case VerificationNote::Code::INVALID_PICTURE_FRAME_SIZE_IN_BYTES: diff --git a/src/verify.h b/src/verify.h index e7d70dd2..fa239302 100644 --- a/src/verify.h +++ b/src/verify.h @@ -171,7 +171,7 @@ public: */ INVALID_INTRINSIC_DURATION, /** An asset's _Duration_ is less than 1 second - * note contains asset ID + * asset_id contains asset ID * reel_index contains the reel index (starting from 0) */ INVALID_DURATION, diff --git a/test/verify_test.cc b/test/verify_test.cc index c06498ee..6b83e0ae 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -1054,9 +1054,9 @@ BOOST_AUTO_TEST_CASE (verify_invalid_duration) note(VC::CORRECT_PICTURE_HASH, canonical(dir / "j2c_d7576dcb-a361-4139-96b8-267f5f8d7f91.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "j2c_d7576dcb-a361-4139-96b8-267f5f8d7f91.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), { VC::INVALID_STANDARD }, - VN(VC::INVALID_DURATION, string("d7576dcb-a361-4139-96b8-267f5f8d7f91")).set_cpl_id(cpl->id()).set_reel_index(0), + VN(VC::INVALID_DURATION).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id("d7576dcb-a361-4139-96b8-267f5f8d7f91"), VN(VC::INVALID_INTRINSIC_DURATION).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id("d7576dcb-a361-4139-96b8-267f5f8d7f91"), - VN(VC::INVALID_DURATION, string("a2a87f5d-b749-4a7e-8d0c-9d48a4abf626")).set_cpl_id(cpl->id()).set_reel_index(0), + VN(VC::INVALID_DURATION).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id("a2a87f5d-b749-4a7e-8d0c-9d48a4abf626"), VN(VC::INVALID_INTRINSIC_DURATION).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id("a2a87f5d-b749-4a7e-8d0c-9d48a4abf626"), VN(VC::EMPTY_CONTENT_VERSION_LABEL_TEXT, cpl->file().get()).set_cpl_id(cpl->id()) }; -- cgit v1.2.3 From d47514ac74ec18cd33481e54b459c4af542bbc19 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 29 Mar 2026 13:41:58 +0200 Subject: EXTERNAL_ASSET: note -> asset_id. --- src/dcp.cc | 2 +- src/verify.cc | 2 +- src/verify.h | 2 +- test/verify_test.cc | 6 ++---- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/dcp.cc b/src/dcp.cc index d7245ed8..4d5be236 100644 --- a/src/dcp.cc +++ b/src/dcp.cc @@ -334,7 +334,7 @@ DCP::read (vector* notes, bool ignore_incorrect_picture_m for (auto i: cpls()) { for (auto j: i->reel_file_assets()) { if (!j->asset_ref().resolved() && ids_and_paths.find(j->asset_ref().id()) == ids_and_paths.end()) { - notes->push_back(VerificationNote(VerificationNote::Code::EXTERNAL_ASSET, j->asset_ref().id())); + notes->push_back(VerificationNote(VerificationNote::Code::EXTERNAL_ASSET).set_asset_id(j->asset_ref().id())); } } } diff --git a/src/verify.cc b/src/verify.cc index fcee2967..7d87ba1f 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -2006,7 +2006,7 @@ dcp::note_to_string(VerificationNote note, function process_str filename() ); case VerificationNote::Code::EXTERNAL_ASSET: - return compose("The asset %1 that this DCP refers to is not included in the DCP. It may be a VF.", note.note().get()); + return compose("The asset %asset_id that this DCP refers to is not included in the DCP. It may be a VF.", *note.asset_id()); case VerificationNote::Code::THREED_ASSET_MARKED_AS_TWOD: return compose("The asset %1 is 3D but its MXF is marked as 2D.", filename()); case VerificationNote::Code::INVALID_STANDARD: diff --git a/src/verify.h b/src/verify.h index fa239302..0abf6c22 100644 --- a/src/verify.h +++ b/src/verify.h @@ -190,7 +190,7 @@ public: */ NEARLY_INVALID_PICTURE_FRAME_SIZE_IN_BYTES, /** An asset that the CPL requires is not in this DCP; the DCP may be a VF - * note contains the asset ID + * asset_id contains the asset ID */ EXTERNAL_ASSET, /** A stereoscopic asset has an MXF which is marked as being monoscopic diff --git a/test/verify_test.cc b/test/verify_test.cc index 6b83e0ae..fd4db820 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -1570,7 +1570,7 @@ BOOST_AUTO_TEST_CASE (verify_external_asset) note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), - { VC::EXTERNAL_ASSET, picture->asset()->id() }, + VN(VC::EXTERNAL_ASSET).set_asset_id(picture->asset()->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); } @@ -5360,9 +5360,7 @@ BOOST_AUTO_TEST_CASE(verify_duplicate_assetmap_asset_ids) VN( VC::DUPLICATE_ASSET_ID_IN_ASSETMAP, asset_map.id(), canonical(find_asset_map(dir)) ), - VN( - VC::EXTERNAL_ASSET, string("5407b210-4441-4e97-8b16-8bdc7c12da54") - ) + VN(VC::EXTERNAL_ASSET).set_asset_id("5407b210-4441-4e97-8b16-8bdc7c12da54"), }); } -- cgit v1.2.3 From 6ebb73004a5568b19228ff699cd68aadc8abbcff Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 29 Mar 2026 15:07:26 +0200 Subject: VALID_RELEASE_TERRITORY: note -> territory. --- src/verify.cc | 4 ++-- src/verify.h | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 7d87ba1f..2608ab77 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -1573,7 +1573,7 @@ verify_cpl(Context& context, shared_ptr cpl) } } if (valid) { - context.add_note(VerificationNote::Code::VALID_RELEASE_TERRITORY, terr); + context.add_note(VerificationNote(VerificationNote::Code::VALID_RELEASE_TERRITORY).set_territory(terr)); } } } @@ -2014,7 +2014,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::INVALID_LANGUAGE: return compose("The DCP specifies a language '%1' which does not conform to the RFC 5646 standard.", note.note().get()); case VerificationNote::Code::VALID_RELEASE_TERRITORY: - return compose("Valid release territory %1.", note.note().get()); + return compose("Valid release territory %1.", *note.territory()); case VerificationNote::Code::INVALID_PICTURE_SIZE_IN_PIXELS: return compose("The size %1 of picture asset %2 is not allowed.", note.note().get(), filename()); case VerificationNote::Code::INVALID_PICTURE_FRAME_RATE_FOR_2K: diff --git a/src/verify.h b/src/verify.h index 0abf6c22..ac943f50 100644 --- a/src/verify.h +++ b/src/verify.h @@ -204,7 +204,9 @@ public: * reel_index contains the reel index (starting from 0) */ INVALID_LANGUAGE, - /** A CPL has a valid release territory */ + /** A CPL has a valid release territory + * territory contains the territory + */ VALID_RELEASE_TERRITORY, /** A picture asset does not have one of the required Bv2.1 sizes (in pixels) [Bv2.1_7.1] * note contains the incorrect size as "x" -- cgit v1.2.3 From 814abc3a7afca78c8877d2c9478364c327db7734 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 29 Mar 2026 15:19:07 +0200 Subject: INVALID_LANGUAGE: note -> language. --- src/verify.cc | 6 +++--- src/verify.h | 2 +- test/verify_test.cc | 16 ++++++++-------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 2608ab77..41ecda0b 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -444,7 +444,7 @@ verify_language_tag(Context& context, string tag) try { LanguageTag test (tag); } catch (LanguageTagError &) { - context.add_note(VerificationNote::Code::INVALID_LANGUAGE, tag); + context.add_note(VerificationNote(VerificationNote::Code::INVALID_LANGUAGE).set_language(tag)); } } @@ -1568,7 +1568,7 @@ verify_cpl(Context& context, shared_ptr cpl) LanguageTag::RegionSubtag test(terr); } catch (...) { if (terr != "001") { - context.add_note(VerificationNote::Code::INVALID_LANGUAGE, terr); + context.add_note(VerificationNote(VerificationNote::Code::INVALID_LANGUAGE).set_language(terr)); valid = false; } } @@ -2012,7 +2012,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::INVALID_STANDARD: return "This DCP does not use the SMPTE standard."; case VerificationNote::Code::INVALID_LANGUAGE: - return compose("The DCP specifies a language '%1' which does not conform to the RFC 5646 standard.", note.note().get()); + return compose("The DCP specifies a language '%1' which does not conform to the RFC 5646 standard.", *note.language()); case VerificationNote::Code::VALID_RELEASE_TERRITORY: return compose("Valid release territory %1.", *note.territory()); case VerificationNote::Code::INVALID_PICTURE_SIZE_IN_PIXELS: diff --git a/src/verify.h b/src/verify.h index ac943f50..ecaeacfe 100644 --- a/src/verify.h +++ b/src/verify.h @@ -200,7 +200,7 @@ public: /** DCP is Interop, not SMPTE [Bv2.1_6.1] */ INVALID_STANDARD, /** A language or territory does not conform to RFC 5646 [Bv2.1_6.2.1] - * note contains the invalid language + * language contains the invalid language * reel_index contains the reel index (starting from 0) */ INVALID_LANGUAGE, diff --git a/test/verify_test.cc b/test/verify_test.cc index fd4db820..93ff427e 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -1733,8 +1733,8 @@ BOOST_AUTO_TEST_CASE (verify_invalid_language1) note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), - VN(VC::INVALID_LANGUAGE, string("badlang")).set_cpl_id(cpl->id()).set_reel_index(0), - VN(VC::INVALID_LANGUAGE, string("wrong-andbad")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), + VN(VC::INVALID_LANGUAGE).set_cpl_id(cpl->id()).set_reel_index(0).set_language("badlang"), + VN(VC::INVALID_LANGUAGE).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_language("wrong-andbad"), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); } @@ -1766,8 +1766,8 @@ BOOST_AUTO_TEST_CASE (verify_invalid_language2) note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), - VN(VC::INVALID_LANGUAGE, string("badlang")).set_cpl_id(cpl->id()).set_reel_index(0), - VN(VC::INVALID_LANGUAGE, string("wrong-andbad")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), + VN(VC::INVALID_LANGUAGE).set_cpl_id(cpl->id()).set_reel_index(0).set_language("badlang"), + VN(VC::INVALID_LANGUAGE).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_language("wrong-andbad"), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); } @@ -1825,10 +1825,10 @@ BOOST_AUTO_TEST_CASE (verify_invalid_language3) note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "videofoo.mxf"), cpl).set_reel_index(0).set_asset_id(picture->id()), - VN(VC::INVALID_LANGUAGE, string("this-is-wrong")).set_cpl_id(cpl->id()), - VN(VC::INVALID_LANGUAGE, string("andso-is-this")).set_cpl_id(cpl->id()), - VN(VC::INVALID_LANGUAGE, string("fred-jim")).set_cpl_id(cpl->id()), - VN(VC::INVALID_LANGUAGE, string("frobozz")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(sound->id()), + VN(VC::INVALID_LANGUAGE).set_cpl_id(cpl->id()).set_language("this-is-wrong"), + VN(VC::INVALID_LANGUAGE).set_cpl_id(cpl->id()).set_language("andso-is-this"), + VN(VC::INVALID_LANGUAGE).set_cpl_id(cpl->id()).set_language("fred-jim"), + VN(VC::INVALID_LANGUAGE).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(sound->id()).set_language("frobozz"), }); } -- cgit v1.2.3 From b65880e549432818f750675a4f518eb96d1f486e Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 29 Mar 2026 15:43:53 +0200 Subject: INVALID_PICTURE_SIZE_IN_PIXELS: note -> size_in_pixels. --- src/verify.cc | 6 +++--- src/verify.h | 2 +- test/verify_test.cc | 4 +++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 41ecda0b..30b3ce43 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -574,11 +574,11 @@ verify_main_picture_asset(Context& context, shared_ptr r asset->size() != Size(1998, 1080) && asset->size() != Size(4096, 1716) && asset->size() != Size(3996, 2160)) { - context.add_note(VerificationNote::Code::INVALID_PICTURE_SIZE_IN_PIXELS, String::compose("%1x%2", asset->size().width, asset->size().height), file); + context.add_note(VerificationNote(VerificationNote::Code::INVALID_PICTURE_SIZE_IN_PIXELS, file).set_size_in_pixels(asset->size())); } } else if (dynamic_pointer_cast(asset)) { if (asset->size() != Size(1920, 1080)) { - context.add_note(VerificationNote::Code::INVALID_PICTURE_SIZE_IN_PIXELS, fmt::format("{}x{}", asset->size().width, asset->size().height), file); + context.add_note(VerificationNote(VerificationNote::Code::INVALID_PICTURE_SIZE_IN_PIXELS, file).set_size_in_pixels(asset->size())); } } @@ -2016,7 +2016,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::VALID_RELEASE_TERRITORY: return compose("Valid release territory %1.", *note.territory()); case VerificationNote::Code::INVALID_PICTURE_SIZE_IN_PIXELS: - return compose("The size %1 of picture asset %2 is not allowed.", note.note().get(), filename()); + return compose("The size %1x%2 of picture asset %3 is not allowed.", note.size_in_pixels()->width, note.size_in_pixels()->height, filename()); case VerificationNote::Code::INVALID_PICTURE_FRAME_RATE_FOR_2K: return compose("The frame rate %1/%2 of picture asset %3 is not allowed for 2K DCPs.", note.frame_rate()->numerator, note.frame_rate()->denominator, filename()); case VerificationNote::Code::INVALID_PICTURE_FRAME_RATE_FOR_4K: diff --git a/src/verify.h b/src/verify.h index ecaeacfe..cab264db 100644 --- a/src/verify.h +++ b/src/verify.h @@ -209,7 +209,7 @@ public: */ VALID_RELEASE_TERRITORY, /** A picture asset does not have one of the required Bv2.1 sizes (in pixels) [Bv2.1_7.1] - * note contains the incorrect size as "x" + * size_in_pixels contains the incorrect size * file contains the asset filename * reel_index contains the reel index (starting from 0) */ diff --git a/test/verify_test.cc b/test/verify_test.cc index 93ff427e..bef3a871 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -1948,7 +1948,9 @@ check_picture_size_bad_frame_size (int width, int height, int frame_rate, bool t ).set_cpl_id(cpl->id()), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), - VN(VC::INVALID_PICTURE_SIZE_IN_PIXELS, dcp::String::compose("%1x%2", width, height), canonical(dir / "video.mxf")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(picture_id), + VN( + VC::INVALID_PICTURE_SIZE_IN_PIXELS, canonical(dir / "video.mxf") + ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(picture_id).set_size_in_pixels({width, height}), }; check_verify_result(notes, expected); } -- cgit v1.2.3 From b3759f9f0bc6f00a6e4492b013f30538a3e9b9ec Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 29 Mar 2026 15:51:18 +0200 Subject: INVALID_CLOSED_CAPTION_XML_SIZE_IN_BYTES: note -> size_in_bytes. --- src/verify.cc | 4 ++-- src/verify.h | 2 +- test/verify_test.cc | 4 +++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 30b3ce43..511436d6 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -856,7 +856,7 @@ verify_closed_caption_asset ( if (auto raw_xml = asset->raw_xml()) { validate_xml(context, *raw_xml); if (raw_xml->size() > 256 * 1024) { - context.add_note(VerificationNote::Code::INVALID_CLOSED_CAPTION_XML_SIZE_IN_BYTES, fmt::to_string(raw_xml->size()), *asset->file()); + context.add_note(VerificationNote(VerificationNote::Code::INVALID_CLOSED_CAPTION_XML_SIZE_IN_BYTES, *asset->file()).set_size_in_bytes(raw_xml->size())); } } else { context.add_note(VerificationNote::Code::MISSED_CHECK_OF_ENCRYPTED); @@ -2024,7 +2024,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::INVALID_PICTURE_ASSET_RESOLUTION_FOR_3D: return process_string("3D 4K DCPs are not allowed."); case VerificationNote::Code::INVALID_CLOSED_CAPTION_XML_SIZE_IN_BYTES: - return compose("The size %1 of the closed caption asset %2 is larger than the 256KB maximum.", note.note().get(), filename()); + return compose("The size %1 of the closed caption asset %2 is larger than the 256KB maximum.", *note.size_in_bytes(), filename()); case VerificationNote::Code::INVALID_TIMED_TEXT_SIZE_IN_BYTES: return compose("The size %1 of the timed text asset %2 is larger than the 115MB maximum.", note.note().get(), filename()); case VerificationNote::Code::INVALID_TIMED_TEXT_FONT_SIZE_IN_BYTES: diff --git a/src/verify.h b/src/verify.h index cab264db..67763eb9 100644 --- a/src/verify.h +++ b/src/verify.h @@ -231,7 +231,7 @@ public: */ INVALID_PICTURE_ASSET_RESOLUTION_FOR_3D, /** A closed caption's XML file is larger than 256KB [Bv2.1_7.2.1] - * note contains the invalid size in bytes + * size_in_bytes contains the invalid size in bytes * file contains the asset filename * reel_index contains the reel index (starting from 0) */ diff --git a/test/verify_test.cc b/test/verify_test.cc index bef3a871..8a79bb95 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -2136,7 +2136,9 @@ BOOST_AUTO_TEST_CASE (verify_invalid_closed_caption_xml_size_in_bytes) note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), VN(VC::MISSING_SUBTITLE_START_TIME, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), - VN(VC::INVALID_CLOSED_CAPTION_XML_SIZE_IN_BYTES, string("419371"), canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), + VN( + VC::INVALID_CLOSED_CAPTION_XML_SIZE_IN_BYTES, canonical(dir / "subs.mxf") + ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_size_in_bytes(419371), VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); -- cgit v1.2.3 From ad1b660b6b3132952bdc2d4e5682fa164c82dd37 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 29 Mar 2026 16:11:39 +0200 Subject: INVALID_TIMED_TEXT_SIZE_IN_BYTES: note -> size_in_bytes. --- src/verify.cc | 4 ++-- src/verify.h | 2 +- test/verify_test.cc | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 511436d6..72d2f0ac 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -709,7 +709,7 @@ verify_smpte_timed_text_asset ( auto const size = filesystem::file_size(asset->file().get()); if (size > 115 * 1024 * 1024) { - context.add_note(VerificationNote::Code::INVALID_TIMED_TEXT_SIZE_IN_BYTES, fmt::to_string(size), *asset->file()); + context.add_note(VerificationNote(VerificationNote::Code::INVALID_TIMED_TEXT_SIZE_IN_BYTES, *asset->file()).set_size_in_bytes(size)); } /* XXX: I'm not sure what Bv2.1_7.2.1 means when it says "the font resource shall not be larger than 10MB" @@ -2026,7 +2026,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::INVALID_CLOSED_CAPTION_XML_SIZE_IN_BYTES: return compose("The size %1 of the closed caption asset %2 is larger than the 256KB maximum.", *note.size_in_bytes(), filename()); case VerificationNote::Code::INVALID_TIMED_TEXT_SIZE_IN_BYTES: - return compose("The size %1 of the timed text asset %2 is larger than the 115MB maximum.", note.note().get(), filename()); + return compose("The size %1 of the timed text asset %2 is larger than the 115MB maximum.", *note.size_in_bytes(), filename()); case VerificationNote::Code::INVALID_TIMED_TEXT_FONT_SIZE_IN_BYTES: return compose("The size %1 of the fonts in timed text asset %2 is larger than the 10MB maximum.", note.note().get(), filename()); case VerificationNote::Code::MISSING_SUBTITLE_LANGUAGE: diff --git a/src/verify.h b/src/verify.h index 67763eb9..1cb6acc0 100644 --- a/src/verify.h +++ b/src/verify.h @@ -237,7 +237,7 @@ public: */ INVALID_CLOSED_CAPTION_XML_SIZE_IN_BYTES, /** Any timed text asset's total files is larger than 115MB [Bv2.1_7.2.1] - * note contains the invalid size in bytes + * size_in_bytes contains the invalid size in bytes * file contains the asset filename */ INVALID_TIMED_TEXT_SIZE_IN_BYTES, diff --git a/test/verify_test.cc b/test/verify_test.cc index 8a79bb95..63cb0bb3 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -2187,8 +2187,8 @@ verify_timed_text_asset_too_large (string name) note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), VN( - VC::INVALID_TIMED_TEXT_SIZE_IN_BYTES, string("121698284"), canonical(dir / "subs.mxf") - ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), + VC::INVALID_TIMED_TEXT_SIZE_IN_BYTES, canonical(dir / "subs.mxf") + ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_size_in_bytes(121698284), VN( VC::INVALID_TIMED_TEXT_FONT_SIZE_IN_BYTES, "121634816", -- cgit v1.2.3 From 7192b355e9754b0551d219de26b387905287495c Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 29 Mar 2026 16:22:14 +0200 Subject: INVALID_TIMED_TEXT_FONT_SIZE_IN_BYTES: note -> size_in_bytes. --- src/verify.cc | 4 ++-- src/verify.h | 2 +- test/verify_test.cc | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 72d2f0ac..a720d731 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -721,7 +721,7 @@ verify_smpte_timed_text_asset ( total_size += i.second.size(); } if (total_size > 10 * 1024 * 1024) { - context.add_note(VerificationNote::Code::INVALID_TIMED_TEXT_FONT_SIZE_IN_BYTES, fmt::to_string(total_size), asset->file().get()); + context.add_note(VerificationNote(VerificationNote::Code::INVALID_TIMED_TEXT_FONT_SIZE_IN_BYTES, asset->file().get()).set_size_in_bytes(total_size)); } if (asset->raw_xml()) { @@ -2028,7 +2028,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::INVALID_TIMED_TEXT_SIZE_IN_BYTES: return compose("The size %1 of the timed text asset %2 is larger than the 115MB maximum.", *note.size_in_bytes(), filename()); case VerificationNote::Code::INVALID_TIMED_TEXT_FONT_SIZE_IN_BYTES: - return compose("The size %1 of the fonts in timed text asset %2 is larger than the 10MB maximum.", note.note().get(), filename()); + return compose("The size %1 of the fonts in timed text asset %2 is larger than the 10MB maximum.", *note.size_in_bytes(), filename()); case VerificationNote::Code::MISSING_SUBTITLE_LANGUAGE: return compose("The XML for the SMPTE subtitle asset %1 has no tag.", filename()); case VerificationNote::Code::MISMATCHED_SUBTITLE_LANGUAGES: diff --git a/src/verify.h b/src/verify.h index 1cb6acc0..73b1ab43 100644 --- a/src/verify.h +++ b/src/verify.h @@ -242,7 +242,7 @@ public: */ INVALID_TIMED_TEXT_SIZE_IN_BYTES, /** The total size of all a timed text asset's fonts is larger than 10MB [Bv2.1_7.2.1] - * note contains the invalid size in bytes + * size_in_bytes contains the invalid size in bytes * file contains the asset filename */ INVALID_TIMED_TEXT_FONT_SIZE_IN_BYTES, diff --git a/test/verify_test.cc b/test/verify_test.cc index 63cb0bb3..3ed981fd 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -2191,9 +2191,8 @@ verify_timed_text_asset_too_large (string name) ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_size_in_bytes(121698284), VN( VC::INVALID_TIMED_TEXT_FONT_SIZE_IN_BYTES, - "121634816", canonical(dir / "subs.mxf") - ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), + ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_size_in_bytes(121634816), VN(VC::MISSING_SUBTITLE_START_TIME, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) -- cgit v1.2.3 From 53a3e519faeb354934c535f933014cc60ccc3ea4 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 29 Mar 2026 16:32:10 +0200 Subject: INVALID_SOUND_BIT_DEPTH: note -> bit_depth. --- src/verify.cc | 4 ++-- src/verify.h | 2 +- test/verify_test.cc | 4 +++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index a720d731..b42fdbb7 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -655,7 +655,7 @@ verify_main_sound_asset(Context& context, shared_ptr reel_ context.add_note(VerificationNote(VerificationNote::Code::INVALID_SOUND_FRAME_RATE, file).set_frame_rate(dcp::Fraction(asset->sampling_rate(), 1))); } if (asset->bit_depth() != 24) { - context.add_note(VerificationNote::Code::INVALID_SOUND_BIT_DEPTH, fmt::to_string(asset->bit_depth()), file); + context.add_note(VerificationNote(VerificationNote::Code::INVALID_SOUND_BIT_DEPTH, file).set_bit_depth(asset->bit_depth())); } } @@ -2060,7 +2060,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::INVALID_SOUND_FRAME_RATE: return compose("The sound asset %1 has a sampling rate of %2", filename(), note.frame_rate()->numerator); case VerificationNote::Code::INVALID_SOUND_BIT_DEPTH: - return compose("The sound asset %1 has a bit depth of %2", filename(), note.note().get()); + return compose("The sound asset %1 has a bit depth of %2", filename(), *note.bit_depth()); case VerificationNote::Code::MISSING_CPL_ANNOTATION_TEXT: return compose("The CPL %1 has no tag.", note.cpl_id().get()); case VerificationNote::Code::MISMATCHED_CPL_ANNOTATION_TEXT: diff --git a/src/verify.h b/src/verify.h index 73b1ab43..04640844 100644 --- a/src/verify.h +++ b/src/verify.h @@ -292,7 +292,7 @@ public: */ INVALID_SOUND_FRAME_RATE, /** The audio bit depth must be 24 - * note contains the invalid bit depth + * bit_depth contains the invalid bit depth * file contains the asset filename * reel_index contains the reel index (starting from 0) */ diff --git a/test/verify_test.cc b/test/verify_test.cc index 3ed981fd..73b8860f 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -5933,7 +5933,9 @@ BOOST_AUTO_TEST_CASE(verify_invalid_sound_bit_depth) note(VC::NONE_ENCRYPTED, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "Video.mxf"), cpl).set_reel_index(0).set_asset_id("fd4796c2-9c84-454c-91f4-13ad127cea8a"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "Video.mxf"), cpl).set_reel_index(0).set_asset_id("fd4796c2-9c84-454c-91f4-13ad127cea8a"), - VN(VC::INVALID_SOUND_BIT_DEPTH, "16", canonical(dir / "Audio.mxf")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id("9d5e8bc4-676b-4306-a86d-03f70c73b457"), + VN( + VC::INVALID_SOUND_BIT_DEPTH, canonical(dir / "Audio.mxf") + ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id("9d5e8bc4-676b-4306-a86d-03f70c73b457").set_bit_depth(16), VN(VC::MISSING_HASH, string("fd4796c2-9c84-454c-91f4-13ad127cea8a")).set_cpl_id(cpl->id()).set_reel_index(0), VN(VC::MISSING_HASH, string("9d5e8bc4-676b-4306-a86d-03f70c73b457")).set_cpl_id(cpl->id()).set_reel_index(0), VN(VC::MISSING_CPL_METADATA, canonical(cpl->file().get())).set_cpl_id(cpl->id()), -- cgit v1.2.3 From 81215b312016ef1e947e92675bea176be05f168d Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 29 Mar 2026 17:09:43 +0200 Subject: VALID_CPL_ANNOTATION_TEXT: note -> annotation_text. --- src/verify.cc | 4 +- src/verify.h | 4 +- test/verify_test.cc | 212 ++++++++++++++++++++++++++-------------------------- 3 files changed, 111 insertions(+), 109 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index b42fdbb7..d4cd4b3f 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -1593,7 +1593,7 @@ verify_cpl(Context& context, shared_ptr cpl) } else if (cpl->annotation_text().get() != cpl->content_title_text()) { context.add_note(VerificationNote::Code::MISMATCHED_CPL_ANNOTATION_TEXT, cpl->file().get()); } else { - context.add_note(VerificationNote::Code::VALID_CPL_ANNOTATION_TEXT, cpl->annotation_text().get()); + context.add_note(VerificationNote(VerificationNote::Code::VALID_CPL_ANNOTATION_TEXT).set_annotation_text(cpl->annotation_text().get())); } } @@ -2066,7 +2066,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::MISMATCHED_CPL_ANNOTATION_TEXT: return compose("The CPL %1 has an which differs from its .", note.cpl_id().get()); case VerificationNote::Code::VALID_CPL_ANNOTATION_TEXT: - return compose("Valid CPL annotation text %1", note.note().get()); + return compose("Valid CPL annotation text %1", *note.annotation_text()); case VerificationNote::Code::MISMATCHED_ASSET_DURATION: return process_string("All assets in a reel do not have the same duration."); case VerificationNote::Code::MISSING_MAIN_SUBTITLE_FROM_SOME_REELS: diff --git a/src/verify.h b/src/verify.h index 04640844..334cea5c 100644 --- a/src/verify.h +++ b/src/verify.h @@ -307,7 +307,9 @@ public: * file contains the CPL filename */ MISMATCHED_CPL_ANNOTATION_TEXT, - /** A CPL has an annotation text which matches the __ */ + /** A CPL has an annotation text which matches the __ + * annotation_text contains the annotation text. + */ VALID_CPL_ANNOTATION_TEXT, /** At least one asset in a reel does not have the same duration as the others. * reel_index contains the reel index (starting from 0) diff --git a/test/verify_test.cc b/test/verify_test.cc index 73b8860f..d9bc3e41 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -537,7 +537,7 @@ BOOST_AUTO_TEST_CASE (verify_incorrect_picture_sound_hash) ).set_cpl_id(dcp_test1_cpl_id()), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id("5407b210-4441-4e97-8b16-8bdc7c12da54"), VN( VC::INCORRECT_PICTURE_HASH, canonical(video_path) @@ -581,7 +581,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_picture_sound_hashes) ).set_cpl_id(cpl->id()), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id("5407b210-4441-4e97-8b16-8bdc7c12da54"), VN( VC::MISMATCHED_CPL_HASHES, canonical(dir / dcp_test1_cpl()) @@ -624,7 +624,7 @@ BOOST_AUTO_TEST_CASE (verify_failed_read_content_kind) canonical(cpl->file().get()) ).set_cpl_id(cpl->id()), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id("5407b210-4441-4e97-8b16-8bdc7c12da54"), VN( VC::MISMATCHED_CPL_HASHES, canonical(dir / dcp_test1_cpl()) @@ -683,7 +683,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_picture_frame_rate) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id("5407b210-4441-4e97-8b16-8bdc7c12da54"), VN( VC::MISMATCHED_CPL_HASHES, canonical(cpl_path) @@ -719,7 +719,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_asset) ).set_cpl_id(cpl->id()), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), { VC::MISSING_ASSET, canonical(dir) / "video.mxf" } }); } @@ -749,7 +749,7 @@ BOOST_AUTO_TEST_CASE (verify_empty_asset_path) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), { VC::EMPTY_ASSET_PATH } }; @@ -782,7 +782,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_standard) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), { VC::MISMATCHED_STANDARD }, VN(VC::INVALID_XML, canonical(cpl_path), 42).set_cpl_id(cpl->id()).set_error("invalid character encountered"), VN(VC::INVALID_XML, canonical(cpl_path), 53).set_cpl_id(cpl->id()).set_error("no declaration found for element 'Id'"), @@ -829,7 +829,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_id) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::INVALID_XML, canonical(cpl_path), 3).set_cpl_id(cpl->id()).set_error( "value 'urn:uuid:6affb8ee-0020-4dff-a53c-17652f6358a' does not match regular expression " @@ -869,7 +869,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_issue_date) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), VN( VC::MISMATCHED_CPL_HASHES, canonical(cpl_path) ).set_cpl_id(cpl->id()).set_reference_hash("skI+5b/9LA/y6h0mcyxysJYanxI=").set_calculated_hash("sz3BeIugJ567q3HMnA62JeRw4TE="), @@ -909,7 +909,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_pkl_id) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::INVALID_XML, canonical(pkl_path), 3).set_error( "value 'urn:uuid:x199d58b-5ef8-4d49-b270-07e590ccb280' does not match regular " @@ -950,7 +950,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_asset_map_id) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::INVALID_XML, canonical(asset_map_path), 3).set_error( "value 'urn:uuid:x17b3de4-6dda-408d-b19b-6711354b0bc3' does not match regular " @@ -1114,7 +1114,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_picture_frame_size_in_bytes) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "pic.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), }; @@ -1172,7 +1172,7 @@ BOOST_AUTO_TEST_CASE (verify_nearly_invalid_picture_frame_size_in_bytes) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), }; for (auto i = 0; i < 24; ++i) { @@ -1224,7 +1224,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_picture_frame_size_in_bytes) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "pic.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -1401,7 +1401,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_smpte_subtitles) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()), VN(VC::INVALID_SUBTITLE_ISSUE_DATE, string{"2021-04-14T13:19:14.000+02:00"}).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), VN(VC::INCORRECT_SUBTITLE_NAMESPACE_COUNT, asset->id()).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), @@ -1433,7 +1433,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_smpte_subtitles) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::INVALID_XML, path(), 2).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_error("no declaration found for element 'Foo'"), VN(VC::INVALID_XML, path(), 2).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_error( "element 'Foo' is not allowed for content model " @@ -1468,7 +1468,7 @@ BOOST_AUTO_TEST_CASE (verify_empty_text_node_in_subtitles) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::EMPTY_TEXT).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), VN(VC::MISSING_SUBTITLE_LANGUAGE, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), @@ -1569,7 +1569,7 @@ BOOST_AUTO_TEST_CASE (verify_external_asset) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::EXTERNAL_ASSET).set_asset_id(picture->asset()->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -1656,7 +1656,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_cpl_metadata_bad_tag) ).set_cpl_id(cpl->id()), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "pic.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::INVALID_XML, canonical(cpl->file().get()), 50).set_cpl_id(cpl->id()).set_error("no declaration found for element 'meta:MainSoundXConfiguration'"), VN(VC::INVALID_XML, canonical(cpl->file().get()), 51).set_cpl_id(cpl->id()).set_error("no declaration found for element 'meta:MainSoundXSampleRate'"), @@ -1732,7 +1732,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_language1) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::INVALID_LANGUAGE).set_cpl_id(cpl->id()).set_reel_index(0).set_language("badlang"), VN(VC::INVALID_LANGUAGE).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_language("wrong-andbad"), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) @@ -1765,7 +1765,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_language2) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::INVALID_LANGUAGE).set_cpl_id(cpl->id()).set_reel_index(0).set_language("badlang"), VN(VC::INVALID_LANGUAGE).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_language("wrong-andbad"), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) @@ -1823,7 +1823,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_language3) ).set_cpl_id(cpl->id()), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "videofoo.mxf"), cpl).set_reel_index(0).set_asset_id(picture->id()), VN(VC::INVALID_LANGUAGE).set_cpl_id(cpl->id()).set_language("this-is-wrong"), VN(VC::INVALID_LANGUAGE).set_cpl_id(cpl->id()).set_language("andso-is-this"), @@ -1906,7 +1906,7 @@ check_picture_size_ok (int width, int height, int frame_rate, bool three_d) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), VN( @@ -1938,7 +1938,7 @@ check_picture_size_bad_frame_size (int width, int height, int frame_rate, bool t note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), VN( @@ -1973,7 +1973,7 @@ check_picture_size_bad_2k_frame_rate (int width, int height, int frame_rate, boo note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), VN( @@ -2008,7 +2008,7 @@ check_picture_size_bad_4k_frame_rate (int width, int height, int frame_rate, boo note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), VN( @@ -2134,7 +2134,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_closed_caption_xml_size_in_bytes) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::MISSING_SUBTITLE_START_TIME, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), VN( VC::INVALID_CLOSED_CAPTION_XML_SIZE_IN_BYTES, canonical(dir / "subs.mxf") @@ -2185,7 +2185,7 @@ verify_timed_text_asset_too_large (string name) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN( VC::INVALID_TIMED_TEXT_SIZE_IN_BYTES, canonical(dir / "subs.mxf") ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_size_in_bytes(121698284), @@ -2265,7 +2265,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_subtitle_language) ).set_cpl_id(cpl->id()), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::MISSING_SUBTITLE_LANGUAGE, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_id), @@ -2330,7 +2330,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_subtitle_languages) ).set_cpl_id(cpl->id()), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video0.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video1.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), VN(VC::MISSING_SUBTITLE_START_TIME, canonical(path / "subs1.mxf")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_ids[0]), @@ -2394,7 +2394,7 @@ BOOST_AUTO_TEST_CASE (verify_multiple_closed_caption_languages_allowed) ).set_cpl_id(cpl->id()), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::CORRECT_PICTURE_HASH, canonical(path / "video0.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::CORRECT_PICTURE_HASH, canonical(path / "video1.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video0.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), @@ -2463,7 +2463,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_subtitle_start_time) ).set_cpl_id(cpl->id()), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::MISSING_SUBTITLE_START_TIME, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs->id()), VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs->id()), @@ -2521,7 +2521,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_start_time) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -2634,7 +2634,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_first_text_time) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -2659,7 +2659,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_subtitle_first_text_time) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -2718,7 +2718,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_subtitle_first_text_time_on_second_reel) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -2749,7 +2749,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_spacing) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -2779,7 +2779,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_subtitle_spacing) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -2804,7 +2804,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_subtitle_duration) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -2830,7 +2830,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_subtitle_duration_bv21) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -2854,7 +2854,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_subtitle_duration) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -2885,7 +2885,7 @@ BOOST_AUTO_TEST_CASE (verify_subtitle_overlapping_reel_boundary) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -2919,7 +2919,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_line_count1) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -2950,7 +2950,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_subtitle_line_count1) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -2981,7 +2981,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_line_count2) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -3013,7 +3013,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_subtitle_line_count2) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -3041,7 +3041,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_line_length1) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -3070,7 +3070,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_line_length2) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -3102,7 +3102,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_closed_caption_line_count1) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -3133,7 +3133,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_closed_caption_line_count2) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -3164,7 +3164,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_closed_caption_line_count3) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -3196,7 +3196,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_closed_caption_line_count4) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -3224,7 +3224,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_closed_caption_line_length) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -3252,7 +3252,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_closed_caption_line_length) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -3283,7 +3283,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_closed_caption_valign1) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -3313,7 +3313,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_closed_caption_valign2) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -3344,7 +3344,7 @@ BOOST_AUTO_TEST_CASE (verify_incorrect_closed_caption_ordering1) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -3374,7 +3374,7 @@ BOOST_AUTO_TEST_CASE (verify_incorrect_closed_caption_ordering2) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -3396,7 +3396,7 @@ BOOST_AUTO_TEST_CASE (verify_incorrect_closed_caption_ordering3) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -3420,7 +3420,7 @@ BOOST_AUTO_TEST_CASE (verify_incorrect_closed_caption_ordering4) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -3459,7 +3459,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_sound_frame_rate) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "videofoo.mxf"), cpl).set_reel_index(0).set_asset_id(picture->id()), @@ -3590,7 +3590,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_asset_duration) {}, { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(mp->id()), @@ -3677,7 +3677,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_main_subtitle_from_some_reels) {}, { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -3704,7 +3704,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_main_subtitle_from_some_reels) {}, { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -3729,7 +3729,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_main_subtitle_from_some_reels) {}, { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -3822,7 +3822,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_closed_caption_asset_counts) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video2.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::MISMATCHED_CLOSED_CAPTION_ASSET_COUNTS).set_cpl_id(cpl->id()), @@ -3846,7 +3846,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_closed_caption_asset_counts) note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video2.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), @@ -3871,7 +3871,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_closed_caption_asset_counts) note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video2.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), @@ -3925,7 +3925,7 @@ verify_text_entry_point_check(dcp::TextType type, path dir, dcp::VerificationNot {}, { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), @@ -4017,7 +4017,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_hash) string{"1998x1080"}, cpl->file().get() ).set_cpl_id(cpl->id()), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -4070,7 +4070,7 @@ verify_markers_test ( ); test_notes.push_back(note(VC::VALID_CONTENT_KIND, string{"feature"}, cpl)); test_notes.push_back(note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl)); - test_notes.push_back(note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl)); + test_notes.push_back(VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP")); test_notes.push_back(note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id)); check_verify_result({dir}, {}, test_notes); @@ -4191,7 +4191,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_cpl_metadata_version_number) ).set_cpl_id(cpl->id()), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::MISSING_CPL_METADATA_VERSION_NUMBER, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -4225,7 +4225,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_extension_metadata1) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN( @@ -4268,7 +4268,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_extension_metadata2) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN( @@ -4312,7 +4312,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata3) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN( @@ -4357,7 +4357,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_extension_metadata1) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN( @@ -4401,7 +4401,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_extension_metadata2) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN( @@ -4448,7 +4448,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata6) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN( @@ -4496,7 +4496,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata7) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN( @@ -4543,7 +4543,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata8) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, string{"1998x1080"}, cpl->file().get()).set_cpl_id(cpl->id()), @@ -4588,7 +4588,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata9) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN( @@ -4641,7 +4641,7 @@ BOOST_AUTO_TEST_CASE (verify_unsigned_cpl_with_encrypted_content) { note(VC::ALL_ENCRYPTED, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_KIND, string{"feature"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -4688,7 +4688,7 @@ BOOST_AUTO_TEST_CASE (verify_unsigned_pkl_with_encrypted_content) { note(VC::ALL_ENCRYPTED, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_KIND, string{"feature"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -4740,7 +4740,7 @@ BOOST_AUTO_TEST_CASE (verify_unsigned_pkl_with_unencrypted_content) ).set_cpl_id(cpl->id()), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), }); } @@ -4818,7 +4818,7 @@ BOOST_AUTO_TEST_CASE (verify_partially_encrypted) cpl->file().get() ).set_cpl_id(cpl->id()), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_CPL_HASHES, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), @@ -4928,7 +4928,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_subtitle_resource_id) {}, { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_CPL_HASHES, cpl), @@ -5003,7 +5003,7 @@ BOOST_AUTO_TEST_CASE (verify_incorrect_timed_text_id) {}, { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_CPL_HASHES, cpl), @@ -5084,7 +5084,7 @@ BOOST_AUTO_TEST_CASE (verify_unexpected_things_in_main_markers) string{"1998x1080"}, canonical(cpl->file().get()) ).set_cpl_id(cpl->id()), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN( @@ -5127,7 +5127,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_content_kind) canonical(cpl->file().get()) ).set_cpl_id(cpl->id()), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -5168,7 +5168,7 @@ BOOST_AUTO_TEST_CASE(verify_valid_content_kind) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN( @@ -5216,7 +5216,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_main_picture_active_area_1) note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN( @@ -5265,7 +5265,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_main_picture_active_area_2) note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN( @@ -5316,7 +5316,7 @@ BOOST_AUTO_TEST_CASE(verify_duplicate_pkl_asset_ids) canonical(cpl->file().get()) ).set_cpl_id(cpl->id()), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::NONE_ENCRYPTED, cpl), { VC::DUPLICATE_ASSET_ID_IN_PKL, pkl.id(), canonical(find_pkl(dir)) }, @@ -5357,7 +5357,7 @@ BOOST_AUTO_TEST_CASE(verify_duplicate_assetmap_asset_ids) canonical(cpl->file().get()) ).set_cpl_id(cpl->id()), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::NONE_ENCRYPTED, cpl), VN( @@ -5454,7 +5454,7 @@ BOOST_AUTO_TEST_CASE(verify_mismatched_sound_channel_counts) cpl->file().get() ).set_cpl_id(cpl->id()), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::CORRECT_PICTURE_HASH, canonical(path / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::CORRECT_PICTURE_HASH, canonical(path / "video2.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), @@ -5520,7 +5520,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_main_sound_configuration) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::CORRECT_PICTURE_HASH, canonical(path / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(mp->id()), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(mp->id()), VN( @@ -5602,7 +5602,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_tile_part_size) note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::MISSING_FFOC).set_cpl_id(cpl->id()), VN(VC::MISSING_LFOC).set_cpl_id(cpl->id()) @@ -5654,7 +5654,7 @@ BOOST_AUTO_TEST_CASE(verify_too_many_subtitle_namespaces) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), note(VC::VALID_CONTENT_KIND, string{"feature"}, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"Dcp_FTR-1_F_XX-XX_MOS_2K_20230407_SMPTE_OV"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("Dcp_FTR-1_F_XX-XX_MOS_2K_20230407_SMPTE_OV"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "j2c_42b34dcd-caa5-4c7b-aa0f-66a590947ba1.mxf"), cpl).set_reel_index(0).set_asset_id("42b34dcd-caa5-4c7b-aa0f-66a590947ba1"), note( VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, @@ -5764,7 +5764,7 @@ BOOST_AUTO_TEST_CASE(verify_missing_load_font) cpl->file().get() ).set_cpl_id(cpl->id()), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -5807,7 +5807,7 @@ BOOST_AUTO_TEST_CASE(verify_spots_wrong_asset) cpl->file().get() ).set_cpl_id(cpl->id()), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::MISMATCHED_ASSET_MAP_ID).set_asset_id(asset_1).set_other_asset_id(asset_2) }); @@ -5842,7 +5842,7 @@ BOOST_AUTO_TEST_CASE(verify_cpl_content_version_label_text_empty) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::EMPTY_CONTENT_VERSION_LABEL_TEXT, cpl->file().get()).set_cpl_id(cpl->id()) @@ -5875,7 +5875,7 @@ BOOST_AUTO_TEST_CASE(verify_encrypted_smpte_dcp) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::ALL_ENCRYPTED, cpl), VN(VC::MISSING_CPL_METADATA, canonical(cpl_file)).set_cpl_id(cpl->id()) }); @@ -5906,7 +5906,7 @@ BOOST_AUTO_TEST_CASE(verify_encrypted_smpte_dcp_without_kdm) note(VC::ALL_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::MISSED_CHECK_OF_ENCRYPTED).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subtitle_id), VN(VC::MISSED_CHECK_OF_ENCRYPTED).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subtitle_id), VN(VC::MISSED_CHECK_OF_ENCRYPTED).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subtitle_id), @@ -5929,7 +5929,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_sound_bit_depth) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::VALID_CONTENT_KIND, string{"Advertisement"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"204794_Kitex_Scoobee_Day_Bags_30_Sec_Malayalam_220524_RADQR"}, cpl), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("204794_Kitex_Scoobee_Day_Bags_30_Sec_Malayalam_220524_RADQR"), note(VC::NONE_ENCRYPTED, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "Video.mxf"), cpl).set_reel_index(0).set_asset_id("fd4796c2-9c84-454c-91f4-13ad127cea8a"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "Video.mxf"), cpl).set_reel_index(0).set_asset_id("fd4796c2-9c84-454c-91f4-13ad127cea8a"), @@ -6085,8 +6085,8 @@ BOOST_AUTO_TEST_CASE(verify_dcp_with_two_cpls) note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpls[1]), note(VC::NONE_ENCRYPTED, cpls[0]), note(VC::NONE_ENCRYPTED, cpls[1]), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpls[0]), - note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpls[1]), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpls[0]->id()).set_annotation_text("hello"), + VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpls[1]->id()).set_annotation_text("hello"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpls[0]->content_version()->label_text, cpls[0]), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpls[1]->content_version()->label_text, cpls[1]), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(combined / "videofoo.mxf"), cpls[0]).set_reel_index(0).set_asset_id(picture_ids[0]), -- cgit v1.2.3 From 2835cd88ff5ddd9dc5ad4bf7e5eaefe7cc4b6a99 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 29 Mar 2026 17:18:08 +0200 Subject: {MISSING,INCORRECT}_{SUBTITLE,CLOSED_CAPTION}_ENTRY_POINT: note -> asset_id. --- src/verify.cc | 16 ++++++++-------- src/verify.h | 8 ++++---- test/verify_test.cc | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index d4cd4b3f..2d3031d5 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -669,9 +669,9 @@ verify_main_subtitle_reel(Context& context, shared_ptr reel } if (!reel_asset->entry_point()) { - context.add_note(VerificationNote::Code::MISSING_SUBTITLE_ENTRY_POINT, reel_asset->id()); + context.add_note(VerificationNote(VerificationNote::Code::MISSING_SUBTITLE_ENTRY_POINT).set_asset_id(reel_asset->id())); } else if (reel_asset->entry_point().get()) { - context.add_note(VerificationNote::Code::INCORRECT_SUBTITLE_ENTRY_POINT, reel_asset->id()); + context.add_note(VerificationNote(VerificationNote::Code::INCORRECT_SUBTITLE_ENTRY_POINT).set_asset_id(reel_asset->id())); } } @@ -685,9 +685,9 @@ verify_closed_caption_reel(Context& context, shared_ptr ree } if (!reel_asset->entry_point()) { - context.add_note(VerificationNote::Code::MISSING_CLOSED_CAPTION_ENTRY_POINT, reel_asset->id()); + context.add_note(VerificationNote(VerificationNote::Code::MISSING_CLOSED_CAPTION_ENTRY_POINT).set_asset_id(reel_asset->id())); } else if (reel_asset->entry_point().get()) { - context.add_note(VerificationNote::Code::INCORRECT_CLOSED_CAPTION_ENTRY_POINT, reel_asset->id()); + context.add_note(VerificationNote(VerificationNote::Code::INCORRECT_CLOSED_CAPTION_ENTRY_POINT).set_asset_id(reel_asset->id())); } } @@ -2074,13 +2074,13 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::MISMATCHED_CLOSED_CAPTION_ASSET_COUNTS: return process_string("At least one reel has closed captions, but reels have different numbers of closed caption assets."); case VerificationNote::Code::MISSING_SUBTITLE_ENTRY_POINT: - return compose("The subtitle asset %1 has no tag.", note.note().get()); + return compose("The subtitle asset %1 has no tag.", *note.asset_id()); case VerificationNote::Code::INCORRECT_SUBTITLE_ENTRY_POINT: - return compose("The subtitle asset %1 has an other than 0.", note.note().get()); + return compose("The subtitle asset %1 has an other than 0.", *note.asset_id()); case VerificationNote::Code::MISSING_CLOSED_CAPTION_ENTRY_POINT: - return compose("The closed caption asset %1 has no tag.", note.note().get()); + return compose("The closed caption asset %1 has no tag.", *note.asset_id()); case VerificationNote::Code::INCORRECT_CLOSED_CAPTION_ENTRY_POINT: - return compose("The closed caption asset %1 has an other than 0.", note.note().get()); + return compose("The closed caption asset %1 has an other than 0.", *note.asset_id()); case VerificationNote::Code::MISSING_HASH: return compose("The asset %1 has no tag in the CPL.", note.note().get()); case VerificationNote::Code::MISSING_FFEC_IN_FEATURE: diff --git a/src/verify.h b/src/verify.h index 334cea5c..ba726349 100644 --- a/src/verify.h +++ b/src/verify.h @@ -320,19 +320,19 @@ public: /** If one reel has at least one _ClosedCaption_, all reels must have the same number of _ClosedCaptions_ */ MISMATCHED_CLOSED_CAPTION_ASSET_COUNTS, /** MainSubtitle in reels must have __ [Bv2.1_8.3.2] - * note contains the asset ID + * asset_id contains the asset ID */ MISSING_SUBTITLE_ENTRY_POINT, /** MainSubtitle __ must be zero [Bv2.1_8.3.2] - * note contains the asset ID + * asset_id contains the asset ID */ INCORRECT_SUBTITLE_ENTRY_POINT, /** Closed caption in reels must have __ [Bv2.1_8.3.2] - * note contains the asset ID + * asset_id contains the asset ID */ MISSING_CLOSED_CAPTION_ENTRY_POINT, /** Closed caption _MainSubtitle_ __ must be zero [Bv2.1_8.3.2] - * note contains the asset ID + * asset_id contains the asset ID */ INCORRECT_CLOSED_CAPTION_ENTRY_POINT, /** __ must be present for assets in CPLs diff --git a/test/verify_test.cc b/test/verify_test.cc index d9bc3e41..2b555ed3 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -3932,7 +3932,7 @@ verify_text_entry_point_check(dcp::TextType type, path dir, dcp::VerificationNot note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::MATCHING_CPL_HASHES, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), - VN(code, subs->id()).set_cpl_id(cpl->id()).set_reel_index(0), + VN(code).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); } -- cgit v1.2.3 From fda76ce499bd7db31301383726fd4772fd08ca72 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 29 Mar 2026 20:51:11 +0200 Subject: MISSING_HASH: note -> asset_id. --- src/verify.cc | 4 ++-- src/verify.h | 2 +- test/verify_test.cc | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 2d3031d5..6b86958d 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -1425,7 +1425,7 @@ verify_reel( context.add_note(VerificationNote(VerificationNote::Code::INVALID_INTRINSIC_DURATION).set_asset_id(i->id())); } if (i->encryptable() && !i->hash()) { - context.add_note(VerificationNote::Code::MISSING_HASH, i->id()); + context.add_note(VerificationNote(VerificationNote::Code::MISSING_HASH).set_asset_id(i->id())); } } @@ -2082,7 +2082,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::INCORRECT_CLOSED_CAPTION_ENTRY_POINT: return compose("The closed caption asset %1 has an other than 0.", *note.asset_id()); case VerificationNote::Code::MISSING_HASH: - return compose("The asset %1 has no tag in the CPL.", note.note().get()); + return compose("The asset %1 has no tag in the CPL.", *note.asset_id()); case VerificationNote::Code::MISSING_FFEC_IN_FEATURE: return process_string("The DCP is marked as a Feature but there is no FFEC (first frame of end credits) marker."); case VerificationNote::Code::MISSING_FFMC_IN_FEATURE: diff --git a/src/verify.h b/src/verify.h index ba726349..8a6bcfe9 100644 --- a/src/verify.h +++ b/src/verify.h @@ -336,7 +336,7 @@ public: */ INCORRECT_CLOSED_CAPTION_ENTRY_POINT, /** __ must be present for assets in CPLs - * note contains the asset ID + * asset_id contains the asset ID * reel_index contains the reel index (starting from 0) */ MISSING_HASH, diff --git a/test/verify_test.cc b/test/verify_test.cc index 2b555ed3..20206c0b 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -4026,7 +4026,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_hash) VN( VC::MISMATCHED_CPL_HASHES, cpl->file().get() ).set_cpl_id(cpl->id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()), - VN(VC::MISSING_HASH, asset_id).set_cpl_id(cpl->id()).set_reel_index(0) + VN(VC::MISSING_HASH).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset_id), }); } @@ -5936,8 +5936,8 @@ BOOST_AUTO_TEST_CASE(verify_invalid_sound_bit_depth) VN( VC::INVALID_SOUND_BIT_DEPTH, canonical(dir / "Audio.mxf") ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id("9d5e8bc4-676b-4306-a86d-03f70c73b457").set_bit_depth(16), - VN(VC::MISSING_HASH, string("fd4796c2-9c84-454c-91f4-13ad127cea8a")).set_cpl_id(cpl->id()).set_reel_index(0), - VN(VC::MISSING_HASH, string("9d5e8bc4-676b-4306-a86d-03f70c73b457")).set_cpl_id(cpl->id()).set_reel_index(0), + VN(VC::MISSING_HASH).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id("fd4796c2-9c84-454c-91f4-13ad127cea8a"), + VN(VC::MISSING_HASH).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id("9d5e8bc4-676b-4306-a86d-03f70c73b457"), VN(VC::MISSING_CPL_METADATA, canonical(cpl->file().get())).set_cpl_id(cpl->id()), VN(VC::MISSING_FFOC).set_cpl_id(cpl->id()), VN(VC::MISSING_LFOC).set_cpl_id(cpl->id()), -- cgit v1.2.3 From 443efdefec2f72a4188d8d277e6145f745375fe3 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 29 Mar 2026 21:10:58 +0200 Subject: INCORRECT_FFOC: note -> time. --- src/verify.cc | 4 ++-- src/verify.h | 2 +- test/verify_test.cc | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 6b86958d..92da919c 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -1727,7 +1727,7 @@ verify_cpl(Context& context, shared_ptr cpl) if (ffoc == markers_seen.end()) { context.add_note(VerificationNote::Code::MISSING_FFOC); } else if (ffoc->second.as_editable_units() != 1) { - context.add_note(VerificationNote::Code::INCORRECT_FFOC, fmt::to_string(ffoc->second.as_editable_units())); + context.add_note(VerificationNote(VerificationNote::Code::INCORRECT_FFOC).set_time(ffoc->second)); } auto lfoc = markers_seen.find(Marker::LFOC); @@ -2092,7 +2092,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::MISSING_LFOC: return process_string("There should be a LFOC (last frame of content) marker."); case VerificationNote::Code::INCORRECT_FFOC: - return compose("The FFOC marker is %1 instead of 1", note.note().get()); + return compose("The FFOC marker is %1 instead of 1", note.time()->as_string(dcp::Standard::SMPTE)); case VerificationNote::Code::INCORRECT_LFOC: return compose("The LFOC marker is %1 instead of 1 less than the duration of the last reel.", note.note().get()); case VerificationNote::Code::MISSING_CPL_METADATA: diff --git a/src/verify.h b/src/verify.h index 8a6bcfe9..6ee8e5f0 100644 --- a/src/verify.h +++ b/src/verify.h @@ -349,7 +349,7 @@ public: /** There should be a LFOC marker */ MISSING_LFOC, /** The FFOC marker should be 1 - * note contains the incorrect value. + * time contains the incorrect time */ INCORRECT_FFOC, /** The LFOC marker should be the last frame in the reel diff --git a/test/verify_test.cc b/test/verify_test.cc index 20206c0b..1add49d0 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -4146,7 +4146,7 @@ BOOST_AUTO_TEST_CASE (verify_markers) { dcp::Marker::LFOC, dcp::Time(23, 24, 24) } }, { - { VC::INCORRECT_FFOC, string("3") } + { VN(VC::INCORRECT_FFOC).set_time(dcp::Time(3, 24, 24)) } }); verify_markers_test ( -- cgit v1.2.3 From c8720ce0fe32088df1c1d50c42c2e7434b142a68 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 29 Mar 2026 22:11:20 +0200 Subject: INCORRECT_LFOC: note -> time. --- src/verify.cc | 4 ++-- src/verify.h | 2 +- test/verify_test.cc | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 92da919c..2b67d7c1 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -1736,7 +1736,7 @@ verify_cpl(Context& context, shared_ptr cpl) } else { auto lfoc_time = lfoc->second.as_editable_units_ceil(lfoc->second.tcr); if (lfoc_time != (cpl->reels().back()->duration() - 1)) { - context.add_note(VerificationNote::Code::INCORRECT_LFOC, fmt::to_string(lfoc_time)); + context.add_note(VerificationNote(VerificationNote::Code::INCORRECT_LFOC).set_time(lfoc->second)); } } @@ -2094,7 +2094,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::INCORRECT_FFOC: return compose("The FFOC marker is %1 instead of 1", note.time()->as_string(dcp::Standard::SMPTE)); case VerificationNote::Code::INCORRECT_LFOC: - return compose("The LFOC marker is %1 instead of 1 less than the duration of the last reel.", note.note().get()); + return compose("The LFOC marker is %1 instead of 1 less than the duration of the last reel.", note.time()->as_string(dcp::Standard::SMPTE)); case VerificationNote::Code::MISSING_CPL_METADATA: return compose("The CPL %1 has no tag.", note.cpl_id().get()); case VerificationNote::Code::MISSING_CPL_METADATA_VERSION_NUMBER: diff --git a/src/verify.h b/src/verify.h index 6ee8e5f0..0222eb41 100644 --- a/src/verify.h +++ b/src/verify.h @@ -353,7 +353,7 @@ public: */ INCORRECT_FFOC, /** The LFOC marker should be the last frame in the reel - * note contains the incorrect value + * time contains the incorrect time */ INCORRECT_LFOC, /** There must be a __ diff --git a/test/verify_test.cc b/test/verify_test.cc index 1add49d0..e7d4f5ef 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -4158,7 +4158,7 @@ BOOST_AUTO_TEST_CASE (verify_markers) { dcp::Marker::LFOC, dcp::Time(18, 24, 24) } }, { - { VC::INCORRECT_LFOC, string("18") } + { VN(VC::INCORRECT_LFOC).set_time(dcp::Time(18, 24, 24)) } }); } -- cgit v1.2.3 From 60827711476f31920a1c8d7045907512abe2085d Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 29 Mar 2026 22:30:40 +0200 Subject: INVALID_EXTENSION_METADATA: note -> error. --- src/verify.cc | 4 ++-- src/verify.h | 2 +- test/verify_test.cc | 18 +++++------------- 3 files changed, 8 insertions(+), 16 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 2b67d7c1..95a63df5 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -1373,7 +1373,7 @@ dcp::verify_extension_metadata(Context& context) if (missing) { context.add_note(VerificationNote::Code::MISSING_EXTENSION_METADATA, context.cpl->file().get()); } else if (!malformed.empty()) { - context.add_note(VerificationNote::Code::INVALID_EXTENSION_METADATA, malformed, context.cpl->file().get()); + context.add_note(VerificationNote(VerificationNote::Code::INVALID_EXTENSION_METADATA, context.cpl->file().get()).set_error(malformed)); } } @@ -2102,7 +2102,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::MISSING_EXTENSION_METADATA: return compose("The CPL %1 has no in its .", note.cpl_id().get()); case VerificationNote::Code::INVALID_EXTENSION_METADATA: - return compose("The CPL %1 has a malformed (%2).", filename(), note.note().get()); + return compose("The CPL %1 has a malformed (%2).", filename(), *note.error()); case VerificationNote::Code::UNSIGNED_CPL_WITH_ENCRYPTED_CONTENT: return compose("The CPL %1, which has encrypted content, is not signed.", note.cpl_id().get()); case VerificationNote::Code::UNSIGNED_PKL_WITH_ENCRYPTED_CONTENT: diff --git a/src/verify.h b/src/verify.h index 0222eb41..f901feb0 100644 --- a/src/verify.h +++ b/src/verify.h @@ -372,7 +372,7 @@ public: */ MISSING_EXTENSION_METADATA, /** __ does not have the correct form [Bv2.1_8.6.3] - * note contains details of what's wrong + * error contains details of what's wrong * file contains the CPL filename */ INVALID_EXTENSION_METADATA, diff --git a/test/verify_test.cc b/test/verify_test.cc index e7d4f5ef..bdb8041c 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -4369,7 +4369,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_extension_metadata1) VN( VC::MISMATCHED_CPL_HASHES, cpl->file().get() ).set_cpl_id(cpl->id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()), - VN(VC::INVALID_EXTENSION_METADATA, string(" should be 'Application'"), cpl->file().get()).set_cpl_id(cpl->id()) + VN(VC::INVALID_EXTENSION_METADATA, cpl->file().get()).set_cpl_id(cpl->id()).set_error(" should be 'Application'"), }); } @@ -4413,9 +4413,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_extension_metadata2) VN( VC::MISMATCHED_CPL_HASHES, cpl->file().get() ).set_cpl_id(cpl->id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()), - VN( - VC::INVALID_EXTENSION_METADATA, string("No correctly-formed DCP Constraints Profile found"), cpl->file().get() - ).set_cpl_id(cpl->id()) + VN(VC::INVALID_EXTENSION_METADATA, cpl->file().get()).set_cpl_id(cpl->id()).set_error("No correctly-formed DCP Constraints Profile found"), }); } @@ -4462,9 +4460,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata6) VN( VC::MISMATCHED_CPL_HASHES, cpl->file().get() ).set_cpl_id(cpl->id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()), - VN( - VC::INVALID_EXTENSION_METADATA, string("No correctly-formed DCP Constraints Profile found"), cpl->file().get() - ).set_cpl_id(cpl->id()) + VN(VC::INVALID_EXTENSION_METADATA, cpl->file().get()).set_cpl_id(cpl->id()).set_error("No correctly-formed DCP Constraints Profile found"), }); } @@ -4508,9 +4504,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata7) VN( VC::MISMATCHED_CPL_HASHES, cpl->file().get() ).set_cpl_id(cpl->id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()), - VN( - VC::INVALID_EXTENSION_METADATA, string("No correctly-formed DCP Constraints Profile found"), cpl->file().get() - ).set_cpl_id(cpl->id()) + VN(VC::INVALID_EXTENSION_METADATA, cpl->file().get()).set_cpl_id(cpl->id()).set_error("No correctly-formed DCP Constraints Profile found"), }); } @@ -4553,9 +4547,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata8) VN( VC::MISMATCHED_CPL_HASHES, cpl->file().get() ).set_cpl_id(cpl->id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()), - VN( - VC::INVALID_EXTENSION_METADATA, string("No correctly-formed DCP Constraints Profile found"), cpl->file().get() - ).set_cpl_id(cpl->id()) + VN(VC::INVALID_EXTENSION_METADATA, cpl->file().get()).set_cpl_id(cpl->id()).set_error("No correctly-formed DCP Constraints Profile found"), }); } -- cgit v1.2.3 From ced73c6557bd6ff56ef0317491653fbd33858cbb Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 29 Mar 2026 23:22:53 +0200 Subject: UNSIGNED_PKL_WITH_ENCRYPTED_CONTENT: note -> pkl_id. --- src/verify.cc | 4 ++-- src/verify.h | 2 +- test/verify_test.cc | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 95a63df5..e3113280 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -1812,7 +1812,7 @@ verify_pkl(Context& context, shared_ptr pkl) cxml::Document doc("PackingList"); doc.read_file(dcp::filesystem::fix_long_path(pkl->file().get())); if (!doc.optional_node_child("Signature")) { - context.add_note(VerificationNote::Code::UNSIGNED_PKL_WITH_ENCRYPTED_CONTENT, pkl->id(), pkl->file().get()); + context.add_note(VerificationNote(VerificationNote::Code::UNSIGNED_PKL_WITH_ENCRYPTED_CONTENT, pkl->file().get()).set_pkl_id(pkl->id())); } } @@ -2106,7 +2106,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::UNSIGNED_CPL_WITH_ENCRYPTED_CONTENT: return compose("The CPL %1, which has encrypted content, is not signed.", note.cpl_id().get()); case VerificationNote::Code::UNSIGNED_PKL_WITH_ENCRYPTED_CONTENT: - return compose("The PKL %1, which has encrypted content, is not signed.", note.note().get()); + return compose("The PKL %1, which has encrypted content, is not signed.", *note.pkl_id()); case VerificationNote::Code::MISMATCHED_PKL_ANNOTATION_TEXT_WITH_CPL: return compose("The PKL %1 has only one CPL but its does not match the CPL's .", note.note().get()); case VerificationNote::Code::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL: diff --git a/src/verify.h b/src/verify.h index f901feb0..793adf7f 100644 --- a/src/verify.h +++ b/src/verify.h @@ -382,7 +382,7 @@ public: */ UNSIGNED_CPL_WITH_ENCRYPTED_CONTENT, /** A PKL containing encrypted content is not signed [Bv2.1_8.7] - * note contains the PKL ID + * pkl_id contains the PKL ID * file contains the PKL filename */ UNSIGNED_PKL_WITH_ENCRYPTED_CONTENT, diff --git a/test/verify_test.cc b/test/verify_test.cc index bdb8041c..defd06e2 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -4691,7 +4691,7 @@ BOOST_AUTO_TEST_CASE (verify_unsigned_pkl_with_encrypted_content) VN(VC::MISSING_FFOC).set_cpl_id(cpl->id()), VN(VC::MISSING_LFOC).set_cpl_id(cpl->id()), VN(VC::MISSING_CPL_METADATA, canonical(cpl_path)).set_cpl_id(cpl->id()), - VN(VC::UNSIGNED_PKL_WITH_ENCRYPTED_CONTENT, encryption_test_pkl_id(), canonical(pkl)) + VN(VC::UNSIGNED_PKL_WITH_ENCRYPTED_CONTENT, canonical(pkl)).set_pkl_id(encryption_test_pkl_id()), }); } -- cgit v1.2.3 From bcb1158dce040f73aef636f0a61e7ca63988711c Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 29 Mar 2026 23:40:11 +0200 Subject: MISMATCHED_PKL_ANNOTATION_TEXT_WITH_CPL: note -> pkl_id. --- src/verify.cc | 4 ++-- src/verify.h | 2 +- test/verify_test.cc | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index e3113280..4e40cfa5 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -1630,7 +1630,7 @@ verify_cpl(Context& context, shared_ptr cpl) } if (required_annotation_text && i->annotation_text() != required_annotation_text) { - context.add_note(VerificationNote::Code::MISMATCHED_PKL_ANNOTATION_TEXT_WITH_CPL, i->id(), i->file().get()); + context.add_note(VerificationNote(VerificationNote::Code::MISMATCHED_PKL_ANNOTATION_TEXT_WITH_CPL, i->file().get()).set_pkl_id(i->id())); } else { context.add_note(VerificationNote::Code::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL); } @@ -2108,7 +2108,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::UNSIGNED_PKL_WITH_ENCRYPTED_CONTENT: return compose("The PKL %1, which has encrypted content, is not signed.", *note.pkl_id()); case VerificationNote::Code::MISMATCHED_PKL_ANNOTATION_TEXT_WITH_CPL: - return compose("The PKL %1 has only one CPL but its does not match the CPL's .", note.note().get()); + return compose("The PKL %1 has only one CPL but its does not match the CPL's .", *note.pkl_id()); case VerificationNote::Code::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL: return process_string("The PKL and CPL annotation texts match."); case VerificationNote::Code::ALL_ENCRYPTED: diff --git a/src/verify.h b/src/verify.h index 793adf7f..58069feb 100644 --- a/src/verify.h +++ b/src/verify.h @@ -387,7 +387,7 @@ public: */ UNSIGNED_PKL_WITH_ENCRYPTED_CONTENT, /** If a PKL has one CPL its __ must be the same as the PKL's __ - * note contains the PKL ID + * pkl_id contains the PKL ID * file contains the PKL filename */ MISMATCHED_PKL_ANNOTATION_TEXT_WITH_CPL, diff --git a/test/verify_test.cc b/test/verify_test.cc index defd06e2..cd28a109 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -4640,7 +4640,7 @@ BOOST_AUTO_TEST_CASE (verify_unsigned_cpl_with_encrypted_content) VN( VC::MISMATCHED_CPL_HASHES, canonical(cpl_path) ).set_cpl_id(cpl->id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()), - VN(VC::MISMATCHED_PKL_ANNOTATION_TEXT_WITH_CPL, encryption_test_pkl_id(), canonical(pkl)).set_cpl_id(cpl->id()), + VN(VC::MISMATCHED_PKL_ANNOTATION_TEXT_WITH_CPL, canonical(pkl)).set_cpl_id(cpl->id()).set_pkl_id(encryption_test_pkl_id()), VN(VC::MISSING_FFEC_IN_FEATURE).set_cpl_id(cpl->id()), VN(VC::MISSING_FFMC_IN_FEATURE).set_cpl_id(cpl->id()), VN(VC::MISSING_FFOC).set_cpl_id(cpl->id()), @@ -4685,7 +4685,7 @@ BOOST_AUTO_TEST_CASE (verify_unsigned_pkl_with_encrypted_content) note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::MATCHING_CPL_HASHES, cpl), - VN(VC::MISMATCHED_PKL_ANNOTATION_TEXT_WITH_CPL, encryption_test_pkl_id(), canonical(pkl)).set_cpl_id(cpl->id()), + VN(VC::MISMATCHED_PKL_ANNOTATION_TEXT_WITH_CPL, canonical(pkl)).set_cpl_id(cpl->id()).set_pkl_id(encryption_test_pkl_id()), VN(VC::MISSING_FFEC_IN_FEATURE).set_cpl_id(cpl->id()), VN(VC::MISSING_FFMC_IN_FEATURE).set_cpl_id(cpl->id()), VN(VC::MISSING_FFOC).set_cpl_id(cpl->id()), -- cgit v1.2.3 From 0c3fc9e8b33494a920c89da935a100fa7307939c Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 29 Mar 2026 23:51:51 +0200 Subject: INVALID_JPEG2000_CODESTREAM: note -> error. --- src/verify.cc | 2 +- src/verify.h | 2 +- src/verify_j2k.cc | 2 +- test/verify_test.cc | 12 ++++-------- 4 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 4e40cfa5..abc447de 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -2122,7 +2122,7 @@ dcp::note_to_string(VerificationNote note, function process_str "Frame %1 (timecode %2) has an invalid JPEG2000 codestream (%3).", note.frame().get(), dcp::Time(note.frame().get(), note.frame_rate()->as_float(), note.frame_rate()->numerator).as_string(dcp::Standard::SMPTE), - note.note().get() + *note.error() ); case VerificationNote::Code::INVALID_JPEG2000_GUARD_BITS_FOR_2K: return compose("The JPEG2000 codestream uses %1 guard bits in a 2K image instead of 1.", note.note().get()); diff --git a/src/verify.h b/src/verify.h index 58069feb..16151bd1 100644 --- a/src/verify.h +++ b/src/verify.h @@ -401,7 +401,7 @@ public: PARTIALLY_ENCRYPTED, /** General error during JPEG2000 codestream verification * frame contains the frame index (counted from 0) - * note contains details + * error contains details * reel_index contains the reel index (starting from 0) */ INVALID_JPEG2000_CODESTREAM, diff --git a/src/verify_j2k.cc b/src/verify_j2k.cc index 52e4dbf7..7ba349a5 100644 --- a/src/verify_j2k.cc +++ b/src/verify_j2k.cc @@ -366,7 +366,7 @@ dcp::verify_j2k(shared_ptr j2k, int start_index, int frame_index, in } catch (InvalidCodestream const& e) { - VerificationNote note({VerificationNote::Code::INVALID_JPEG2000_CODESTREAM, string(e.what())}); + VerificationNote note(VerificationNote(VerificationNote::Code::INVALID_JPEG2000_CODESTREAM).set_error(e.what())); note.set_frame(start_index + frame_index); note.set_frame_rate(dcp::Fraction(frame_rate, 1)); notes.push_back(note); diff --git a/test/verify_test.cc b/test/verify_test.cc index cd28a109..2ba2dbb9 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -1120,10 +1120,8 @@ BOOST_AUTO_TEST_CASE (verify_invalid_picture_frame_size_in_bytes) for (auto i = 0; i < 24; ++i) { expected.push_back( - VN( - VC::INVALID_JPEG2000_CODESTREAM, - string("missing marker start byte") - ).set_frame(i).set_frame_rate(dcp::Fraction(24, 1)).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(picture_id) + VN(VC::INVALID_JPEG2000_CODESTREAM).set_frame(i).set_frame_rate(dcp::Fraction(24, 1)) + .set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(picture_id).set_error("missing marker start byte") ); } @@ -1177,10 +1175,8 @@ BOOST_AUTO_TEST_CASE (verify_nearly_invalid_picture_frame_size_in_bytes) for (auto i = 0; i < 24; ++i) { expected.push_back( - VN( - VC::INVALID_JPEG2000_CODESTREAM, - string("missing marker start byte") - ).set_frame(i).set_frame_rate(dcp::Fraction(24, 1)).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(picture_id) + VN(VC::INVALID_JPEG2000_CODESTREAM).set_frame(i).set_frame_rate(dcp::Fraction(24, 1)) + .set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(picture_id).set_error("missing marker start byte") ); } -- cgit v1.2.3 From fca073e6dfb0a11f49f40232cf2fae2da6209c54 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 30 Mar 2026 00:03:45 +0200 Subject: INVALID_JPEG2000_GUARD_BITS_FOR_{2,4}K: note -> guard_bits. --- src/verify.cc | 4 ++-- src/verify.h | 4 ++-- src/verify_j2k.cc | 4 ++-- test/verify_test.cc | 12 +++++++++--- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index abc447de..08407920 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -2125,9 +2125,9 @@ dcp::note_to_string(VerificationNote note, function process_str *note.error() ); case VerificationNote::Code::INVALID_JPEG2000_GUARD_BITS_FOR_2K: - return compose("The JPEG2000 codestream uses %1 guard bits in a 2K image instead of 1.", note.note().get()); + return compose("The JPEG2000 codestream uses %1 guard bits in a 2K image instead of 1.", *note.guard_bits()); case VerificationNote::Code::INVALID_JPEG2000_GUARD_BITS_FOR_4K: - return compose("The JPEG2000 codestream uses %1 guard bits in a 4K image instead of 2.", note.note().get()); + return compose("The JPEG2000 codestream uses %1 guard bits in a 4K image instead of 2.", *note.guard_bits()); case VerificationNote::Code::INVALID_JPEG2000_TILE_SIZE: return process_string("The JPEG2000 tile size is not the same as the image size."); case VerificationNote::Code::INVALID_JPEG2000_CODE_BLOCK_WIDTH: diff --git a/src/verify.h b/src/verify.h index 16151bd1..27316610 100644 --- a/src/verify.h +++ b/src/verify.h @@ -406,12 +406,12 @@ public: */ INVALID_JPEG2000_CODESTREAM, /** Invalid number of guard bits in a 2K JPEG2000 stream (should be 1) [Bv2.1_10.2.1] - * note contains the number of guard bits + * guard_bits contains the number of guard bits * reel_index contains the reel index (starting from 0) */ INVALID_JPEG2000_GUARD_BITS_FOR_2K, /** Invalid number of guard bits in a 4K JPEG2000 stream (should be 2) [Bv2.1_10.2.1] - * note contains the number of guard bits + * guard_bits contains the number of guard bits * reel_index contains the reel index (starting from 0) */ INVALID_JPEG2000_GUARD_BITS_FOR_4K, diff --git a/src/verify_j2k.cc b/src/verify_j2k.cc index 7ba349a5..06316025 100644 --- a/src/verify_j2k.cc +++ b/src/verify_j2k.cc @@ -270,10 +270,10 @@ dcp::verify_j2k(shared_ptr j2k, int start_index, int frame_index, in auto quantization_style = get_8(); int guard_bits = (quantization_style >> 5) & 7; if (fourk && guard_bits != 2) { - notes.push_back({ VerificationNote::Code::INVALID_JPEG2000_GUARD_BITS_FOR_4K, fmt::to_string(guard_bits) }); + notes.push_back(VerificationNote(VerificationNote::Code::INVALID_JPEG2000_GUARD_BITS_FOR_4K).set_guard_bits(guard_bits)); } if (!fourk && guard_bits != 1) { - notes.push_back({ VerificationNote::Code::INVALID_JPEG2000_GUARD_BITS_FOR_2K, fmt::to_string(guard_bits) }); + notes.push_back(VerificationNote(VerificationNote::Code::INVALID_JPEG2000_GUARD_BITS_FOR_2K).set_guard_bits(guard_bits)); } ptr += L_qcd - 3; } else if (*marker_name == "COC") { diff --git a/test/verify_test.cc b/test/verify_test.cc index 2ba2dbb9..0f954cd1 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -1026,7 +1026,9 @@ BOOST_AUTO_TEST_CASE (verify_invalid_standard) }; for (int j = 0; j < 24; ++j) { - expected.push_back(VN(VC::INVALID_JPEG2000_GUARD_BITS_FOR_2K, string("2")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id("c6035f97-b07d-4e1c-944d-603fc2ddc242")); + expected.push_back( + VN(VC::INVALID_JPEG2000_GUARD_BITS_FOR_2K).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id("c6035f97-b07d-4e1c-944d-603fc2ddc242").set_guard_bits(2) + ); } check_verify_result(notes, expected); @@ -1062,7 +1064,9 @@ BOOST_AUTO_TEST_CASE (verify_invalid_duration) }; for (int i = 0; i < 23; ++i) { - expected.push_back(VN(VC::INVALID_JPEG2000_GUARD_BITS_FOR_2K, string("2")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id("d7576dcb-a361-4139-96b8-267f5f8d7f91")); + expected.push_back( + VN(VC::INVALID_JPEG2000_GUARD_BITS_FOR_2K).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id("d7576dcb-a361-4139-96b8-267f5f8d7f91").set_guard_bits(2) + ); } check_verify_result({ dir }, {}, expected); @@ -5932,7 +5936,9 @@ BOOST_AUTO_TEST_CASE(verify_invalid_sound_bit_depth) }; for (auto i = 0; i < 792; ++i) { - notes.push_back(VN(VC::INVALID_JPEG2000_GUARD_BITS_FOR_2K, string("2")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id("fd4796c2-9c84-454c-91f4-13ad127cea8a")); + notes.push_back( + VN(VC::INVALID_JPEG2000_GUARD_BITS_FOR_2K).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id("fd4796c2-9c84-454c-91f4-13ad127cea8a").set_guard_bits(2) + ); } check_verify_result({ dir }, {}, notes); -- cgit v1.2.3 From 8ab777193f5a3d4d201affa8665aa03f94e0bcd8 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 30 Mar 2026 00:11:22 +0200 Subject: INVALID_JPEG2000_CODE_BLOCK_{WIDTH_HEIGHT}: note -> code_block_{width,height}. --- src/verify.cc | 4 ++-- src/verify.h | 4 ++-- src/verify_j2k.cc | 8 ++++++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 08407920..cf4d91f8 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -2131,9 +2131,9 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::INVALID_JPEG2000_TILE_SIZE: return process_string("The JPEG2000 tile size is not the same as the image size."); case VerificationNote::Code::INVALID_JPEG2000_CODE_BLOCK_WIDTH: - return compose("The JPEG2000 codestream uses a code block width of %1 instead of 32.", note.note().get()); + return compose("The JPEG2000 codestream uses a code block width of %1 instead of 32.", *note.code_block_width()); case VerificationNote::Code::INVALID_JPEG2000_CODE_BLOCK_HEIGHT: - return compose("The JPEG2000 codestream uses a code block height of %1 instead of 32.", note.note().get()); + return compose("The JPEG2000 codestream uses a code block height of %1 instead of 32.", *note.code_block_height()); case VerificationNote::Code::INCORRECT_JPEG2000_POC_MARKER_COUNT_FOR_2K: return compose("%1 POC markers found in 2K JPEG2000 codestream instead of 0.", note.note().get()); case VerificationNote::Code::INCORRECT_JPEG2000_POC_MARKER_COUNT_FOR_4K: diff --git a/src/verify.h b/src/verify.h index 27316610..aa0780c9 100644 --- a/src/verify.h +++ b/src/verify.h @@ -418,11 +418,11 @@ public: /** JPEG2000 tile size is not the same as the image size [Bv2.1_10.2.1] */ INVALID_JPEG2000_TILE_SIZE, /** JPEG2000 code block width is not 32 [Bv2.1_10.2.1] - * note contains the code block width + * code_block_width contains the code block width */ INVALID_JPEG2000_CODE_BLOCK_WIDTH, /** JPEG2000 code block height is not 32 [Bv2.1_10.2.1] - * note contains the code block height + * code_block_height contains the code block height */ INVALID_JPEG2000_CODE_BLOCK_HEIGHT, /** There must be no POC markers in a 2K codestream [Bv2.1_10.2.1] diff --git a/src/verify_j2k.cc b/src/verify_j2k.cc index 06316025..4458cfa3 100644 --- a/src/verify_j2k.cc +++ b/src/verify_j2k.cc @@ -247,11 +247,15 @@ dcp::verify_j2k(shared_ptr j2k, int start_index, int frame_index, in require_8(fourk ? 6 : 5, "invalid number of transform levels %1"); auto log_code_block_width = get_8(); if (log_code_block_width != 3) { - notes.push_back({ VerificationNote::Code::INVALID_JPEG2000_CODE_BLOCK_WIDTH, fmt::to_string(4 * (2 << log_code_block_width)) }); + notes.push_back( + VerificationNote(VerificationNote::Code::INVALID_JPEG2000_CODE_BLOCK_WIDTH).set_code_block_width(4 * (2 << log_code_block_width)) + ); } auto log_code_block_height = get_8(); if (log_code_block_height != 3) { - notes.push_back({ VerificationNote::Code::INVALID_JPEG2000_CODE_BLOCK_HEIGHT, fmt::to_string(4 * (2 << log_code_block_height)) }); + notes.push_back( + VerificationNote(VerificationNote::Code::INVALID_JPEG2000_CODE_BLOCK_HEIGHT).set_code_block_height(4 * (2 << log_code_block_height)) + ); } require_8(0, "invalid mode variations"); require_8(0, "invalid wavelet transform type %1"); // 9/7 irreversible -- cgit v1.2.3 From 34eab24abebc4f2b6281c5dba112fe9c872878c4 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 30 Mar 2026 13:03:04 +0200 Subject: INCORRECT_JPEG2000_POC_MARKER_COUNT_FOR_{2,4}K: note -> poc_markers. --- src/verify.cc | 4 ++-- src/verify.h | 4 ++-- src/verify_j2k.cc | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index cf4d91f8..5cb2467b 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -2135,9 +2135,9 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::INVALID_JPEG2000_CODE_BLOCK_HEIGHT: return compose("The JPEG2000 codestream uses a code block height of %1 instead of 32.", *note.code_block_height()); case VerificationNote::Code::INCORRECT_JPEG2000_POC_MARKER_COUNT_FOR_2K: - return compose("%1 POC markers found in 2K JPEG2000 codestream instead of 0.", note.note().get()); + return compose("%1 POC markers found in 2K JPEG2000 codestream instead of 0.", *note.poc_markers()); case VerificationNote::Code::INCORRECT_JPEG2000_POC_MARKER_COUNT_FOR_4K: - return compose("%1 POC markers found in 4K JPEG2000 codestream instead of 1.", note.note().get()); + return compose("%1 POC markers found in 4K JPEG2000 codestream instead of 1.", *note.poc_markers()); case VerificationNote::Code::INCORRECT_JPEG2000_POC_MARKER: return compose("Incorrect POC marker content found (%1).", note.note().get()); case VerificationNote::Code::INVALID_JPEG2000_POC_MARKER_LOCATION: diff --git a/src/verify.h b/src/verify.h index aa0780c9..6ee46635 100644 --- a/src/verify.h +++ b/src/verify.h @@ -426,11 +426,11 @@ public: */ INVALID_JPEG2000_CODE_BLOCK_HEIGHT, /** There must be no POC markers in a 2K codestream [Bv2.1_10.2.1] - * note contains the number of POC markers found + * poc_markers contains the number of POC markers found */ INCORRECT_JPEG2000_POC_MARKER_COUNT_FOR_2K, /** There must be exactly one POC marker in a 4K codestream [Bv2.1_10.2.1] - * note contains the number of POC markers found + * poc_markers contains the number of POC markers found */ INCORRECT_JPEG2000_POC_MARKER_COUNT_FOR_4K, /** A POC marker has incorrect content [Bv2.1_10.2.1] diff --git a/src/verify_j2k.cc b/src/verify_j2k.cc index 4458cfa3..f070e78b 100644 --- a/src/verify_j2k.cc +++ b/src/verify_j2k.cc @@ -356,10 +356,10 @@ dcp::verify_j2k(shared_ptr j2k, int start_index, int frame_index, in throw InvalidCodestream("more than one QCD marker found"); } if (num_POC_in_main != 0 && !fourk) { - notes.push_back({ VerificationNote::Code::INCORRECT_JPEG2000_POC_MARKER_COUNT_FOR_2K, fmt::to_string(num_POC_in_main) }); + notes.push_back(VerificationNote(VerificationNote::Code::INCORRECT_JPEG2000_POC_MARKER_COUNT_FOR_2K).set_poc_markers(num_POC_in_main)); } if (num_POC_in_main != 1 && fourk) { - notes.push_back({ VerificationNote::Code::INCORRECT_JPEG2000_POC_MARKER_COUNT_FOR_4K, fmt::to_string(num_POC_in_main) }); + notes.push_back(VerificationNote(VerificationNote::Code::INCORRECT_JPEG2000_POC_MARKER_COUNT_FOR_4K).set_poc_markers(num_POC_in_main)); } if (num_POC_after_main != 0) { notes.push_back ({ VerificationNote::Code::INVALID_JPEG2000_POC_MARKER_LOCATION }); -- cgit v1.2.3 From b4d9b7fedc37002a97ada284fd3a241a357bd8e2 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 30 Mar 2026 13:17:10 +0200 Subject: INCORRECT_JPEG2000_POC_MARKER: note -> error, poc_marker. --- src/verify.cc | 2 +- src/verify.h | 3 ++- src/verify_j2k.cc | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 5cb2467b..deb55362 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -2139,7 +2139,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::INCORRECT_JPEG2000_POC_MARKER_COUNT_FOR_4K: return compose("%1 POC markers found in 4K JPEG2000 codestream instead of 1.", *note.poc_markers()); case VerificationNote::Code::INCORRECT_JPEG2000_POC_MARKER: - return compose("Incorrect POC marker content found (%1).", note.note().get()); + return compose("Incorrect POC marker content found (%1).", *note.error()); case VerificationNote::Code::INVALID_JPEG2000_POC_MARKER_LOCATION: return process_string("POC marker found outside main header."); case VerificationNote::Code::INVALID_JPEG2000_TILE_PARTS_FOR_2K: diff --git a/src/verify.h b/src/verify.h index 6ee46635..9783b31b 100644 --- a/src/verify.h +++ b/src/verify.h @@ -434,7 +434,8 @@ public: */ INCORRECT_JPEG2000_POC_MARKER_COUNT_FOR_4K, /** A POC marker has incorrect content [Bv2.1_10.2.1] - * note contains details + * poc_marker contains the invalid marker + * error contains detalis */ INCORRECT_JPEG2000_POC_MARKER, /** A POC marker was found outside the main head [Bv2.1_10.2.1] */ diff --git a/src/verify_j2k.cc b/src/verify_j2k.cc index f070e78b..a2b14854 100644 --- a/src/verify_j2k.cc +++ b/src/verify_j2k.cc @@ -317,13 +317,13 @@ dcp::verify_j2k(shared_ptr j2k, int start_index, int frame_index, in auto require_8_poc = [&](uint16_t value, string note) { if (get_8() != value) { - notes.push_back ({ VerificationNote::Code::INCORRECT_JPEG2000_POC_MARKER, String::compose(note, value) }); + notes.push_back(VerificationNote(VerificationNote::Code::INCORRECT_JPEG2000_POC_MARKER).set_poc_marker(value).set_error(note)); } }; auto require_16_poc = [&](uint16_t value, string note) { if (get_16() != value) { - notes.push_back ({ VerificationNote::Code::INCORRECT_JPEG2000_POC_MARKER, String::compose(note, value) }); + notes.push_back (VerificationNote(VerificationNote::Code::INCORRECT_JPEG2000_POC_MARKER).set_poc_marker(value).set_error(note)); } }; -- cgit v1.2.3 From 5b3346c8243af6e42b535b34f24c0a6db616493c Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 30 Mar 2026 18:02:17 +0200 Subject: INVALID_JPEG2000_RSIZ_FOR_{2,4}K: note to capabilities. --- src/verify.cc | 6 +++--- src/verify.h | 8 ++++++-- src/verify_j2k.cc | 4 ++-- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index deb55362..88bebbc6 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -2143,12 +2143,12 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::INVALID_JPEG2000_POC_MARKER_LOCATION: return process_string("POC marker found outside main header."); case VerificationNote::Code::INVALID_JPEG2000_TILE_PARTS_FOR_2K: - return compose("The JPEG2000 codestream has %1 tile parts in a 2K image instead of 3.", note.note().get()); + return compose("The JPEG2000 codestream has %1 tile parts in a 2K image instead of 3.", *note.tile_parts()); case VerificationNote::Code::INVALID_JPEG2000_TILE_PARTS_FOR_4K: - return compose("The JPEG2000 codestream has %1 tile parts in a 4K image instead of 6.", note.note().get()); + return compose("The JPEG2000 codestream has %1 tile parts in a 4K image instead of 6.", *note.tile_parts()); case VerificationNote::Code::INVALID_JPEG2000_RSIZ_FOR_2K: case VerificationNote::Code::INVALID_JPEG2000_RSIZ_FOR_4K: - return compose("The JPEG2000 codestream has an invalid Rsiz (capabilities) value of %1.", note.note().get()); + return compose("The JPEG2000 codestream has an invalid Rsiz (capabilities) value of %1.", *note.capabilities()); case VerificationNote::Code::MISSING_JPEG2000_TLM_MARKER: return process_string("No TLM marker was found in a JPEG2000 codestream."); case VerificationNote::Code::MISMATCHED_TIMED_TEXT_RESOURCE_ID: diff --git a/src/verify.h b/src/verify.h index 9783b31b..0b16c8ae 100644 --- a/src/verify.h +++ b/src/verify.h @@ -448,9 +448,13 @@ public: * note contains the number of tile parts */ INVALID_JPEG2000_TILE_PARTS_FOR_4K, - /** Invalid _Rsiz_ (capabilities) value in 2K JPEG2000 stream */ + /** Invalid _Rsiz_ (capabilities) value in 2K JPEG2000 stream. + * The invalid value is in capabilities. + */ INVALID_JPEG2000_RSIZ_FOR_2K, - /** Invalid _Rsiz_ (capabilities) value in 4K JPEG2000 stream */ + /** Invalid _Rsiz_ (capabilities) value in 4K JPEG2000 stream + * The invalid value is in capabilities. + */ INVALID_JPEG2000_RSIZ_FOR_4K, /** No TLM marker was found [Bv2.1_10.2.1] */ MISSING_JPEG2000_TLM_MARKER, diff --git a/src/verify_j2k.cc b/src/verify_j2k.cc index a2b14854..b2bc876f 100644 --- a/src/verify_j2k.cc +++ b/src/verify_j2k.cc @@ -172,9 +172,9 @@ dcp::verify_j2k(shared_ptr j2k, int start_index, int frame_index, in auto const image_height = get_32(); auto const fourk = image_width > 2048; if (!fourk && rsiz != OPJ_PROFILE_CINEMA_2K) { - notes.push_back({ VerificationNote::Code::INVALID_JPEG2000_RSIZ_FOR_2K, fmt::to_string(rsiz) }); + notes.push_back(VerificationNote(VerificationNote::Code::INVALID_JPEG2000_RSIZ_FOR_2K).set_capabilities(rsiz)); } else if (fourk && rsiz != OPJ_PROFILE_CINEMA_4K) { - notes.push_back({ VerificationNote::Code::INVALID_JPEG2000_RSIZ_FOR_4K, fmt::to_string(rsiz) }); + notes.push_back(VerificationNote(VerificationNote::Code::INVALID_JPEG2000_RSIZ_FOR_4K).set_capabilities(rsiz)); } require_32 (0, "invalid top-left image x coordinate %1"); require_32 (0, "invalid top-left image y coordinate %1"); -- cgit v1.2.3 From 7a1a6bb6cd9457a870b690ae8fb3a7912a97b118 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 30 Mar 2026 21:34:50 +0200 Subject: MISMATCHED_TIMED_TEXT_DURATION: note -> duration, other_duration. --- src/verify.cc | 13 ++++--------- src/verify.h | 3 ++- test/verify_test.cc | 12 +++++++++--- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 88bebbc6..3055a33b 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -735,9 +735,9 @@ verify_smpte_timed_text_asset ( if (reel_asset_duration && *reel_asset_duration != asset->intrinsic_duration()) { context.add_note( - VerificationNote::Code::MISMATCHED_TIMED_TEXT_DURATION, - String::compose("%1 %2", *reel_asset_duration, asset->intrinsic_duration()), - asset->file().get() + VerificationNote( + VerificationNote::Code::MISMATCHED_TIMED_TEXT_DURATION, *asset->file() + ).set_duration(asset->intrinsic_duration()).set_other_duration(*reel_asset_duration) ); } } @@ -2156,12 +2156,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::INCORRECT_TIMED_TEXT_ASSET_ID: return process_string("The Asset ID in a timed text MXF is the same as the Resource ID or that of the contained XML."); case VerificationNote::Code::MISMATCHED_TIMED_TEXT_DURATION: - { - vector parts; - boost::split (parts, note.note().get(), boost::is_any_of(" ")); - DCP_ASSERT (parts.size() == 2); - return compose("The reel duration of some timed text (%1) is not the same as the ContainerDuration of its MXF (%2).", parts[0], parts[1]); - } + return compose("The reel duration of some timed text (%1) is not the same as the ContainerDuration of its MXF (%2).", *note.other_duration(), *note.duration()); case VerificationNote::Code::MISSED_CHECK_OF_ENCRYPTED: return process_string("Some aspect of this DCP could not be checked because it is encrypted."); case VerificationNote::Code::EMPTY_TEXT: diff --git a/src/verify.h b/src/verify.h index 0b16c8ae..21ef1857 100644 --- a/src/verify.h +++ b/src/verify.h @@ -467,7 +467,8 @@ public: */ INCORRECT_TIMED_TEXT_ASSET_ID, /** The ContainerDuration of a timed text MXF is not the same as the _Duration_ in its reel [Bv2.1_10.4.3] - * note contains the reel duration, followed by a space, followed by the MXF duration + * duration contains the MXF duration + * other_duration contains the reel duration * file contains the asset filename * reel_index contains the reel index (starting from 0) */ diff --git a/test/verify_test.cc b/test/verify_test.cc index 0f954cd1..e334d412 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -2889,7 +2889,9 @@ BOOST_AUTO_TEST_CASE (verify_subtitle_overlapping_reel_boundary) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - VN(VC::MISMATCHED_TIMED_TEXT_DURATION , "72 96", boost::filesystem::canonical(asset->file().get())).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), + VN( + VC::MISMATCHED_TIMED_TEXT_DURATION, boost::filesystem::canonical(asset->file().get()) + ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_duration(96).set_other_duration(72), VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), VN(VC::SUBTITLE_OVERLAPS_REEL_BOUNDARY).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) @@ -4925,7 +4927,9 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_subtitle_resource_id) note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_CPL_HASHES, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), - VN(VC::MISMATCHED_TIMED_TEXT_DURATION , "240 0", boost::filesystem::canonical(subs_mxf)).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_asset->id()), + VN( + VC::MISMATCHED_TIMED_TEXT_DURATION, boost::filesystem::canonical(subs_mxf) + ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_asset->id()).set_duration(0).set_other_duration(240), VN(VC::MISMATCHED_TIMED_TEXT_RESOURCE_ID).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_asset->id()), VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_asset->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) @@ -5000,7 +5004,9 @@ BOOST_AUTO_TEST_CASE (verify_incorrect_timed_text_id) note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_CPL_HASHES, cpl), note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), - VN(VC::MISMATCHED_TIMED_TEXT_DURATION , "240 0", boost::filesystem::canonical(subs_mxf)).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_asset->id()), + VN( + VC::MISMATCHED_TIMED_TEXT_DURATION, boost::filesystem::canonical(subs_mxf) + ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_asset->id()).set_duration(0).set_other_duration(240), VN(VC::INCORRECT_TIMED_TEXT_ASSET_ID).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_asset->id()), VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_asset->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()), -- cgit v1.2.3 From 613c7287fb3d24b34e16ff9820eabd67270bd825 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 30 Mar 2026 22:14:33 +0200 Subject: {IN,}VALID_CONTENT_KIND: note -> content_kind. --- src/verify.cc | 8 +- src/verify.h | 8 +- test/verify_test.cc | 237 ++++++++++++++++++++++++++-------------------------- 3 files changed, 128 insertions(+), 125 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 3055a33b..40a7d44f 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -1553,9 +1553,9 @@ verify_cpl(Context& context, shared_ptr cpl) transform(name.begin(), name.end(), name.begin(), ::tolower); auto iter = std::find_if(all.begin(), all.end(), [name](ContentKind const& k) { return !k.scope() && k.name() == name; }); if (iter == all.end()) { - context.add_note(VerificationNote::Code::INVALID_CONTENT_KIND, cpl->content_kind().name()); + context.add_note(VerificationNote(VerificationNote::Code::INVALID_CONTENT_KIND).set_content_kind(cpl->content_kind().name())); } else { - context.add_note(VerificationNote::Code::VALID_CONTENT_KIND, cpl->content_kind().name()); + context.add_note(VerificationNote(VerificationNote::Code::VALID_CONTENT_KIND).set_content_kind(cpl->content_kind().name())); } } @@ -2170,9 +2170,9 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::UNEXPECTED_DURATION: return process_string("There is an node inside a ."); case VerificationNote::Code::INVALID_CONTENT_KIND: - return compose(" has an invalid value %1.", note.note().get()); + return compose(" has an invalid value %1.", *note.content_kind()); case VerificationNote::Code::VALID_CONTENT_KIND: - return compose("Valid %1.", note.note().get()); + return compose("Valid %1.", *note.content_kind()); case VerificationNote::Code::INVALID_MAIN_PICTURE_ACTIVE_AREA: return compose(" has an invalid value: %1", note.note().get()); case VerificationNote::Code::VALID_MAIN_PICTURE_ACTIVE_AREA: diff --git a/src/verify.h b/src/verify.h index 21ef1857..b2e8000f 100644 --- a/src/verify.h +++ b/src/verify.h @@ -491,9 +491,13 @@ public: * reel_index contains the reel index (starting from 0) */ UNEXPECTED_DURATION, - /** A __ has been specified with either no scope or the SMPTE 429-7 scope, but which is not one of those allowed */ + /** A __ has an invalid value + * content_kind contains the invalid content kind + */ INVALID_CONTENT_KIND, - /** A valid __ was seen */ + /** A valid __ was seen + * content_kind contains the valid content kind + */ VALID_CONTENT_KIND, /** Either the width or height of a __ in a CPL is either not an even number, or bigger than the corresponding asset dimension * note contains details of what is wrong diff --git a/test/verify_test.cc b/test/verify_test.cc index e334d412..09884b4b 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -535,7 +535,7 @@ BOOST_AUTO_TEST_CASE (verify_incorrect_picture_sound_hash) string{"1998x1080"}, canonical(cpl->file().get()) ).set_cpl_id(dcp_test1_cpl_id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id("5407b210-4441-4e97-8b16-8bdc7c12da54"), @@ -579,7 +579,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_picture_sound_hashes) string{"1998x1080"}, canonical(cpl->file().get()) ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id("5407b210-4441-4e97-8b16-8bdc7c12da54"), @@ -629,7 +629,7 @@ BOOST_AUTO_TEST_CASE (verify_failed_read_content_kind) VN( VC::MISMATCHED_CPL_HASHES, canonical(dir / dcp_test1_cpl()) ).set_cpl_id(dcp_test1_cpl_id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()), - VN(VC::INVALID_CONTENT_KIND, string("xtrailer")).set_cpl_id(dcp_test1_cpl_id()) + VN(VC::INVALID_CONTENT_KIND).set_cpl_id(dcp_test1_cpl_id()).set_content_kind("xtrailer"), }); } @@ -681,7 +681,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_picture_frame_rate) canonical(cpl->file().get()) ).set_cpl_id(cpl->id()), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id("5407b210-4441-4e97-8b16-8bdc7c12da54"), @@ -717,7 +717,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_asset) string{"1998x1080"}, canonical(cpl->file().get()) ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), { VC::MISSING_ASSET, canonical(dir) / "video.mxf" } @@ -747,7 +747,7 @@ BOOST_AUTO_TEST_CASE (verify_empty_asset_path) canonical(cpl->file().get()) ).set_cpl_id(cpl->id()), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), { VC::EMPTY_ASSET_PATH } @@ -780,7 +780,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_standard) canonical(cpl->file().get()) ).set_cpl_id(cpl->id()), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), { VC::MISMATCHED_STANDARD }, @@ -827,7 +827,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_id) canonical(cpl->file().get()) ).set_cpl_id(cpl->id()), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_CPL_HASHES, cpl), @@ -867,7 +867,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_issue_date) canonical(cpl->file().get()) ).set_cpl_id(cpl->id()), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), VN( @@ -907,7 +907,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_pkl_id) canonical(cpl->file().get()) ).set_cpl_id(cpl->id()), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_CPL_HASHES, cpl), @@ -948,7 +948,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_asset_map_id) canonical(cpl->file().get()) ).set_cpl_id(cpl->id()), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_CPL_HASHES, cpl), @@ -1017,7 +1017,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_standard) vector expected = { note(VC::NONE_ENCRYPTED, cpl), { VC::INVALID_STANDARD }, - note(VC::VALID_CONTENT_KIND, string{"feature"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("feature"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), @@ -1052,7 +1052,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_duration) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"feature"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("feature"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "j2c_d7576dcb-a361-4139-96b8-267f5f8d7f91.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "j2c_d7576dcb-a361-4139-96b8-267f5f8d7f91.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), { VC::INVALID_STANDARD }, @@ -1116,7 +1116,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_picture_frame_size_in_bytes) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "pic.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -1172,7 +1172,7 @@ BOOST_AUTO_TEST_CASE (verify_nearly_invalid_picture_frame_size_in_bytes) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), }; @@ -1222,7 +1222,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_picture_frame_size_in_bytes) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "pic.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -1250,7 +1250,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_interop_subtitles) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), { VC::INVALID_STANDARD }, VN(VC::MISSING_FONT, string{"theFontId"}).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), @@ -1277,7 +1277,7 @@ BOOST_AUTO_TEST_CASE(verify_catch_missing_font_file_with_interop_ccap) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), { VC::INVALID_STANDARD }, VN(VC::MISSING_FONT, string{"theFontId"}).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), @@ -1311,7 +1311,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_interop_subtitles) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), { VC::INVALID_STANDARD }, VN(VC::INVALID_XML, path(), 5).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_error("no declaration found for element 'Foo'"), @@ -1342,7 +1342,7 @@ BOOST_AUTO_TEST_CASE(verify_interop_subtitle_asset_with_no_subtitles) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), { VC::INVALID_STANDARD }, VN(VC::MISSING_SUBTITLE, asset->id(), boost::filesystem::canonical(asset->file().get())).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), @@ -1372,7 +1372,7 @@ BOOST_AUTO_TEST_CASE(verify_interop_subtitle_asset_with_single_space_subtitle) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), { VC::INVALID_STANDARD }, VN(VC::MISSING_FONT, string{"Arial"}).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_id), @@ -1399,7 +1399,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_smpte_subtitles) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()), @@ -1431,7 +1431,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_smpte_subtitles) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::INVALID_XML, path(), 2).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_error("no declaration found for element 'Foo'"), @@ -1466,7 +1466,7 @@ BOOST_AUTO_TEST_CASE (verify_empty_text_node_in_subtitles) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::EMPTY_TEXT).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), @@ -1499,7 +1499,7 @@ BOOST_AUTO_TEST_CASE (verify_empty_text_node_in_subtitles_with_child_nodes) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), { VC::INVALID_STANDARD }, VN(VC::MISSING_FONT, string{"font0"}).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), @@ -1528,7 +1528,7 @@ BOOST_AUTO_TEST_CASE (verify_empty_text_node_in_subtitles_with_empty_child_nodes note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::MISSING_SUBTITLE, asset->id(), boost::filesystem::canonical(asset->file().get())).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_id), { VC::INVALID_STANDARD }, @@ -1567,7 +1567,7 @@ BOOST_AUTO_TEST_CASE (verify_external_asset) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::EXTERNAL_ASSET).set_asset_id(picture->asset()->id()), @@ -1654,7 +1654,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_cpl_metadata_bad_tag) string{"1440x1080"}, cpl->file().get() ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "pic.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -1730,7 +1730,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_language1) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::INVALID_LANGUAGE).set_cpl_id(cpl->id()).set_reel_index(0).set_language("badlang"), @@ -1763,7 +1763,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_language2) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::INVALID_LANGUAGE).set_cpl_id(cpl->id()).set_reel_index(0).set_language("badlang"), @@ -1821,7 +1821,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_language3) string{"1440x1080"}, cpl->file().get() ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "videofoo.mxf"), cpl).set_reel_index(0).set_asset_id(picture->id()), @@ -1905,7 +1905,7 @@ check_picture_size_ok (int width, int height, int frame_rate, bool three_d) std::vector expected = { note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), @@ -1937,7 +1937,7 @@ check_picture_size_bad_frame_size (int width, int height, int frame_rate, bool t std::vector expected = { note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), @@ -1972,7 +1972,7 @@ check_picture_size_bad_2k_frame_rate (int width, int height, int frame_rate, boo std::vector expected = { note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), @@ -2007,7 +2007,7 @@ check_picture_size_bad_4k_frame_rate (int width, int height, int frame_rate, boo std::vector expected = { note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), @@ -2132,7 +2132,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_closed_caption_xml_size_in_bytes) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::MISSING_SUBTITLE_START_TIME, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), @@ -2183,7 +2183,7 @@ verify_timed_text_asset_too_large (string name) note(dcp::VerificationNote::Code::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN( @@ -2263,7 +2263,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_subtitle_language) string{"1998x1080"}, cpl->file().get() ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -2328,7 +2328,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_subtitle_languages) string{"1998x1080"}, cpl->file().get() ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video0.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), @@ -2392,7 +2392,7 @@ BOOST_AUTO_TEST_CASE (verify_multiple_closed_caption_languages_allowed) string{"1998x1080"}, cpl->file().get() ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::CORRECT_PICTURE_HASH, canonical(path / "video0.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), @@ -2461,7 +2461,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_subtitle_start_time) string{"1998x1080"}, cpl->file().get() ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -2523,7 +2523,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_start_time) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN( @@ -2636,7 +2636,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_first_text_time) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_id), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) @@ -2661,7 +2661,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_subtitle_first_text_time) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -2720,7 +2720,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_subtitle_first_text_time_on_second_reel) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -2751,7 +2751,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_spacing) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::INVALID_SUBTITLE_SPACING).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_id), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) @@ -2781,7 +2781,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_subtitle_spacing) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -2806,7 +2806,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_subtitle_duration) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::INVALID_SUBTITLE_DURATION).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_id), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) @@ -2832,7 +2832,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_subtitle_duration_bv21) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::INVALID_SUBTITLE_DURATION_BV21).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_id), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) @@ -2856,7 +2856,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_subtitle_duration) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -2887,7 +2887,7 @@ BOOST_AUTO_TEST_CASE (verify_subtitle_overlapping_reel_boundary) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN( VC::MISMATCHED_TIMED_TEXT_DURATION, boost::filesystem::canonical(asset->file().get()) @@ -2923,7 +2923,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_line_count1) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::INVALID_SUBTITLE_LINE_COUNT).set_cpl_id(cpl->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) @@ -2954,7 +2954,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_subtitle_line_count1) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -2985,7 +2985,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_line_count2) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::INVALID_SUBTITLE_LINE_COUNT).set_cpl_id(cpl->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) @@ -3017,7 +3017,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_subtitle_line_count2) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -3045,7 +3045,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_line_length1) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::NEARLY_INVALID_SUBTITLE_LINE_LENGTH).set_cpl_id(cpl->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) @@ -3074,7 +3074,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_line_length2) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::INVALID_SUBTITLE_LINE_LENGTH).set_cpl_id(cpl->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) @@ -3106,7 +3106,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_closed_caption_line_count1) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::INVALID_CLOSED_CAPTION_LINE_COUNT).set_cpl_id(cpl->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) @@ -3137,7 +3137,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_closed_caption_line_count2) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -3168,7 +3168,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_closed_caption_line_count3) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::INVALID_CLOSED_CAPTION_LINE_COUNT).set_cpl_id(cpl->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) @@ -3200,7 +3200,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_closed_caption_line_count4) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -3228,7 +3228,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_closed_caption_line_length) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -3256,7 +3256,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_closed_caption_line_length) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::INVALID_CLOSED_CAPTION_LINE_LENGTH).set_cpl_id(cpl->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) @@ -3287,7 +3287,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_closed_caption_valign1) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -3317,7 +3317,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_closed_caption_valign2) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::MISMATCHED_CLOSED_CAPTION_VALIGN).set_cpl_id(cpl->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) @@ -3348,7 +3348,7 @@ BOOST_AUTO_TEST_CASE (verify_incorrect_closed_caption_ordering1) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -3378,7 +3378,7 @@ BOOST_AUTO_TEST_CASE (verify_incorrect_closed_caption_ordering2) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -3400,7 +3400,7 @@ BOOST_AUTO_TEST_CASE (verify_incorrect_closed_caption_ordering3) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::INCORRECT_CLOSED_CAPTION_ORDERING).set_cpl_id(cpl->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) @@ -3424,7 +3424,7 @@ BOOST_AUTO_TEST_CASE (verify_incorrect_closed_caption_ordering4) note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -3463,7 +3463,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_sound_frame_rate) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "videofoo.mxf"), cpl).set_reel_index(0).set_asset_id(picture->id()), note(VC::MATCHING_CPL_HASHES, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "videofoo.mxf"), cpl).set_reel_index(0).set_asset_id(picture->id()).set_asset_id(picture->id()), @@ -3507,7 +3507,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_cpl_annotation_text) cpl->file().get() ).set_cpl_id(cpl->id()), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::MISSING_CPL_ANNOTATION_TEXT, canonical(cpl->file().get())).set_cpl_id(cpl->id()), @@ -3545,7 +3545,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_cpl_annotation_text) { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN( @@ -3594,7 +3594,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_asset_duration) note(VC::NONE_ENCRYPTED, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(mp->id()), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_CPL_HASHES, cpl), @@ -3681,7 +3681,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_main_subtitle_from_some_reels) note(VC::NONE_ENCRYPTED, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), @@ -3708,7 +3708,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_main_subtitle_from_some_reels) note(VC::NONE_ENCRYPTED, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), @@ -3733,7 +3733,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_main_subtitle_from_some_reels) note(VC::NONE_ENCRYPTED, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), @@ -3820,7 +3820,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_closed_caption_asset_counts) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::MATCHING_CPL_HASHES, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video2.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), @@ -3846,7 +3846,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_closed_caption_asset_counts) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -3871,7 +3871,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_closed_caption_asset_counts) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -3933,7 +3933,7 @@ verify_text_entry_point_check(dcp::TextType type, path dir, dcp::VerificationNot note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(code).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -4020,7 +4020,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_hash) cpl->file().get() ).set_cpl_id(cpl->id()), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -4070,7 +4070,7 @@ verify_markers_test ( cpl->file().get() ).set_cpl_id(cpl->id()) ); - test_notes.push_back(note(VC::VALID_CONTENT_KIND, string{"feature"}, cpl)); + test_notes.push_back(note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("feature")); test_notes.push_back(note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl)); test_notes.push_back(VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP")); test_notes.push_back(note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id)); @@ -4191,7 +4191,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_cpl_metadata_version_number) string{"1998x1080"}, cpl->file().get() ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -4235,7 +4235,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_extension_metadata1) string{"1998x1080"}, cpl->file().get() ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN( VC::MISMATCHED_CPL_HASHES, cpl->file().get() ).set_cpl_id(cpl->id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()), @@ -4278,7 +4278,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_extension_metadata2) string{"1998x1080"}, cpl->file().get() ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN( VC::MISMATCHED_CPL_HASHES, cpl->file().get() ).set_cpl_id(cpl->id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()), @@ -4322,7 +4322,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata3) string{"1998x1080"}, cpl->file().get() ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::INVALID_XML, cpl->file().get(), 70).set_cpl_id(cpl->id()).set_error("no declaration found for element 'meta:NameX'"), VN(VC::INVALID_XML, cpl->file().get(), 77).set_cpl_id(cpl->id()).set_error("element 'meta:NameX' is not allowed for content model '(Name,PropertyList?,)'"), VN( @@ -4367,7 +4367,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_extension_metadata1) string{"1998x1080"}, cpl->file().get() ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN( VC::MISMATCHED_CPL_HASHES, cpl->file().get() ).set_cpl_id(cpl->id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()), @@ -4411,7 +4411,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_extension_metadata2) string{"1998x1080"}, cpl->file().get() ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN( VC::MISMATCHED_CPL_HASHES, cpl->file().get() ).set_cpl_id(cpl->id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()), @@ -4456,7 +4456,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata6) string{"1998x1080"}, cpl->file().get() ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::INVALID_XML, cpl->file().get(), 74).set_cpl_id(cpl->id()).set_error("no declaration found for element 'meta:ValueX'"), VN(VC::INVALID_XML, cpl->file().get(), 75).set_cpl_id(cpl->id()).set_error("element 'meta:ValueX' is not allowed for content model '(Name,Value)'"), VN( @@ -4502,7 +4502,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata7) string{"1998x1080"}, cpl->file().get() ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN( VC::MISMATCHED_CPL_HASHES, cpl->file().get() ).set_cpl_id(cpl->id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()), @@ -4543,7 +4543,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata8) note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, string{"1998x1080"}, cpl->file().get()).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::INVALID_XML, cpl->file().get(), 72).set_cpl_id(cpl->id()).set_error("no declaration found for element 'meta:PropertyX'"), VN(VC::INVALID_XML, cpl->file().get(), 76).set_cpl_id(cpl->id()).set_error("element 'meta:PropertyX' is not allowed for content model '(Property+)'"), VN( @@ -4590,7 +4590,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata9) string{"1998x1080"}, cpl->file().get() ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::INVALID_XML, cpl->file().get(), 71).set_cpl_id(cpl->id()).set_error("no declaration found for element 'meta:PropertyListX'"), VN(VC::INVALID_XML, cpl->file().get(), 77).set_cpl_id(cpl->id()).set_error( "element 'meta:PropertyListX' is not allowed for content model '(Name,PropertyList?,)'" @@ -4636,7 +4636,7 @@ BOOST_AUTO_TEST_CASE (verify_unsigned_cpl_with_encrypted_content) note(VC::ALL_ENCRYPTED, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), - note(VC::VALID_CONTENT_KIND, string{"feature"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("feature"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN( @@ -4683,7 +4683,7 @@ BOOST_AUTO_TEST_CASE (verify_unsigned_pkl_with_encrypted_content) note(VC::ALL_ENCRYPTED, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), - note(VC::VALID_CONTENT_KIND, string{"feature"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("feature"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::MATCHING_CPL_HASHES, cpl), @@ -4732,7 +4732,7 @@ BOOST_AUTO_TEST_CASE (verify_unsigned_pkl_with_unencrypted_content) string{"1998x1080"}, canonical(cpl->file().get()) ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -4815,7 +4815,7 @@ BOOST_AUTO_TEST_CASE (verify_partially_encrypted) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(mp->id()), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(mp->id()), VN(VC::PARTIALLY_ENCRYPTED).set_cpl_id(cpl->id()) @@ -4926,7 +4926,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_subtitle_resource_id) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN( VC::MISMATCHED_TIMED_TEXT_DURATION, boost::filesystem::canonical(subs_mxf) ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_asset->id()).set_duration(0).set_other_duration(240), @@ -5003,7 +5003,7 @@ BOOST_AUTO_TEST_CASE (verify_incorrect_timed_text_id) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN( VC::MISMATCHED_TIMED_TEXT_DURATION, boost::filesystem::canonical(subs_mxf) ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_asset->id()).set_duration(0).set_other_duration(240), @@ -5039,7 +5039,7 @@ BOOST_AUTO_TEST_CASE (verify_threed_marked_as_twod) ).set_reel_index(0).set_asset_id("0d6f57e6-adac-4e1d-bfbe-d162bf13e2cd"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::THREED_ASSET_MARKED_AS_TWOD, boost::filesystem::canonical(find_file(path, "j2c"))), VN(VC::INVALID_STANDARD) }); @@ -5074,7 +5074,7 @@ BOOST_AUTO_TEST_CASE (verify_unexpected_things_in_main_markers) {}, { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN( @@ -5132,8 +5132,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_content_kind) VN( VC::MISMATCHED_CPL_HASHES, canonical(find_cpl(dir)) ).set_cpl_id(cpl->id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()), - VN(VC::INVALID_CONTENT_KIND, string("trip") - ).set_cpl_id(cpl->id()), + VN(VC::INVALID_CONTENT_KIND).set_cpl_id(cpl->id()).set_content_kind("trip"), }); } @@ -5211,7 +5210,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_main_picture_active_area_1) {}, { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), @@ -5260,7 +5259,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_main_picture_active_area_2) {}, { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), @@ -5313,7 +5312,7 @@ BOOST_AUTO_TEST_CASE(verify_duplicate_pkl_asset_ids) string{"1998x1080"}, canonical(cpl->file().get()) ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::NONE_ENCRYPTED, cpl), @@ -5354,7 +5353,7 @@ BOOST_AUTO_TEST_CASE(verify_duplicate_assetmap_asset_ids) string{"1998x1080"}, canonical(cpl->file().get()) ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::NONE_ENCRYPTED, cpl), @@ -5451,7 +5450,7 @@ BOOST_AUTO_TEST_CASE(verify_mismatched_sound_channel_counts) string{"1998x1080"}, cpl->file().get() ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::CORRECT_PICTURE_HASH, canonical(path / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), @@ -5517,7 +5516,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_main_sound_configuration) note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::CORRECT_PICTURE_HASH, canonical(path / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(mp->id()), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(mp->id()), @@ -5599,7 +5598,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_tile_part_size) note(VC::CORRECT_PICTURE_HASH, canonical(path / "video.mxf"), cpl).set_reel_index(0).set_asset_id(mp->id()), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::MISSING_FFOC).set_cpl_id(cpl->id()), @@ -5651,7 +5650,7 @@ BOOST_AUTO_TEST_CASE(verify_too_many_subtitle_namespaces) note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CONTENT_KIND, string{"feature"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("feature"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("Dcp_FTR-1_F_XX-XX_MOS_2K_20230407_SMPTE_OV"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "j2c_42b34dcd-caa5-4c7b-aa0f-66a590947ba1.mxf"), cpl).set_reel_index(0).set_asset_id("42b34dcd-caa5-4c7b-aa0f-66a590947ba1"), note( @@ -5696,7 +5695,7 @@ BOOST_AUTO_TEST_CASE(verify_missing_load_font_for_font) note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), { VC::INVALID_STANDARD }, VN(VC::MISSING_LOAD_FONT_FOR_FONT).set_load_font_id("theFontId").set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()) @@ -5761,7 +5760,7 @@ BOOST_AUTO_TEST_CASE(verify_missing_load_font) string{"1998x1080"}, cpl->file().get() ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -5804,7 +5803,7 @@ BOOST_AUTO_TEST_CASE(verify_spots_wrong_asset) string{"1998x1080"}, cpl->file().get() ).set_cpl_id(cpl->id()), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::MISMATCHED_ASSET_MAP_ID).set_asset_id(asset_1).set_other_asset_id(asset_2) @@ -5839,7 +5838,7 @@ BOOST_AUTO_TEST_CASE(verify_cpl_content_version_label_text_empty) note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -5871,7 +5870,7 @@ BOOST_AUTO_TEST_CASE(verify_encrypted_smpte_dcp) { note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::ALL_ENCRYPTED, cpl), @@ -5902,7 +5901,7 @@ BOOST_AUTO_TEST_CASE(verify_encrypted_smpte_dcp_without_kdm) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), note(VC::ALL_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::MISSED_CHECK_OF_ENCRYPTED).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subtitle_id), @@ -5925,7 +5924,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_sound_bit_depth) vector notes = { note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - note(VC::VALID_CONTENT_KIND, string{"Advertisement"}, cpl), + note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("Advertisement"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("204794_Kitex_Scoobee_Day_Bags_30_Sec_Malayalam_220524_RADQR"), note(VC::NONE_ENCRYPTED, cpl), @@ -6081,8 +6080,8 @@ BOOST_AUTO_TEST_CASE(verify_dcp_with_two_cpls) note(VC::MATCHING_CPL_HASHES, cpls[1]), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpls[0]), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpls[1]), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpls[0]), - note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpls[1]), + note(VC::VALID_CONTENT_KIND, cpls[0]).set_content_kind("trailer"), + note(VC::VALID_CONTENT_KIND, cpls[1]).set_content_kind("trailer"), note(VC::NONE_ENCRYPTED, cpls[0]), note(VC::NONE_ENCRYPTED, cpls[1]), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpls[0]->id()).set_annotation_text("hello"), -- cgit v1.2.3 From 9e1f77e3d4c34a4f197f01570c8017309c214256 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 30 Mar 2026 22:27:28 +0200 Subject: INVALID_MAIN_PICTURE_ACTIVE_AREA: note -> error. --- src/verify.cc | 38 +++++++++++++++++++++----------------- src/verify.h | 2 +- test/verify_test.cc | 20 ++++++++++---------- 3 files changed, 32 insertions(+), 28 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 40a7d44f..432d5b1f 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -1463,17 +1463,19 @@ verify_reel( if (main_picture_active_area) { if (main_picture_active_area->width > asset_size.width) { context.add_note( - VerificationNote::Code::INVALID_MAIN_PICTURE_ACTIVE_AREA, - String::compose("width %1 is bigger than the asset width %2", main_picture_active_area->width, asset_size.width), - context.cpl->file().get() - ); + VerificationNote( + VerificationNote::Code::INVALID_MAIN_PICTURE_ACTIVE_AREA, + context.cpl->file().get() + ).set_error(fmt::format("width {} is bigger than the asset width {}", main_picture_active_area->width, asset_size.width)) + ); } if (main_picture_active_area->height > asset_size.height) { context.add_note( - VerificationNote::Code::INVALID_MAIN_PICTURE_ACTIVE_AREA, - String::compose("height %1 is bigger than the asset height %2", main_picture_active_area->height, asset_size.height), - context.cpl->file().get() - ); + VerificationNote( + VerificationNote::Code::INVALID_MAIN_PICTURE_ACTIVE_AREA, + context.cpl->file().get() + ).set_error(fmt::format("height {} is bigger than the asset height {}", main_picture_active_area->height, asset_size.height)) + ); } } } @@ -1650,18 +1652,20 @@ verify_cpl(Context& context, shared_ptr cpl) bool active_area_ok = true; if (main_picture_active_area && (main_picture_active_area->width % 2)) { context.add_note( - VerificationNote::Code::INVALID_MAIN_PICTURE_ACTIVE_AREA, - String::compose("width %1 is not a multiple of 2", main_picture_active_area->width), - cpl->file().get() - ); + VerificationNote( + VerificationNote::Code::INVALID_MAIN_PICTURE_ACTIVE_AREA, + cpl->file().get() + ).set_error(fmt::format("width {} is not a multiple of 2", main_picture_active_area->width)) + ); active_area_ok = false; } if (main_picture_active_area && (main_picture_active_area->height % 2)) { context.add_note( - VerificationNote::Code::INVALID_MAIN_PICTURE_ACTIVE_AREA, - String::compose("height %1 is not a multiple of 2", main_picture_active_area->height), - cpl->file().get() - ); + VerificationNote( + VerificationNote::Code::INVALID_MAIN_PICTURE_ACTIVE_AREA, + cpl->file().get() + ).set_error(fmt::format("height {} is not a multiple of 2", main_picture_active_area->height)) + ); active_area_ok = false; } @@ -2174,7 +2178,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::VALID_CONTENT_KIND: return compose("Valid %1.", *note.content_kind()); case VerificationNote::Code::INVALID_MAIN_PICTURE_ACTIVE_AREA: - return compose(" has an invalid value: %1", note.note().get()); + return compose(" has an invalid value: %1", *note.error()); case VerificationNote::Code::VALID_MAIN_PICTURE_ACTIVE_AREA: return compose(" %1 is valid", note.note().get()); case VerificationNote::Code::DUPLICATE_ASSET_ID_IN_PKL: diff --git a/src/verify.h b/src/verify.h index b2e8000f..4425a0c2 100644 --- a/src/verify.h +++ b/src/verify.h @@ -500,7 +500,7 @@ public: */ VALID_CONTENT_KIND, /** Either the width or height of a __ in a CPL is either not an even number, or bigger than the corresponding asset dimension - * note contains details of what is wrong + * error contains details of what is wrong * file contains the CPL filename * reel_index contains the reel index (starting from 0) */ diff --git a/test/verify_test.cc b/test/verify_test.cc index 09884b4b..5afc3e2e 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -5220,11 +5220,11 @@ BOOST_AUTO_TEST_CASE(verify_invalid_main_picture_active_area_1) VC::MISMATCHED_CPL_HASHES, canonical(find_cpl(dir)) ).set_cpl_id(cpl->id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()), VN( - VC::INVALID_MAIN_PICTURE_ACTIVE_AREA, "width 1997 is not a multiple of 2", canonical(find_cpl(dir)) - ).set_cpl_id(cpl->id()), + VC::INVALID_MAIN_PICTURE_ACTIVE_AREA, canonical(find_cpl(dir)) + ).set_cpl_id(cpl->id()).set_error("width 1997 is not a multiple of 2"), VN( - VC::INVALID_MAIN_PICTURE_ACTIVE_AREA, "height 4080 is bigger than the asset height 1080", canonical(find_cpl(dir)) - ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(picture_id), + VC::INVALID_MAIN_PICTURE_ACTIVE_AREA, canonical(find_cpl(dir)) + ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(picture_id).set_error("height 4080 is bigger than the asset height 1080"), }); } @@ -5269,14 +5269,14 @@ BOOST_AUTO_TEST_CASE(verify_invalid_main_picture_active_area_2) VC::MISMATCHED_CPL_HASHES, canonical(find_cpl(dir)) ).set_cpl_id(cpl->id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()), VN( - VC::INVALID_MAIN_PICTURE_ACTIVE_AREA, "height 5125 is not a multiple of 2", canonical(find_cpl(dir)) - ).set_cpl_id(cpl->id()), + VC::INVALID_MAIN_PICTURE_ACTIVE_AREA, canonical(find_cpl(dir)) + ).set_cpl_id(cpl->id()).set_error("height 5125 is not a multiple of 2"), VN( - VC::INVALID_MAIN_PICTURE_ACTIVE_AREA, "width 9900 is bigger than the asset width 1998", canonical(find_cpl(dir)) - ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(picture_id), + VC::INVALID_MAIN_PICTURE_ACTIVE_AREA, canonical(find_cpl(dir)) + ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(picture_id).set_error("width 9900 is bigger than the asset width 1998"), VN( - VC::INVALID_MAIN_PICTURE_ACTIVE_AREA, "height 5125 is bigger than the asset height 1080", canonical(find_cpl(dir)) - ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(picture_id), + VC::INVALID_MAIN_PICTURE_ACTIVE_AREA, canonical(find_cpl(dir)) + ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(picture_id).set_error("height 5125 is bigger than the asset height 1080"), }); } -- cgit v1.2.3 From 426c98459c8aad043d42535c0b36300c7dc63215 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 30 Mar 2026 23:19:29 +0200 Subject: VALID_MAIN_PICTURE_ACTIVE_AREA: note -> size_in_pixels. --- src/verify.cc | 7 +- src/verify.h | 4 +- test/verify_test.cc | 292 +++++++++------------------------------------------- 3 files changed, 54 insertions(+), 249 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 432d5b1f..0c993fd5 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -1670,10 +1670,7 @@ verify_cpl(Context& context, shared_ptr cpl) } if (main_picture_active_area && active_area_ok) { - context.add_note( - VerificationNote::Code::VALID_MAIN_PICTURE_ACTIVE_AREA, String::compose("%1x%2", main_picture_active_area->width, main_picture_active_area->height), - cpl->file().get() - ); + context.add_note(VerificationNote(VerificationNote::Code::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_size_in_pixels(*main_picture_active_area)); } int64_t frame = 0; @@ -2180,7 +2177,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::INVALID_MAIN_PICTURE_ACTIVE_AREA: return compose(" has an invalid value: %1", *note.error()); case VerificationNote::Code::VALID_MAIN_PICTURE_ACTIVE_AREA: - return compose(" %1 is valid", note.note().get()); + return compose(" %1x%2 is valid", note.size_in_pixels()->width, note.size_in_pixels()->height); case VerificationNote::Code::DUPLICATE_ASSET_ID_IN_PKL: return compose("The PKL %1 has more than one asset with the same ID.", note.note().get()); case VerificationNote::Code::DUPLICATE_ASSET_ID_IN_ASSETMAP: diff --git a/src/verify.h b/src/verify.h index 4425a0c2..6d93384a 100644 --- a/src/verify.h +++ b/src/verify.h @@ -505,7 +505,9 @@ public: * reel_index contains the reel index (starting from 0) */ INVALID_MAIN_PICTURE_ACTIVE_AREA, - /** A valid __ was seen */ + /** A valid __ was seen + * size_in_pixels contains the valid active area + */ VALID_MAIN_PICTURE_ACTIVE_AREA, /** A PKL has more than one asset with the same ID * note contains the PKL ID diff --git a/test/verify_test.cc b/test/verify_test.cc index 5afc3e2e..7e2ed3e7 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -530,11 +530,7 @@ BOOST_AUTO_TEST_CASE (verify_incorrect_picture_sound_hash) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - dcp::VerificationNote( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - canonical(cpl->file().get()) - ).set_cpl_id(dcp_test1_cpl_id()), + dcp::VerificationNote(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(dcp_test1_cpl_id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), @@ -574,11 +570,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_picture_sound_hashes) { note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - canonical(cpl->file().get()) - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), @@ -618,11 +610,7 @@ BOOST_AUTO_TEST_CASE (verify_failed_read_content_kind) note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id("5407b210-4441-4e97-8b16-8bdc7c12da54"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - canonical(cpl->file().get()) - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id("5407b210-4441-4e97-8b16-8bdc7c12da54"), @@ -675,11 +663,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_picture_frame_rate) { note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id("5407b210-4441-4e97-8b16-8bdc7c12da54"), note(VC::NONE_ENCRYPTED, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - canonical(cpl->file().get()) - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -712,11 +696,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_asset) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - canonical(cpl->file().get()) - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), @@ -741,11 +721,7 @@ BOOST_AUTO_TEST_CASE (verify_empty_asset_path) std::vector expected = { note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - canonical(cpl->file().get()) - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -774,11 +750,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_standard) note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id("5407b210-4441-4e97-8b16-8bdc7c12da54"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id("5407b210-4441-4e97-8b16-8bdc7c12da54"), note(VC::NONE_ENCRYPTED, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - canonical(cpl->file().get()) - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -821,11 +793,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_id) note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id("5407b210-4441-4e97-8b16-8bdc7c12da54"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id("5407b210-4441-4e97-8b16-8bdc7c12da54"), note(VC::NONE_ENCRYPTED, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - canonical(cpl->file().get()) - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -861,11 +829,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_issue_date) note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::NONE_ENCRYPTED, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - canonical(cpl->file().get()) - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -901,11 +865,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_pkl_id) note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::NONE_ENCRYPTED, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - canonical(cpl->file().get()) - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -942,11 +902,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_asset_map_id) note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::NONE_ENCRYPTED, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - canonical(cpl->file().get()) - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -1649,11 +1605,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_cpl_metadata_bad_tag) note(VC::CORRECT_PICTURE_HASH, canonical(dir / "pic.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1440x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1440, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), @@ -1816,11 +1768,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_language3) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1440x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1440, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), @@ -1909,11 +1857,7 @@ check_picture_size_ok (int width, int height, int frame_rate, bool three_d) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - dcp::String::compose("%1x%2", width, height), - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({width, height}), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id) }; @@ -1941,11 +1885,7 @@ check_picture_size_bad_frame_size (int width, int height, int frame_rate, bool t VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - dcp::String::compose("%1x%2", width, height), - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({width, height}), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN( @@ -1976,11 +1916,7 @@ check_picture_size_bad_2k_frame_rate (int width, int height, int frame_rate, boo VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - dcp::String::compose("%1x%2", width, height), - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({width, height}), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::INVALID_PICTURE_FRAME_RATE).set_cpl_id(cpl->id()).set_reel_index(0).set_frame_rate({frame_rate * (three_d ? 2 : 1), 1}), @@ -2011,11 +1947,7 @@ check_picture_size_bad_4k_frame_rate (int width, int height, int frame_rate, boo VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - dcp::String::compose("%1x%2", width, height), - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({width, height}), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::INVALID_PICTURE_FRAME_RATE_FOR_4K, canonical(dir / "video.mxf")).set_cpl_id(cpl->id()).set_reel_index(0).set_frame_rate({frame_rate, 1}).set_asset_id(picture_id), @@ -2258,11 +2190,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_subtitle_language) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), @@ -2323,11 +2251,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_subtitle_languages) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), @@ -2387,11 +2311,7 @@ BOOST_AUTO_TEST_CASE (verify_multiple_closed_caption_languages_allowed) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), @@ -2456,11 +2376,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_subtitle_start_time) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), @@ -2526,11 +2442,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_start_time) note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::INVALID_SUBTITLE_START_TIME, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs->id()), VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs->id()), @@ -3501,11 +3413,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_cpl_annotation_text) { note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -3548,11 +3456,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_cpl_annotation_text) note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::MISMATCHED_CPL_ANNOTATION_TEXT, canonical(cpl->file().get())).set_cpl_id(cpl->id()), VN( @@ -4014,11 +3918,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_hash) {}, { note(VC::NONE_ENCRYPTED, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -4063,13 +3963,7 @@ verify_markers_test ( test_notes.push_back(note(VC::MATCHING_CPL_HASHES, cpl)); test_notes.push_back(note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl)); test_notes.push_back(note(VC::NONE_ENCRYPTED, cpl)); - test_notes.push_back( - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()) - ); + test_notes.push_back(VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080})); test_notes.push_back(note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("feature")); test_notes.push_back(note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl)); test_notes.push_back(VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP")); @@ -4186,11 +4080,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_cpl_metadata_version_number) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), @@ -4230,11 +4120,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_extension_metadata1) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN( VC::MISMATCHED_CPL_HASHES, cpl->file().get() @@ -4273,11 +4159,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_extension_metadata2) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN( VC::MISMATCHED_CPL_HASHES, cpl->file().get() @@ -4317,11 +4199,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata3) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::INVALID_XML, cpl->file().get(), 70).set_cpl_id(cpl->id()).set_error("no declaration found for element 'meta:NameX'"), VN(VC::INVALID_XML, cpl->file().get(), 77).set_cpl_id(cpl->id()).set_error("element 'meta:NameX' is not allowed for content model '(Name,PropertyList?,)'"), @@ -4362,11 +4240,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_extension_metadata1) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN( VC::MISMATCHED_CPL_HASHES, cpl->file().get() @@ -4406,11 +4280,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_extension_metadata2) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN( VC::MISMATCHED_CPL_HASHES, cpl->file().get() @@ -4451,11 +4321,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata6) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::INVALID_XML, cpl->file().get(), 74).set_cpl_id(cpl->id()).set_error("no declaration found for element 'meta:ValueX'"), VN(VC::INVALID_XML, cpl->file().get(), 75).set_cpl_id(cpl->id()).set_error("element 'meta:ValueX' is not allowed for content model '(Name,Value)'"), @@ -4497,11 +4363,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata7) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN( VC::MISMATCHED_CPL_HASHES, cpl->file().get() @@ -4542,7 +4404,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata8) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), - VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, string{"1998x1080"}, cpl->file().get()).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::INVALID_XML, cpl->file().get(), 72).set_cpl_id(cpl->id()).set_error("no declaration found for element 'meta:PropertyX'"), VN(VC::INVALID_XML, cpl->file().get(), 76).set_cpl_id(cpl->id()).set_error("element 'meta:PropertyX' is not allowed for content model '(Property+)'"), @@ -4585,11 +4447,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata9) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::INVALID_XML, cpl->file().get(), 71).set_cpl_id(cpl->id()).set_error("no declaration found for element 'meta:PropertyListX'"), VN(VC::INVALID_XML, cpl->file().get(), 77).set_cpl_id(cpl->id()).set_error( @@ -4727,11 +4585,7 @@ BOOST_AUTO_TEST_CASE (verify_unsigned_pkl_with_unencrypted_content) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - canonical(cpl->file().get()) - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), @@ -4806,11 +4660,7 @@ BOOST_AUTO_TEST_CASE (verify_partially_encrypted) {dir}, {}, { - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1440x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_cpl_id(cpl->id()).set_size_in_pixels({1440, 1080}), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -5077,11 +4927,7 @@ BOOST_AUTO_TEST_CASE (verify_unexpected_things_in_main_markers) note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - canonical(cpl->file().get()) - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -5119,11 +4965,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_content_kind) {}, { note(VC::NONE_ENCRYPTED, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - canonical(cpl->file().get()) - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -5168,11 +5010,7 @@ BOOST_AUTO_TEST_CASE(verify_valid_content_kind) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - canonical(cpl->file().get()) - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), VN( VC::MISMATCHED_CPL_HASHES, canonical(find_cpl(dir)) ).set_cpl_id(cpl->id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()), @@ -5307,11 +5145,7 @@ BOOST_AUTO_TEST_CASE(verify_duplicate_pkl_asset_ids) { note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - canonical(cpl->file().get()) - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -5348,11 +5182,7 @@ BOOST_AUTO_TEST_CASE(verify_duplicate_assetmap_asset_ids) { note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - canonical(cpl->file().get()) - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -5445,11 +5275,7 @@ BOOST_AUTO_TEST_CASE(verify_mismatched_sound_channel_counts) note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::CORRECT_PICTURE_HASH, canonical(path / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), @@ -5520,11 +5346,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_main_sound_configuration) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::CORRECT_PICTURE_HASH, canonical(path / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(mp->id()), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(mp->id()), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN( VC::INVALID_MAIN_SOUND_CONFIGURATION, @@ -5590,11 +5412,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_tile_part_size) vector expected = { note(VC::NONE_ENCRYPTED, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::CORRECT_PICTURE_HASH, canonical(path / "video.mxf"), cpl).set_reel_index(0).set_asset_id(mp->id()), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), @@ -5755,11 +5573,7 @@ BOOST_AUTO_TEST_CASE(verify_missing_load_font) note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -5798,11 +5612,7 @@ BOOST_AUTO_TEST_CASE(verify_spots_wrong_asset) note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), @@ -5830,11 +5640,7 @@ BOOST_AUTO_TEST_CASE(verify_cpl_content_version_label_text_empty) {dir}, {}, { - VN( - VC::VALID_MAIN_PICTURE_ACTIVE_AREA, - string{"1998x1080"}, - cpl->file().get() - ).set_cpl_id(cpl->id()), + VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), -- cgit v1.2.3 From d7f52153b4e50858dcd382fb66c51afba0bf6029 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 30 Mar 2026 23:28:29 +0200 Subject: DUPLICATE_ASSET_ID_IN_PKL: note -> pkl_id. --- src/verify.cc | 4 ++-- src/verify.h | 2 +- test/verify_test.cc | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 0c993fd5..caf2db03 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -1820,7 +1820,7 @@ verify_pkl(Context& context, shared_ptr pkl) set uuid_set; for (auto asset: pkl->assets()) { if (!uuid_set.insert(asset->id()).second) { - context.add_note(VerificationNote::Code::DUPLICATE_ASSET_ID_IN_PKL, pkl->id(), pkl->file().get()); + context.add_note(VerificationNote(VerificationNote::Code::DUPLICATE_ASSET_ID_IN_PKL, pkl->file().get()).set_pkl_id(pkl->id())); break; } } @@ -2179,7 +2179,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::VALID_MAIN_PICTURE_ACTIVE_AREA: return compose(" %1x%2 is valid", note.size_in_pixels()->width, note.size_in_pixels()->height); case VerificationNote::Code::DUPLICATE_ASSET_ID_IN_PKL: - return compose("The PKL %1 has more than one asset with the same ID.", note.note().get()); + return compose("The PKL %1 has more than one asset with the same ID.", *note.pkl_id()); case VerificationNote::Code::DUPLICATE_ASSET_ID_IN_ASSETMAP: return compose("The ASSETMAP %1 has more than one asset with the same ID.", note.note().get()); case VerificationNote::Code::MISSING_SUBTITLE: diff --git a/src/verify.h b/src/verify.h index 6d93384a..07a480a7 100644 --- a/src/verify.h +++ b/src/verify.h @@ -510,7 +510,7 @@ public: */ VALID_MAIN_PICTURE_ACTIVE_AREA, /** A PKL has more than one asset with the same ID - * note contains the PKL ID + * pkl_id contains the PKL ID * file contains the PKL filename */ DUPLICATE_ASSET_ID_IN_PKL, diff --git a/test/verify_test.cc b/test/verify_test.cc index 7e2ed3e7..87e57b71 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -5150,7 +5150,7 @@ BOOST_AUTO_TEST_CASE(verify_duplicate_pkl_asset_ids) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::NONE_ENCRYPTED, cpl), - { VC::DUPLICATE_ASSET_ID_IN_PKL, pkl.id(), canonical(find_pkl(dir)) }, + VN(VC::DUPLICATE_ASSET_ID_IN_PKL, canonical(find_pkl(dir))).set_pkl_id(pkl.id()), }); } -- cgit v1.2.3 From 01e7bb0bb80f50466912800bd327ec4f0d733542 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 31 Mar 2026 15:20:19 +0200 Subject: DUPLICATE_ASSET_ID_IN_ASSETMAP: note -> asset_map_id. --- src/verify.cc | 9 +++++++-- src/verify.h | 12 +++++++++++- test/verify_test.cc | 4 ++-- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index caf2db03..094567da 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -1840,7 +1840,7 @@ verify_assetmap(Context& context, shared_ptr dcp) set uuid_set; for (auto const& asset: asset_map->assets()) { if (!uuid_set.insert(asset.id()).second) { - context.add_note(VerificationNote::Code::DUPLICATE_ASSET_ID_IN_ASSETMAP, asset_map->id(), asset_map->file().get()); + context.add_note(VerificationNote(VerificationNote::Code::DUPLICATE_ASSET_ID_IN_ASSETMAP, asset_map->file().get()).set_asset_map_id(asset_map->id())); break; } } @@ -2181,7 +2181,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::DUPLICATE_ASSET_ID_IN_PKL: return compose("The PKL %1 has more than one asset with the same ID.", *note.pkl_id()); case VerificationNote::Code::DUPLICATE_ASSET_ID_IN_ASSETMAP: - return compose("The ASSETMAP %1 has more than one asset with the same ID.", note.note().get()); + return compose("The ASSETMAP %1 has more than one asset with the same ID.", *note.asset_map_id()); case VerificationNote::Code::MISSING_SUBTITLE: return compose("The subtitle asset %1 has no subtitles.", note.note().get()); case VerificationNote::Code::INVALID_SUBTITLE_ISSUE_DATE: @@ -2372,6 +2372,7 @@ dcp::operator== (dcp::VerificationNote const& a, dcp::VerificationNote const& b) a.frame_rate() == b.frame_rate() && a.cpl_id() == b.cpl_id() && a.pkl_id() == b.pkl_id() && + a.asset_map_id() == b.asset_map_id() && a.reference_hash() == b.reference_hash() && a.calculated_hash() == b.calculated_hash() && a.reel_index() == b.reel_index() && @@ -2515,6 +2516,10 @@ dcp::operator< (dcp::VerificationNote const& a, dcp::VerificationNote const& b) return less_than_optional(a.pkl_id(), b.pkl_id()); } + if (a.asset_map_id() != b.asset_map_id()) { + return less_than_optional(a.asset_map_id(), b.asset_map_id()); + } + if (a.reference_hash() != b.reference_hash()) { return less_than_optional(a.reference_hash(), b.reference_hash()); } diff --git a/src/verify.h b/src/verify.h index 07a480a7..2fb6b0ef 100644 --- a/src/verify.h +++ b/src/verify.h @@ -515,7 +515,7 @@ public: */ DUPLICATE_ASSET_ID_IN_PKL, /** An ASSETMAP has more than one asset with the same ID - * note contains the ASSETMAP ID + * asset_map_id contains the ASSETMAP ID * file contains the ASSETMAP filename */ DUPLICATE_ASSET_ID_IN_ASSETMAP, @@ -645,6 +645,7 @@ private: enum class Data { ANNOTATION_TEXT, ASSET_ID, + ASSET_MAP_ID, BIT_DEPTH, CALCULATED_HASH, CAPABILITIES, @@ -803,6 +804,15 @@ public: return data(Data::PKL_ID); } + VerificationNote& set_asset_map_id(std::string id) { + _data[Data::ASSET_MAP_ID] = id; + return *this; + } + + boost::optional asset_map_id() const { + return data(Data::ASSET_MAP_ID); + } + VerificationNote& set_reel_index(int index) { _data[Data::REEL_INDEX] = index; return *this; diff --git a/test/verify_test.cc b/test/verify_test.cc index 87e57b71..737da1e9 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -5188,8 +5188,8 @@ BOOST_AUTO_TEST_CASE(verify_duplicate_assetmap_asset_ids) note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), note(VC::NONE_ENCRYPTED, cpl), VN( - VC::DUPLICATE_ASSET_ID_IN_ASSETMAP, asset_map.id(), canonical(find_asset_map(dir)) - ), + VC::DUPLICATE_ASSET_ID_IN_ASSETMAP, canonical(find_asset_map(dir)) + ).set_asset_map_id(asset_map.id()), VN(VC::EXTERNAL_ASSET).set_asset_id("5407b210-4441-4e97-8b16-8bdc7c12da54"), }); } -- cgit v1.2.3 From d6ccf7600d19ad73fab51a8a8ee1a215d5a9e180 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 31 Mar 2026 18:05:14 +0200 Subject: MISSING_SUBTITLE: note -> asset_id. --- src/verify.cc | 4 ++-- src/verify.h | 2 +- test/verify_test.cc | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 094567da..22e07b7c 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -748,7 +748,7 @@ void verify_interop_text_asset(Context& context, shared_ptr asset) { if (asset->texts().empty()) { - context.add_note(VerificationNote::Code::MISSING_SUBTITLE, asset->id(), asset->file().get()); + context.add_note(VerificationNote(VerificationNote::Code::MISSING_SUBTITLE, asset->file().get()).set_asset_id(asset->id())); } auto const unresolved = asset->unresolved_fonts(); if (!unresolved.empty()) { @@ -2183,7 +2183,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::DUPLICATE_ASSET_ID_IN_ASSETMAP: return compose("The ASSETMAP %1 has more than one asset with the same ID.", *note.asset_map_id()); case VerificationNote::Code::MISSING_SUBTITLE: - return compose("The subtitle asset %1 has no subtitles.", note.note().get()); + return compose("The subtitle asset %1 has no subtitles.", *note.asset_id()); case VerificationNote::Code::INVALID_SUBTITLE_ISSUE_DATE: return compose(" has an invalid value: %1", note.note().get()); case VerificationNote::Code::MISMATCHED_SOUND_CHANNEL_COUNTS: diff --git a/src/verify.h b/src/verify.h index 2fb6b0ef..d4d066c6 100644 --- a/src/verify.h +++ b/src/verify.h @@ -520,7 +520,7 @@ public: */ DUPLICATE_ASSET_ID_IN_ASSETMAP, /** An Interop subtitle asset has no subtitles - * note contains the asset ID + * asset_id contains the asset ID * file contains the asset filename * reel_index contains the reel index (starting from 0) */ diff --git a/test/verify_test.cc b/test/verify_test.cc index 737da1e9..512c673e 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -1301,7 +1301,7 @@ BOOST_AUTO_TEST_CASE(verify_interop_subtitle_asset_with_no_subtitles) note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), { VC::INVALID_STANDARD }, - VN(VC::MISSING_SUBTITLE, asset->id(), boost::filesystem::canonical(asset->file().get())).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), + VN(VC::MISSING_SUBTITLE, boost::filesystem::canonical(asset->file().get())).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), VN(VC::MISSING_FONT, string{"theFontId"}).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), }); } @@ -1473,7 +1473,7 @@ BOOST_AUTO_TEST_CASE (verify_empty_text_node_in_subtitles_with_empty_child_nodes auto reel_asset = make_shared(dcp::TextType::OPEN_SUBTITLE, asset, dcp::Fraction(24, 1), 192, 0); auto cpl = write_dcp_with_single_asset (dir, reel_asset, dcp::Standard::INTEROP); - auto const subs_id = cpl->reels()[0]->main_subtitle()->asset()->id(); + auto const subs_id = asset->id(); using VN = dcp::VerificationNote; using VC = VN::Code; @@ -1486,7 +1486,7 @@ BOOST_AUTO_TEST_CASE (verify_empty_text_node_in_subtitles_with_empty_child_nodes note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), - VN(VC::MISSING_SUBTITLE, asset->id(), boost::filesystem::canonical(asset->file().get())).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_id), + VN(VC::MISSING_SUBTITLE, boost::filesystem::canonical(asset->file().get())).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_id), { VC::INVALID_STANDARD }, VN(VC::EMPTY_TEXT).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_id), VN(VC::MISSING_FONT, string{"font0"}).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_id), -- cgit v1.2.3 From bce04bc8feda6990157536b455fcdafcb3588ab4 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 31 Mar 2026 20:22:53 +0200 Subject: INVALID_SUBTITLE_ISSUE_DATE: note -> issue_date. --- src/verify.cc | 4 ++-- src/verify.h | 2 +- test/verify_test.cc | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 22e07b7c..4cb21d31 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -790,7 +790,7 @@ verify_smpte_subtitle_asset(Context& context, shared_ptr a auto issue_date = doc.string_child("IssueDate"); std::regex reg("^\\d\\d\\d\\d-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\d$"); if (!std::regex_match(issue_date, reg)) { - context.add_note(VerificationNote::Code::INVALID_SUBTITLE_ISSUE_DATE, issue_date); + context.add_note(VerificationNote(VerificationNote::Code::INVALID_SUBTITLE_ISSUE_DATE).set_issue_date(issue_date)); } } } @@ -2185,7 +2185,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::MISSING_SUBTITLE: return compose("The subtitle asset %1 has no subtitles.", *note.asset_id()); case VerificationNote::Code::INVALID_SUBTITLE_ISSUE_DATE: - return compose(" has an invalid value: %1", note.note().get()); + return compose(" has an invalid value: %1", *note.issue_date()); case VerificationNote::Code::MISMATCHED_SOUND_CHANNEL_COUNTS: return compose("The sound assets do not all have the same channel count; the first to differ is %1", filename()); case VerificationNote::Code::INVALID_MAIN_SOUND_CONFIGURATION: diff --git a/src/verify.h b/src/verify.h index d4d066c6..777a68de 100644 --- a/src/verify.h +++ b/src/verify.h @@ -528,7 +528,7 @@ public: /** A SMPTE subtitle asset as an __ which is not of the form yyyy-mm-ddThh:mm:ss * I can find no reference in a standard to this being required, but the Deluxe delivery * specifications require it and their QC will fail DCPs that don't have it. - * note contains the incorrect + * issue_date contains the incorrect * reel_index contains the reel index (starting from 0) */ INVALID_SUBTITLE_ISSUE_DATE, diff --git a/test/verify_test.cc b/test/verify_test.cc index 512c673e..a1462378 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -1359,7 +1359,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_smpte_subtitles) note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()), - VN(VC::INVALID_SUBTITLE_ISSUE_DATE, string{"2021-04-14T13:19:14.000+02:00"}).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), + VN(VC::INVALID_SUBTITLE_ISSUE_DATE).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_issue_date("2021-04-14T13:19:14.000+02:00"), VN(VC::INCORRECT_SUBTITLE_NAMESPACE_COUNT, asset->id()).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), }); } @@ -1397,7 +1397,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_smpte_subtitles) ), VN(VC::MISSING_SUBTITLE_START_TIME, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()), - VN(VC::INVALID_SUBTITLE_ISSUE_DATE, string{"2020-05-09T00:29:21.000+02:00"}).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), + VN(VC::INVALID_SUBTITLE_ISSUE_DATE).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_issue_date("2020-05-09T00:29:21.000+02:00"), VN(VC::INCORRECT_SUBTITLE_NAMESPACE_COUNT, asset->id()).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), }); } @@ -1429,7 +1429,7 @@ BOOST_AUTO_TEST_CASE (verify_empty_text_node_in_subtitles) VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), VN(VC::MISSING_SUBTITLE_LANGUAGE, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()), - VN(VC::INVALID_SUBTITLE_ISSUE_DATE, string{"2021-08-09T18:34:46.000+02:00"}).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), + VN(VC::INVALID_SUBTITLE_ISSUE_DATE).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_issue_date("2021-08-09T18:34:46.000+02:00"), VN(VC::INCORRECT_SUBTITLE_NAMESPACE_COUNT, asset->id()).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), }); } @@ -4860,7 +4860,7 @@ BOOST_AUTO_TEST_CASE (verify_incorrect_timed_text_id) VN(VC::INCORRECT_TIMED_TEXT_ASSET_ID).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_asset->id()), VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_asset->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()), - VN(VC::INVALID_SUBTITLE_ISSUE_DATE, string{"2018-10-02T12:25:14+02:00"}).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_asset->id()), + VN(VC::INVALID_SUBTITLE_ISSUE_DATE).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_asset->id()).set_issue_date("2018-10-02T12:25:14+02:00"), }); } -- cgit v1.2.3 From fe938d4dd52ab41be4cdd441d5d4289deae6190d Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 31 Mar 2026 22:28:41 +0200 Subject: INVALID_MAIN_SOUND_CONFIGURATION: note -> error. --- src/cpl.cc | 3 +-- src/verify.cc | 9 +++++---- src/verify.h | 2 +- test/verify_test.cc | 3 +-- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/cpl.cc b/src/cpl.cc index 27481939..0bc333c2 100644 --- a/src/cpl.cc +++ b/src/cpl.cc @@ -328,9 +328,8 @@ CPL::read_composition_metadata_asset(cxml::ConstNodePtr node, vectorpush_back( dcp::VerificationNote( dcp::VerificationNote::Code::INVALID_MAIN_SOUND_CONFIGURATION, - fmt::format("{} could not be parsed", _main_sound_configuration->as_string()), *_file - ).set_cpl_id(_id) + ).set_cpl_id(_id).set_error(fmt::format("{} could not be parsed", _main_sound_configuration->as_string())) ); } } diff --git a/src/verify.cc b/src/verify.cc index 4cb21d31..bc3adea0 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -1700,9 +1700,10 @@ verify_cpl(Context& context, shared_ptr cpl) if (auto msc = cpl->main_sound_configuration()) { if (msc->valid() && context.audio_channels && msc->channels() != *context.audio_channels) { context.add_note( - VerificationNote::Code::INVALID_MAIN_SOUND_CONFIGURATION, - String::compose("MainSoundConfiguration has %1 channels but sound assets have %2", msc->channels(), *context.audio_channels), - cpl->file().get() + VerificationNote( + VerificationNote::Code::INVALID_MAIN_SOUND_CONFIGURATION, + cpl->file().get() + ).set_error(fmt::format("MainSoundConfiguration has {} channels but sound assets have {}", msc->channels(), *context.audio_channels)) ); } } @@ -2189,7 +2190,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::MISMATCHED_SOUND_CHANNEL_COUNTS: return compose("The sound assets do not all have the same channel count; the first to differ is %1", filename()); case VerificationNote::Code::INVALID_MAIN_SOUND_CONFIGURATION: - return compose(" has an invalid value: %1", note.note().get()); + return compose(" has an invalid value: %1", *note.error()); case VerificationNote::Code::MISSING_FONT: return compose("The font file for font ID \"%1\" was not found, or was not referred to in the ASSETMAP.", note.note().get()); case VerificationNote::Code::INVALID_JPEG2000_TILE_PART_SIZE: diff --git a/src/verify.h b/src/verify.h index 777a68de..ba485242 100644 --- a/src/verify.h +++ b/src/verify.h @@ -538,7 +538,7 @@ public: */ MISMATCHED_SOUND_CHANNEL_COUNTS, /** The CPL contains a __ tag which does not describe the number of channels in the audio assets, or which is in some way badly formatted - * note contains details of what is wrong + * error contains details of what is wrong * file contains the CPL filename * cpl_id contains the CPL ID */ diff --git a/test/verify_test.cc b/test/verify_test.cc index a1462378..8f55feb7 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -5350,9 +5350,8 @@ BOOST_AUTO_TEST_CASE(verify_invalid_main_sound_configuration) note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), VN( VC::INVALID_MAIN_SOUND_CONFIGURATION, - std::string{"MainSoundConfiguration has 6 channels but sound assets have 2"}, canonical(find_cpl(path)) - ).set_cpl_id(cpl->id()) + ).set_cpl_id(cpl->id()).set_error("MainSoundConfiguration has 6 channels but sound assets have 2"), }); } -- cgit v1.2.3 From a44e4cedc7054cb12979fb0cb188bf6d8545aebf Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 31 Mar 2026 22:39:40 +0200 Subject: MISSING_FONT: note -> load_font_id. --- src/verify.cc | 4 ++-- src/verify.h | 2 +- test/verify_test.cc | 14 +++++++------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index bc3adea0..e1542eaa 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -752,7 +752,7 @@ verify_interop_text_asset(Context& context, shared_ptr a } auto const unresolved = asset->unresolved_fonts(); if (!unresolved.empty()) { - context.add_note(VerificationNote::Code::MISSING_FONT, unresolved.front()); + context.add_note(VerificationNote(VerificationNote::Code::MISSING_FONT).set_load_font_id(unresolved.front())); } } @@ -2192,7 +2192,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::INVALID_MAIN_SOUND_CONFIGURATION: return compose(" has an invalid value: %1", *note.error()); case VerificationNote::Code::MISSING_FONT: - return compose("The font file for font ID \"%1\" was not found, or was not referred to in the ASSETMAP.", note.note().get()); + return compose("The font file for font ID \"%1\" was not found, or was not referred to in the ASSETMAP.", *note.load_font_id()); case VerificationNote::Code::INVALID_JPEG2000_TILE_PART_SIZE: return compose( "Frame %1 has an image component that is too large (component %2 is %3 bytes in size).", diff --git a/src/verify.h b/src/verify.h index ba485242..0a876f1c 100644 --- a/src/verify.h +++ b/src/verify.h @@ -544,7 +544,7 @@ public: */ INVALID_MAIN_SOUND_CONFIGURATION, /** An interop subtitle file has a __ node which refers to a font file that is not found - * note contains the ID + * load_font_id contains the ID * reel_index contains the reel index (starting from 0) */ MISSING_FONT, diff --git a/test/verify_test.cc b/test/verify_test.cc index 8f55feb7..a834bdb2 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -1209,7 +1209,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_interop_subtitles) note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), { VC::INVALID_STANDARD }, - VN(VC::MISSING_FONT, string{"theFontId"}).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), + VN(VC::MISSING_FONT).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_load_font_id("theFontId"), }); } @@ -1236,7 +1236,7 @@ BOOST_AUTO_TEST_CASE(verify_catch_missing_font_file_with_interop_ccap) note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), { VC::INVALID_STANDARD }, - VN(VC::MISSING_FONT, string{"theFontId"}).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), + VN(VC::MISSING_FONT).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_load_font_id("theFontId"), }); } @@ -1274,7 +1274,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_interop_subtitles) VN(VC::INVALID_XML, path(), 29).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_error( "element 'Foo' is not allowed for content model '(SubtitleID,MovieTitle,ReelNumber,Language,LoadFont*,Font*,Subtitle*)'" ), - VN(VC::MISSING_FONT, string{"theFontId"}).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), + VN(VC::MISSING_FONT).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_load_font_id("theFontId"), }); } @@ -1302,7 +1302,7 @@ BOOST_AUTO_TEST_CASE(verify_interop_subtitle_asset_with_no_subtitles) note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), { VC::INVALID_STANDARD }, VN(VC::MISSING_SUBTITLE, boost::filesystem::canonical(asset->file().get())).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), - VN(VC::MISSING_FONT, string{"theFontId"}).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), + VN(VC::MISSING_FONT).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_load_font_id("theFontId"), }); } @@ -1331,7 +1331,7 @@ BOOST_AUTO_TEST_CASE(verify_interop_subtitle_asset_with_single_space_subtitle) note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), { VC::INVALID_STANDARD }, - VN(VC::MISSING_FONT, string{"Arial"}).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_id), + VN(VC::MISSING_FONT).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_load_font_id("Arial"), }); } @@ -1458,7 +1458,7 @@ BOOST_AUTO_TEST_CASE (verify_empty_text_node_in_subtitles_with_child_nodes) note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), { VC::INVALID_STANDARD }, - VN(VC::MISSING_FONT, string{"font0"}).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), + VN(VC::MISSING_FONT).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_load_font_id("font0"), }); } @@ -1489,7 +1489,7 @@ BOOST_AUTO_TEST_CASE (verify_empty_text_node_in_subtitles_with_empty_child_nodes VN(VC::MISSING_SUBTITLE, boost::filesystem::canonical(asset->file().get())).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_id), { VC::INVALID_STANDARD }, VN(VC::EMPTY_TEXT).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_id), - VN(VC::MISSING_FONT, string{"font0"}).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_id), + VN(VC::MISSING_FONT).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_load_font_id("font0"), }); } -- cgit v1.2.3 From 7e9736d5e07fb3f608ad78c251deb183f2989d5d Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 31 Mar 2026 22:57:32 +0200 Subject: INCORRECT_SUBTITLE_NAMESPACE_COUNT: note -> asset_id. --- src/verify.cc | 6 +++--- src/verify.h | 2 +- test/verify_test.cc | 11 ++++------- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index e1542eaa..057fa84e 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -825,7 +825,7 @@ verify_subtitle_asset(Context& context, shared_ptr asset, optio if (interop) { verify_interop_text_asset(context, interop); if (namespace_count(asset, "DCSubtitle") > 1) { - context.add_note(VerificationNote::Code::INCORRECT_SUBTITLE_NAMESPACE_COUNT, asset->id()); + context.add_note(VerificationNote(VerificationNote::Code::INCORRECT_SUBTITLE_NAMESPACE_COUNT).set_asset_id(asset->id())); } } @@ -835,7 +835,7 @@ verify_subtitle_asset(Context& context, shared_ptr asset, optio verify_smpte_subtitle_asset(context, smpte); /* This asset may be encrypted and in that case we'll have no raw_xml() */ if (asset->raw_xml() && namespace_count(asset, "SubtitleReel") > 1) { - context.add_note(VerificationNote::Code::INCORRECT_SUBTITLE_NAMESPACE_COUNT, asset->id()); + context.add_note(VerificationNote(VerificationNote::Code::INCORRECT_SUBTITLE_NAMESPACE_COUNT).set_asset_id(asset->id())); } } } @@ -2199,7 +2199,7 @@ dcp::note_to_string(VerificationNote note, function process_str note.frame().get(), note.component().get(), note.size_in_bytes().get() ); case VerificationNote::Code::INCORRECT_SUBTITLE_NAMESPACE_COUNT: - return compose("The XML in the subtitle asset %1 has more than one namespace declaration.", note.note().get()); + return compose("The XML in the subtitle asset %1 has more than one namespace declaration.", *note.asset_id()); case VerificationNote::Code::MISSING_LOAD_FONT_FOR_FONT: return compose("A subtitle or closed caption refers to a font with ID %1 that does not have a corresponding node", note.load_font_id().get()); case VerificationNote::Code::MISSING_LOAD_FONT: diff --git a/src/verify.h b/src/verify.h index 0a876f1c..ba742244 100644 --- a/src/verify.h +++ b/src/verify.h @@ -556,7 +556,7 @@ public: */ INVALID_JPEG2000_TILE_PART_SIZE, /** A subtitle XML root node has more than one namespace (xmlns) declaration. - * note contains the asset ID + * asset_id contains the asset ID * reel_index contains the reel index (starting from 0) */ INCORRECT_SUBTITLE_NAMESPACE_COUNT, diff --git a/test/verify_test.cc b/test/verify_test.cc index a834bdb2..a7af0f68 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -1360,7 +1360,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_smpte_subtitles) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()), VN(VC::INVALID_SUBTITLE_ISSUE_DATE).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_issue_date("2021-04-14T13:19:14.000+02:00"), - VN(VC::INCORRECT_SUBTITLE_NAMESPACE_COUNT, asset->id()).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), + VN(VC::INCORRECT_SUBTITLE_NAMESPACE_COUNT).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), }); } @@ -1398,7 +1398,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_smpte_subtitles) VN(VC::MISSING_SUBTITLE_START_TIME, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()), VN(VC::INVALID_SUBTITLE_ISSUE_DATE).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_issue_date("2020-05-09T00:29:21.000+02:00"), - VN(VC::INCORRECT_SUBTITLE_NAMESPACE_COUNT, asset->id()).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), + VN(VC::INCORRECT_SUBTITLE_NAMESPACE_COUNT).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), }); } @@ -1430,7 +1430,7 @@ BOOST_AUTO_TEST_CASE (verify_empty_text_node_in_subtitles) VN(VC::MISSING_SUBTITLE_LANGUAGE, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()), VN(VC::INVALID_SUBTITLE_ISSUE_DATE).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_issue_date("2021-08-09T18:34:46.000+02:00"), - VN(VC::INCORRECT_SUBTITLE_NAMESPACE_COUNT, asset->id()).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), + VN(VC::INCORRECT_SUBTITLE_NAMESPACE_COUNT).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), }); } @@ -5481,10 +5481,7 @@ BOOST_AUTO_TEST_CASE(verify_too_many_subtitle_namespaces) VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id("315de731-1173-484c-9a35-bdacf5a9d99d"), VN(VC::MISSING_SUBTITLE_LANGUAGE, canonical(find_file(dir, "sub_"))).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id("315de731-1173-484c-9a35-bdacf5a9d99d"), VN(VC::MISSING_CPL_METADATA, canonical(find_file(dir, "cpl_"))).set_cpl_id(cpl->id()), - VN( - VC::INCORRECT_SUBTITLE_NAMESPACE_COUNT, - std::string{"315de731-1173-484c-9a35-bdacf5a9d99d"} - ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id("315de731-1173-484c-9a35-bdacf5a9d99d") + VN(VC::INCORRECT_SUBTITLE_NAMESPACE_COUNT).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id("315de731-1173-484c-9a35-bdacf5a9d99d") }); } -- cgit v1.2.3 From e567f3569669aa23675a31beff18228da57c123b Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 31 Mar 2026 23:22:17 +0200 Subject: VALID_CONTENT_VERSION_LABEL_TEXT: note -> content_version. --- src/verify.cc | 4 +- src/verify.h | 4 +- test/verify_test.cc | 232 ++++++++++++++++++++++++++-------------------------- 3 files changed, 121 insertions(+), 119 deletions(-) diff --git a/src/verify.cc b/src/verify.cc index 057fa84e..08b85d3d 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -1585,7 +1585,7 @@ verify_cpl(Context& context, shared_ptr cpl) context.add_note(VerificationNote::Code::EMPTY_CONTENT_VERSION_LABEL_TEXT, cpl->file().get()); break; } else { - context.add_note(VerificationNote::Code::VALID_CONTENT_VERSION_LABEL_TEXT, version.label_text); + context.add_note(VerificationNote(VerificationNote::Code::VALID_CONTENT_VERSION_LABEL_TEXT).set_content_version(version.label_text)); } } @@ -2209,7 +2209,7 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::EMPTY_CONTENT_VERSION_LABEL_TEXT: return compose("The in a in CPL %1 is empty", note.cpl_id().get()); case VerificationNote::Code::VALID_CONTENT_VERSION_LABEL_TEXT: - return compose("CPL has valid %1", note.note().get()); + return compose("CPL has valid %1", *note.content_version()); case VerificationNote::Code::INVALID_CPL_NAMESPACE: return compose("The namespace %1 in CPL %2 is invalid", note.note().get(), note.cpl_id().get()); case VerificationNote::Code::MISSING_CPL_CONTENT_VERSION: diff --git a/src/verify.h b/src/verify.h index ba742244..96945ca3 100644 --- a/src/verify.h +++ b/src/verify.h @@ -579,7 +579,9 @@ public: * file contains the CPL filename */ EMPTY_CONTENT_VERSION_LABEL_TEXT, - /** A inside a __ is valid */ + /** A inside a __ is valid. + * content_version contains the label text. + */ VALID_CONTENT_VERSION_LABEL_TEXT, /** The CPL namespace is not valid * note contains the invalid namespace diff --git a/test/verify_test.cc b/test/verify_test.cc index a7af0f68..7f32c438 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -532,7 +532,7 @@ BOOST_AUTO_TEST_CASE (verify_incorrect_picture_sound_hash) note(VC::NONE_ENCRYPTED, cpl), dcp::VerificationNote(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(dcp_test1_cpl_id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id("5407b210-4441-4e97-8b16-8bdc7c12da54"), VN( @@ -572,7 +572,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_picture_sound_hashes) note(VC::NONE_ENCRYPTED, cpl), VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id("5407b210-4441-4e97-8b16-8bdc7c12da54"), VN( @@ -611,7 +611,7 @@ BOOST_AUTO_TEST_CASE (verify_failed_read_content_kind) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id("5407b210-4441-4e97-8b16-8bdc7c12da54"), VN( @@ -666,7 +666,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_picture_frame_rate) VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id("5407b210-4441-4e97-8b16-8bdc7c12da54"), VN( @@ -698,7 +698,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_asset) note(VC::NONE_ENCRYPTED, cpl), VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), { VC::MISSING_ASSET, canonical(dir) / "video.mxf" } }); @@ -724,7 +724,7 @@ BOOST_AUTO_TEST_CASE (verify_empty_asset_path) VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), { VC::EMPTY_ASSET_PATH } }; @@ -753,7 +753,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_standard) VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), { VC::MISMATCHED_STANDARD }, VN(VC::INVALID_XML, canonical(cpl_path), 42).set_cpl_id(cpl->id()).set_error("invalid character encountered"), @@ -796,7 +796,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_id) VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::INVALID_XML, canonical(cpl_path), 3).set_cpl_id(cpl->id()).set_error( @@ -832,7 +832,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_issue_date) VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), VN( VC::MISMATCHED_CPL_HASHES, canonical(cpl_path) @@ -868,7 +868,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_pkl_id) VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::INVALID_XML, canonical(pkl_path), 3).set_error( @@ -905,7 +905,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_asset_map_id) VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::INVALID_XML, canonical(asset_map_path), 3).set_error( @@ -974,7 +974,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_standard) note(VC::NONE_ENCRYPTED, cpl), { VC::INVALID_STANDARD }, note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("feature"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::MATCHING_CPL_HASHES, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "j2c_c6035f97-b07d-4e1c-944d-603fc2ddc242.mxf"), cpl).set_reel_index(0).set_asset_id("c6035f97-b07d-4e1c-944d-603fc2ddc242"), @@ -1073,7 +1073,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_picture_frame_size_in_bytes) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "pic.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), }; @@ -1129,7 +1129,7 @@ BOOST_AUTO_TEST_CASE (verify_nearly_invalid_picture_frame_size_in_bytes) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), }; @@ -1179,7 +1179,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_picture_frame_size_in_bytes) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "pic.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) @@ -1207,7 +1207,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_interop_subtitles) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), { VC::INVALID_STANDARD }, VN(VC::MISSING_FONT).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_load_font_id("theFontId"), }); @@ -1234,7 +1234,7 @@ BOOST_AUTO_TEST_CASE(verify_catch_missing_font_file_with_interop_ccap) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), { VC::INVALID_STANDARD }, VN(VC::MISSING_FONT).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_load_font_id("theFontId"), }); @@ -1268,7 +1268,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_interop_subtitles) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), { VC::INVALID_STANDARD }, VN(VC::INVALID_XML, path(), 5).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_error("no declaration found for element 'Foo'"), VN(VC::INVALID_XML, path(), 29).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_error( @@ -1299,7 +1299,7 @@ BOOST_AUTO_TEST_CASE(verify_interop_subtitle_asset_with_no_subtitles) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), { VC::INVALID_STANDARD }, VN(VC::MISSING_SUBTITLE, boost::filesystem::canonical(asset->file().get())).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), VN(VC::MISSING_FONT).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_load_font_id("theFontId"), @@ -1329,7 +1329,7 @@ BOOST_AUTO_TEST_CASE(verify_interop_subtitle_asset_with_single_space_subtitle) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), { VC::INVALID_STANDARD }, VN(VC::MISSING_FONT).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_load_font_id("Arial"), }); @@ -1356,7 +1356,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_smpte_subtitles) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()), VN(VC::INVALID_SUBTITLE_ISSUE_DATE).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_issue_date("2021-04-14T13:19:14.000+02:00"), @@ -1388,7 +1388,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_smpte_subtitles) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::INVALID_XML, path(), 2).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_error("no declaration found for element 'Foo'"), VN(VC::INVALID_XML, path(), 2).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_error( @@ -1423,7 +1423,7 @@ BOOST_AUTO_TEST_CASE (verify_empty_text_node_in_subtitles) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::EMPTY_TEXT).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), @@ -1456,7 +1456,7 @@ BOOST_AUTO_TEST_CASE (verify_empty_text_node_in_subtitles_with_child_nodes) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), { VC::INVALID_STANDARD }, VN(VC::MISSING_FONT).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_load_font_id("font0"), }); @@ -1485,7 +1485,7 @@ BOOST_AUTO_TEST_CASE (verify_empty_text_node_in_subtitles_with_empty_child_nodes note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::MISSING_SUBTITLE, boost::filesystem::canonical(asset->file().get())).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_id), { VC::INVALID_STANDARD }, VN(VC::EMPTY_TEXT).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_id), @@ -1524,7 +1524,7 @@ BOOST_AUTO_TEST_CASE (verify_external_asset) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::EXTERNAL_ASSET).set_asset_id(picture->asset()->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) @@ -1607,7 +1607,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_cpl_metadata_bad_tag) note(VC::NONE_ENCRYPTED, cpl), VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1440, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "pic.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::INVALID_XML, canonical(cpl->file().get()), 50).set_cpl_id(cpl->id()).set_error("no declaration found for element 'meta:MainSoundXConfiguration'"), @@ -1683,7 +1683,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_language1) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::INVALID_LANGUAGE).set_cpl_id(cpl->id()).set_reel_index(0).set_language("badlang"), VN(VC::INVALID_LANGUAGE).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_language("wrong-andbad"), @@ -1716,7 +1716,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_language2) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::INVALID_LANGUAGE).set_cpl_id(cpl->id()).set_reel_index(0).set_language("badlang"), VN(VC::INVALID_LANGUAGE).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_language("wrong-andbad"), @@ -1770,7 +1770,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_language3) note(VC::NONE_ENCRYPTED, cpl), VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1440, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "videofoo.mxf"), cpl).set_reel_index(0).set_asset_id(picture->id()), VN(VC::INVALID_LANGUAGE).set_cpl_id(cpl->id()).set_language("this-is-wrong"), @@ -1852,7 +1852,7 @@ check_picture_size_ok (int width, int height, int frame_rate, bool three_d) std::vector expected = { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), @@ -1880,7 +1880,7 @@ check_picture_size_bad_frame_size (int width, int height, int frame_rate, bool t std::vector expected = { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), @@ -1911,7 +1911,7 @@ check_picture_size_bad_2k_frame_rate (int width, int height, int frame_rate, boo std::vector expected = { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), @@ -1942,7 +1942,7 @@ check_picture_size_bad_4k_frame_rate (int width, int height, int frame_rate, boo std::vector expected = { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), @@ -2065,7 +2065,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_closed_caption_xml_size_in_bytes) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::MISSING_SUBTITLE_START_TIME, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()), VN( @@ -2116,7 +2116,7 @@ verify_timed_text_asset_too_large (string name) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN( VC::INVALID_TIMED_TEXT_SIZE_IN_BYTES, canonical(dir / "subs.mxf") @@ -2192,7 +2192,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_subtitle_language) note(VC::NONE_ENCRYPTED, cpl), VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -2253,7 +2253,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_subtitle_languages) note(VC::NONE_ENCRYPTED, cpl), VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video0.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video1.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), @@ -2313,7 +2313,7 @@ BOOST_AUTO_TEST_CASE (verify_multiple_closed_caption_languages_allowed) note(VC::NONE_ENCRYPTED, cpl), VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::CORRECT_PICTURE_HASH, canonical(path / "video0.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::CORRECT_PICTURE_HASH, canonical(path / "video1.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), @@ -2378,7 +2378,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_subtitle_start_time) note(VC::NONE_ENCRYPTED, cpl), VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::MISSING_SUBTITLE_START_TIME, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs->id()), @@ -2440,7 +2440,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_start_time) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -2549,7 +2549,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_first_text_time) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_id), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -2574,7 +2574,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_subtitle_first_text_time) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); } @@ -2633,7 +2633,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_subtitle_first_text_time_on_second_reel) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); } @@ -2664,7 +2664,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_spacing) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::INVALID_SUBTITLE_SPACING).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_id), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -2694,7 +2694,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_subtitle_spacing) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); } @@ -2719,7 +2719,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_subtitle_duration) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::INVALID_SUBTITLE_DURATION).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_id), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -2745,7 +2745,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_subtitle_duration_bv21) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::INVALID_SUBTITLE_DURATION_BV21).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subs_id), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -2769,7 +2769,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_subtitle_duration) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); } @@ -2800,7 +2800,7 @@ BOOST_AUTO_TEST_CASE (verify_subtitle_overlapping_reel_boundary) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN( VC::MISMATCHED_TIMED_TEXT_DURATION, boost::filesystem::canonical(asset->file().get()) ).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()).set_duration(96).set_other_duration(72), @@ -2836,7 +2836,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_line_count1) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::INVALID_SUBTITLE_LINE_COUNT).set_cpl_id(cpl->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -2867,7 +2867,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_subtitle_line_count1) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); } @@ -2898,7 +2898,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_line_count2) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::INVALID_SUBTITLE_LINE_COUNT).set_cpl_id(cpl->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -2930,7 +2930,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_subtitle_line_count2) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); } @@ -2958,7 +2958,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_line_length1) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::NEARLY_INVALID_SUBTITLE_LINE_LENGTH).set_cpl_id(cpl->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -2987,7 +2987,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_line_length2) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::INVALID_SUBTITLE_LINE_LENGTH).set_cpl_id(cpl->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -3019,7 +3019,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_closed_caption_line_count1) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::INVALID_CLOSED_CAPTION_LINE_COUNT).set_cpl_id(cpl->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -3050,7 +3050,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_closed_caption_line_count2) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); } @@ -3081,7 +3081,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_closed_caption_line_count3) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::INVALID_CLOSED_CAPTION_LINE_COUNT).set_cpl_id(cpl->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -3113,7 +3113,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_closed_caption_line_count4) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); } @@ -3141,7 +3141,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_closed_caption_line_length) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); } @@ -3169,7 +3169,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_closed_caption_line_length) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::INVALID_CLOSED_CAPTION_LINE_LENGTH).set_cpl_id(cpl->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -3200,7 +3200,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_closed_caption_valign1) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); } @@ -3230,7 +3230,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_closed_caption_valign2) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::MISMATCHED_CLOSED_CAPTION_VALIGN).set_cpl_id(cpl->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -3261,7 +3261,7 @@ BOOST_AUTO_TEST_CASE (verify_incorrect_closed_caption_ordering1) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); } @@ -3291,7 +3291,7 @@ BOOST_AUTO_TEST_CASE (verify_incorrect_closed_caption_ordering2) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); } @@ -3313,7 +3313,7 @@ BOOST_AUTO_TEST_CASE (verify_incorrect_closed_caption_ordering3) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::INCORRECT_CLOSED_CAPTION_ORDERING).set_cpl_id(cpl->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); @@ -3337,7 +3337,7 @@ BOOST_AUTO_TEST_CASE (verify_incorrect_closed_caption_ordering4) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) }); } @@ -3374,7 +3374,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_sound_frame_rate) note(VC::NONE_ENCRYPTED, cpl), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "videofoo.mxf"), cpl).set_reel_index(0).set_asset_id(picture->id()), note(VC::MATCHING_CPL_HASHES, cpl), @@ -3414,7 +3414,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_cpl_annotation_text) note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), @@ -3457,7 +3457,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_cpl_annotation_text) note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::MISMATCHED_CPL_ANNOTATION_TEXT, canonical(cpl->file().get())).set_cpl_id(cpl->id()), VN( VC::MISMATCHED_CPL_HASHES, canonical(cpl->file().get()) @@ -3500,7 +3500,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_asset_duration) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(mp->id()), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::MATCHING_CPL_HASHES, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(mp->id()), VN(VC::MISMATCHED_ASSET_DURATION).set_cpl_id(cpl->id()).set_reel_index(0), @@ -3586,7 +3586,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_main_subtitle_from_some_reels) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), note(VC::MATCHING_CPL_HASHES, cpl), @@ -3613,7 +3613,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_main_subtitle_from_some_reels) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), note(VC::MATCHING_CPL_HASHES, cpl), @@ -3638,7 +3638,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_main_subtitle_from_some_reels) VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), note(VC::MATCHING_CPL_HASHES, cpl), @@ -3729,7 +3729,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_closed_caption_asset_counts) note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video2.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::MISMATCHED_CLOSED_CAPTION_ASSET_COUNTS).set_cpl_id(cpl->id()), VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id()) @@ -3753,7 +3753,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_closed_caption_asset_counts) note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video2.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), @@ -3778,7 +3778,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_closed_caption_asset_counts) note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video2.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), @@ -3833,7 +3833,7 @@ verify_text_entry_point_check(dcp::TextType type, path dir, dcp::VerificationNot note(VC::NONE_ENCRYPTED, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::MATCHING_CPL_HASHES, cpl), @@ -3921,7 +3921,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_hash) VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), @@ -3965,7 +3965,7 @@ verify_markers_test ( test_notes.push_back(note(VC::NONE_ENCRYPTED, cpl)); test_notes.push_back(VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080})); test_notes.push_back(note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("feature")); - test_notes.push_back(note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl)); + test_notes.push_back(note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text)); test_notes.push_back(VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP")); test_notes.push_back(note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id)); @@ -4082,7 +4082,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_cpl_metadata_version_number) note(VC::NONE_ENCRYPTED, cpl), VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::MISSING_CPL_METADATA_VERSION_NUMBER, cpl->file().get()).set_cpl_id(cpl->id()) @@ -4115,7 +4115,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_extension_metadata1) {}, { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -4154,7 +4154,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_extension_metadata2) {}, { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -4194,7 +4194,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata3) {}, { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -4235,7 +4235,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_extension_metadata1) {}, { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -4275,7 +4275,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_extension_metadata2) {}, { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -4316,7 +4316,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata6) {}, { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -4358,7 +4358,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata7) {}, { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -4399,7 +4399,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata8) {}, { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -4442,7 +4442,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata9) {}, { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -4495,7 +4495,7 @@ BOOST_AUTO_TEST_CASE (verify_unsigned_cpl_with_encrypted_content) note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("feature"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN( VC::MISMATCHED_CPL_HASHES, canonical(cpl_path) @@ -4542,7 +4542,7 @@ BOOST_AUTO_TEST_CASE (verify_unsigned_pkl_with_encrypted_content) note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("feature"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::MATCHING_CPL_HASHES, cpl), VN(VC::MISMATCHED_PKL_ANNOTATION_TEXT_WITH_CPL, canonical(pkl)).set_cpl_id(cpl->id()).set_pkl_id(encryption_test_pkl_id()), @@ -4587,7 +4587,7 @@ BOOST_AUTO_TEST_CASE (verify_unsigned_pkl_with_unencrypted_content) note(VC::NONE_ENCRYPTED, cpl), VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), }); @@ -4663,7 +4663,7 @@ BOOST_AUTO_TEST_CASE (verify_partially_encrypted) VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_cpl_id(cpl->id()).set_size_in_pixels({1440, 1080}), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::MATCHING_CPL_HASHES, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(mp->id()), @@ -4774,7 +4774,7 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_subtitle_resource_id) note(VC::NONE_ENCRYPTED, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::MATCHING_CPL_HASHES, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN( @@ -4851,7 +4851,7 @@ BOOST_AUTO_TEST_CASE (verify_incorrect_timed_text_id) note(VC::NONE_ENCRYPTED, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::MATCHING_CPL_HASHES, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN( @@ -4930,7 +4930,7 @@ BOOST_AUTO_TEST_CASE (verify_unexpected_things_in_main_markers) VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN( VC::MISMATCHED_CPL_HASHES, canonical(find_cpl(dir)) ).set_cpl_id(cpl->id()).set_reference_hash(calc.old_hash()).set_calculated_hash(calc.new_hash()), @@ -4968,7 +4968,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_content_kind) VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN( @@ -5005,7 +5005,7 @@ BOOST_AUTO_TEST_CASE(verify_valid_content_kind) {}, { note(VC::NONE_ENCRYPTED, cpl), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -5049,7 +5049,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_main_picture_active_area_1) { note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -5098,7 +5098,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_main_picture_active_area_2) { note(VC::NONE_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), @@ -5148,7 +5148,7 @@ BOOST_AUTO_TEST_CASE(verify_duplicate_pkl_asset_ids) VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::NONE_ENCRYPTED, cpl), VN(VC::DUPLICATE_ASSET_ID_IN_PKL, canonical(find_pkl(dir))).set_pkl_id(pkl.id()), }); @@ -5185,7 +5185,7 @@ BOOST_AUTO_TEST_CASE(verify_duplicate_assetmap_asset_ids) VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, canonical(cpl->file().get())).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::NONE_ENCRYPTED, cpl), VN( VC::DUPLICATE_ASSET_ID_IN_ASSETMAP, canonical(find_asset_map(dir)) @@ -5282,7 +5282,7 @@ BOOST_AUTO_TEST_CASE(verify_mismatched_sound_channel_counts) note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::CORRECT_PICTURE_HASH, canonical(path / "video2.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video2.mxf"), cpl).set_reel_index(1).set_asset_id(picture_ids[1]), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN( VC::MISMATCHED_SOUND_CHANNEL_COUNTS, canonical(find_file(path, "audio2")) ).set_cpl_id(cpl->id()).set_reel_index(1).set_asset_id(sound_ids[1]) @@ -5347,7 +5347,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_main_sound_configuration) note(VC::CORRECT_PICTURE_HASH, canonical(path / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(mp->id()), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video1.mxf"), cpl).set_reel_index(0).set_asset_id(mp->id()), VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN( VC::INVALID_MAIN_SOUND_CONFIGURATION, canonical(find_cpl(path)) @@ -5413,7 +5413,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_tile_part_size) note(VC::NONE_ENCRYPTED, cpl), VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::CORRECT_PICTURE_HASH, canonical(path / "video.mxf"), cpl).set_reel_index(0).set_asset_id(mp->id()), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), @@ -5475,7 +5475,7 @@ BOOST_AUTO_TEST_CASE(verify_too_many_subtitle_namespaces) canonical(dir / "j2c_42b34dcd-caa5-4c7b-aa0f-66a590947ba1.mxf"), cpl ).set_reel_index(0).set_asset_id("42b34dcd-caa5-4c7b-aa0f-66a590947ba1"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::MISSING_FFEC_IN_FEATURE).set_cpl_id(cpl->id()), VN(VC::MISSING_FFMC_IN_FEATURE).set_cpl_id(cpl->id()), VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id("315de731-1173-484c-9a35-bdacf5a9d99d"), @@ -5510,7 +5510,7 @@ BOOST_AUTO_TEST_CASE(verify_missing_load_font_for_font) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), { VC::INVALID_STANDARD }, VN(VC::MISSING_LOAD_FONT_FOR_FONT).set_load_font_id("theFontId").set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(asset->id()) }); @@ -5572,7 +5572,7 @@ BOOST_AUTO_TEST_CASE(verify_missing_load_font) VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0).set_asset_id(picture_id), VN(VC::MISSING_LOAD_FONT).set_asset_id(reel_subs->id()).set_cpl_id(cpl->id()).set_reel_index(0) @@ -5611,7 +5611,7 @@ BOOST_AUTO_TEST_CASE(verify_spots_wrong_asset) VN(VC::VALID_MAIN_PICTURE_ACTIVE_AREA, cpl->file().get()).set_cpl_id(cpl->id()).set_size_in_pixels({1998, 1080}), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("A Test DCP"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::MISMATCHED_ASSET_MAP_ID).set_asset_id(asset_1).set_other_asset_id(asset_2) }); } @@ -5673,7 +5673,7 @@ BOOST_AUTO_TEST_CASE(verify_encrypted_smpte_dcp) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), note(VC::ALL_ENCRYPTED, cpl), VN(VC::MISSING_CPL_METADATA, canonical(cpl_file)).set_cpl_id(cpl->id()) @@ -5704,7 +5704,7 @@ BOOST_AUTO_TEST_CASE(verify_encrypted_smpte_dcp_without_kdm) note(VC::MATCHING_CPL_HASHES, cpl), note(VC::ALL_ENCRYPTED, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("trailer"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("hello"), VN(VC::MISSED_CHECK_OF_ENCRYPTED).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subtitle_id), VN(VC::MISSED_CHECK_OF_ENCRYPTED).set_cpl_id(cpl->id()).set_reel_index(0).set_asset_id(subtitle_id), @@ -5727,7 +5727,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_sound_bit_depth) note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl), note(VC::MATCHING_CPL_HASHES, cpl), note(VC::VALID_CONTENT_KIND, cpl).set_content_kind("Advertisement"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl).set_content_version(cpl->content_version()->label_text), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpl->id()).set_annotation_text("204794_Kitex_Scoobee_Day_Bags_30_Sec_Malayalam_220524_RADQR"), note(VC::NONE_ENCRYPTED, cpl), note(VC::CORRECT_PICTURE_HASH, canonical(dir / "Video.mxf"), cpl).set_reel_index(0).set_asset_id("fd4796c2-9c84-454c-91f4-13ad127cea8a"), @@ -5888,8 +5888,8 @@ BOOST_AUTO_TEST_CASE(verify_dcp_with_two_cpls) note(VC::NONE_ENCRYPTED, cpls[1]), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpls[0]->id()).set_annotation_text("hello"), VN(VC::VALID_CPL_ANNOTATION_TEXT).set_cpl_id(cpls[1]->id()).set_annotation_text("hello"), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpls[0]->content_version()->label_text, cpls[0]), - note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpls[1]->content_version()->label_text, cpls[1]), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpls[0]).set_content_version(cpls[0]->content_version()->label_text), + note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpls[1]).set_content_version(cpls[1]->content_version()->label_text), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(combined / "videofoo.mxf"), cpls[0]).set_reel_index(0).set_asset_id(picture_ids[0]), note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(combined / "videofoo0.mxf"), cpls[1]).set_reel_index(0).set_asset_id(picture_ids[1]), note(VC::CORRECT_PICTURE_HASH, canonical(combined / "videofoo.mxf"), cpls[0]).set_reel_index(0).set_asset_id(picture_ids[0]), -- cgit v1.2.3 From 7c9d62fc64ca6d66a34063d2d01988d800b770c8 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 31 Mar 2026 23:38:46 +0200 Subject: INVALID_{CPL,PKL}_NAMESPACE: note -> xml_namespace. --- src/cpl.cc | 6 +----- src/pkl.cc | 6 +----- src/verify.cc | 4 ++-- src/verify.h | 4 ++-- 4 files changed, 6 insertions(+), 14 deletions(-) diff --git a/src/cpl.cc b/src/cpl.cc index 0bc333c2..6ef529c7 100644 --- a/src/cpl.cc +++ b/src/cpl.cc @@ -127,11 +127,7 @@ CPL::CPL(boost::filesystem::path file, vector* notes) } else { if (notes) { notes->push_back( - dcp::VerificationNote( - dcp::VerificationNote::Code::INVALID_CPL_NAMESPACE, - f.namespace_uri(), - file - ) + dcp::VerificationNote(dcp::VerificationNote::Code::INVALID_CPL_NAMESPACE, file).set_xml_namespace(f.namespace_uri()) ); } _standard = Standard::INTEROP; diff --git a/src/pkl.cc b/src/pkl.cc index 3b154316..0e36dbe6 100644 --- a/src/pkl.cc +++ b/src/pkl.cc @@ -80,11 +80,7 @@ PKL::PKL(boost::filesystem::path file, vector* notes) _standard = Standard::SMPTE; if (notes) { notes->push_back( - dcp::VerificationNote( - dcp::VerificationNote::Code::INVALID_PKL_NAMESPACE, - pkl.namespace_uri(), - file - ) + dcp::VerificationNote(dcp::VerificationNote::Code::INVALID_PKL_NAMESPACE, file).set_xml_namespace(pkl.namespace_uri()) ); } } else { diff --git a/src/verify.cc b/src/verify.cc index 08b85d3d..40087346 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -2211,11 +2211,11 @@ dcp::note_to_string(VerificationNote note, function process_str case VerificationNote::Code::VALID_CONTENT_VERSION_LABEL_TEXT: return compose("CPL has valid %1", *note.content_version()); case VerificationNote::Code::INVALID_CPL_NAMESPACE: - return compose("The namespace %1 in CPL %2 is invalid", note.note().get(), note.cpl_id().get()); + return compose("The namespace %1 in CPL %2 is invalid", *note.xml_namespace(), note.cpl_id().get()); case VerificationNote::Code::MISSING_CPL_CONTENT_VERSION: return compose("The CPL %1 has no tag", note.cpl_id().get()); case VerificationNote::Code::INVALID_PKL_NAMESPACE: - return compose("The namespace %1 in PKL %2 is invalid", note.note().get(), note.file()->filename()); + return compose("The namespace %1 in PKL %2 is invalid", *note.xml_namespace(), note.file()->filename()); } return ""; diff --git a/src/verify.h b/src/verify.h index 96945ca3..5f678bae 100644 --- a/src/verify.h +++ b/src/verify.h @@ -584,7 +584,7 @@ public: */ VALID_CONTENT_VERSION_LABEL_TEXT, /** The CPL namespace is not valid - * note contains the invalid namespace + * xml_namespace contains the invalid namespace * file contains the CPL filename */ INVALID_CPL_NAMESPACE, @@ -593,7 +593,7 @@ public: */ MISSING_CPL_CONTENT_VERSION, /** The PKL namespace is not valid - * note contains the invalid namespace + * xml_namespace contains the invalid namespace * file contains the PKL filename */ INVALID_PKL_NAMESPACE, -- cgit v1.2.3 From c518cd441ca263444d196b794a293a384a5d34fc Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 1 Apr 2026 00:11:35 +0200 Subject: INVALID_JPEG2000_TILE_PARTS_FOR_{2,4}K: note -> tile_parts. --- src/verify.h | 4 ++-- src/verify_j2k.cc | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/verify.h b/src/verify.h index 5f678bae..43fb0b09 100644 --- a/src/verify.h +++ b/src/verify.h @@ -441,11 +441,11 @@ public: /** A POC marker was found outside the main head [Bv2.1_10.2.1] */ INVALID_JPEG2000_POC_MARKER_LOCATION, /** Invalid number of tile parts for 2K JPEG2000 stream (should be 3) [Bv2.1_10.2.1] - * note contains the number of tile parts + * tile_parts contains the number of tile parts */ INVALID_JPEG2000_TILE_PARTS_FOR_2K, /** Invalid number of tile parts for 4K JPEG2000 stream (should be 6) [Bv2.1_10.2.1] - * note contains the number of tile parts + * tile_parts contains the number of tile parts */ INVALID_JPEG2000_TILE_PARTS_FOR_4K, /** Invalid _Rsiz_ (capabilities) value in 2K JPEG2000 stream. diff --git a/src/verify_j2k.cc b/src/verify_j2k.cc index b2bc876f..f7f91178 100644 --- a/src/verify_j2k.cc +++ b/src/verify_j2k.cc @@ -217,10 +217,10 @@ dcp::verify_j2k(shared_ptr j2k, int start_index, int frame_index, in auto const tile_part_index = get_8(); auto tile_parts = get_8(); if (!fourk && tile_parts != 3) { - notes.push_back({ VerificationNote::Code::INVALID_JPEG2000_TILE_PARTS_FOR_2K, fmt::to_string(tile_parts) }); + notes.push_back(VerificationNote(VerificationNote::Code::INVALID_JPEG2000_TILE_PARTS_FOR_2K).set_tile_parts(tile_parts)); } if (fourk && tile_parts != 6) { - notes.push_back({ VerificationNote::Code::INVALID_JPEG2000_TILE_PARTS_FOR_4K, fmt::to_string(tile_parts) }); + notes.push_back(VerificationNote(VerificationNote::Code::INVALID_JPEG2000_TILE_PARTS_FOR_4K).set_tile_parts(tile_parts)); } if (tile_part_length > max_tile_part_size) { VerificationNote note{VerificationNote::Code::INVALID_JPEG2000_TILE_PART_SIZE}; -- cgit v1.2.3 From a82a17578812a41232d69ea10d88b19004418583 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 1 Apr 2026 00:15:43 +0200 Subject: Fix some CPL ID comments. --- src/verify.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/verify.h b/src/verify.h index 43fb0b09..44bb94a6 100644 --- a/src/verify.h +++ b/src/verify.h @@ -109,7 +109,7 @@ public: /** The hash of a CPL in the PKL agrees with the CPL file */ MATCHING_CPL_HASHES, /** The hash of the CPL in the PKL does not agree with the CPL file - * note contains CPL ID + * cpl_id contains CPL ID * file contains CPL filename * calculated_hash contains current hash of the CPL * reference_hash contains the hash written in the PKL @@ -298,12 +298,12 @@ public: */ INVALID_SOUND_BIT_DEPTH, /** The CPL has no __ tag [Bv2.1_8.1] - * note contains the CPL ID + * cpl_id contains the CPL ID * file contains the CPL filename */ MISSING_CPL_ANNOTATION_TEXT, /** The __ is not the same as the __ [Bv2.1_8.1] - * note contains the CPL ID + * cpl_id contains the CPL ID * file contains the CPL filename */ MISMATCHED_CPL_ANNOTATION_TEXT, @@ -357,17 +357,17 @@ public: */ INCORRECT_LFOC, /** There must be a __ - * note contains the CPL ID + * cpl_id contains the CPL ID * file contains the CPL filename */ MISSING_CPL_METADATA, /** CPL metadata should contain __ of 1, at least - * note contains the CPL ID + * cpl_id contains the CPL ID * file contains the CPL filename */ MISSING_CPL_METADATA_VERSION_NUMBER, /** There must be an __ in __ [Bv2.1_8.6.3] - * note contains the CPL ID + * cpl_id contains the CPL ID * file contains the CPL filename */ MISSING_EXTENSION_METADATA, @@ -377,7 +377,7 @@ public: */ INVALID_EXTENSION_METADATA, /** A CPL containing encrypted content is not signed [Bv2.1_8.7] - * note contains the CPL ID + * cpl_id contains the CPL ID * file contains the CPL filename */ UNSIGNED_CPL_WITH_ENCRYPTED_CONTENT, @@ -575,7 +575,7 @@ public: */ MISMATCHED_ASSET_MAP_ID, /** The inside a __ is empty - * note contains the CPL ID + * cpl_id contains the CPL ID * file contains the CPL filename */ EMPTY_CONTENT_VERSION_LABEL_TEXT, -- cgit v1.2.3 From a0814a2e44e56d0378c6a47ca9c741de5cfe6356 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 1 Apr 2026 00:27:34 +0200 Subject: Remove VerificationNote::note. --- src/cpl.cc | 8 ++------ src/verify.cc | 8 -------- src/verify.h | 26 -------------------------- test/verify_test.cc | 11 +---------- 4 files changed, 3 insertions(+), 50 deletions(-) diff --git a/src/cpl.cc b/src/cpl.cc index 6ef529c7..cac3c2eb 100644 --- a/src/cpl.cc +++ b/src/cpl.cc @@ -155,12 +155,8 @@ CPL::CPL(boost::filesystem::path file, vector* notes) /* ContentVersion is required in SMPTE */ if (notes) { notes->push_back( - dcp::VerificationNote( - dcp::VerificationNote::Code::MISSING_CPL_CONTENT_VERSION, - _id, - file - ) - ); + dcp::VerificationNote(dcp::VerificationNote::Code::MISSING_CPL_CONTENT_VERSION, file).set_cpl_id(_id) + ); } } auto rating_list = f.node_child("RatingList"); diff --git a/src/verify.cc b/src/verify.cc index 40087346..ac12800b 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -2361,7 +2361,6 @@ dcp::operator== (dcp::VerificationNote const& a, dcp::VerificationNote const& b) { return a.type() == b.type() && a.code() == b.code() && - a.note() == b.note() && a.file() == b.file() && a.line() == b.line() && a.frame() == b.frame() && @@ -2469,10 +2468,6 @@ dcp::operator< (dcp::VerificationNote const& a, dcp::VerificationNote const& b) return a.code() < b.code(); } - if (a.note() != b.note()) { - return less_than_optional(a.note(), b.note()); - } - if (a.file() != b.file()) { return less_than_optional(a.file(), b.file()); } @@ -2621,9 +2616,6 @@ std::ostream& dcp::operator<< (std::ostream& s, dcp::VerificationNote const& note) { s << note_to_string (note); - if (note.note()) { - s << " [" << note.note().get() << "]"; - } if (note.file()) { s << " [" << note.file().get() << "]"; } diff --git a/src/verify.h b/src/verify.h index 44bb94a6..cb9801ef 100644 --- a/src/verify.h +++ b/src/verify.h @@ -603,25 +603,12 @@ public: : _code(code) {} - VerificationNote(Code code, std::string note) - : _code(code) - { - _data[Data::NOTE] = note; - } - VerificationNote(Code code, boost::filesystem::path file) : _code(code) { _data[Data::FILE] = file; } - VerificationNote(Code code, std::string note, boost::filesystem::path file) - : _code(code) - { - _data[Data::NOTE] = note; - _data[Data::FILE] = file; - } - VerificationNote(Code code, boost::filesystem::path file, uint64_t line) : _code (code) { @@ -629,14 +616,6 @@ public: _data[Data::LINE] = line; } - VerificationNote(Code code, std::string note, boost::filesystem::path file, uint64_t line) - : _code (code) - { - _data[Data::NOTE] = note; - _data[Data::FILE] = file; - _data[Data::LINE] = line; - } - Type type() const; Code code () const { @@ -668,7 +647,6 @@ private: LINE, ///< error line number within the FILE LOAD_FONT_ID, MAIN_PICTURE_ACTIVE_AREA, - NOTE, ///< further information about the error OTHER_ASSET_ID, OTHER_DURATION, PKL_ID, @@ -695,10 +673,6 @@ private: } public: - boost::optional note () const { - return data(Data::NOTE); - } - boost::optional file () const { return data(Data::FILE); } diff --git a/test/verify_test.cc b/test/verify_test.cc index 7f32c438..e3cff85a 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -242,10 +242,9 @@ string to_string(dcp::VerificationNote const& note) { string s = note_to_string(note) + dcp::String::compose( - "\n [%1 %2 %3 %4 %5 %6 %7 ", + "\n [%1 %2 %3 %4 %5 %6 ", static_cast(note.type()), static_cast(note.code()), - note.note().get_value_or(""), note.file().get_value_or(""), note.line().get_value_or(0), note.frame().get_value_or(0), @@ -418,14 +417,6 @@ note(dcp::VerificationNote::Code code, shared_ptr cpl) } -static -dcp::VerificationNote -note(dcp::VerificationNote::Code code, string note, shared_ptr cpl) -{ - return dcp::VerificationNote(code, note).set_cpl_id(cpl->id()); -} - - static dcp::VerificationNote note(dcp::VerificationNote::Code code, boost::filesystem::path path, shared_ptr cpl) -- cgit v1.2.3