notes.push_back (
VerificationNote(
VerificationNote::VERIFY_ERROR,
- VerificationNote::XML_VALIDATION_ERROR,
+ VerificationNote::INVALID_XML,
i.message(),
boost::trim_copy(i.public_id() + " " + i.system_id()),
i.line()
try {
dcp::LanguageTag test (tag);
} catch (dcp::LanguageTagError &) {
- notes.push_back (VerificationNote(VerificationNote::VERIFY_BV21_ERROR, VerificationNote::BAD_LANGUAGE, tag));
+ notes.push_back (VerificationNote(VerificationNote::VERIFY_BV21_ERROR, VerificationNote::INVALID_LANGUAGE, tag));
}
}
case VERIFY_ASSET_RESULT_BAD:
notes.push_back (
VerificationNote(
- VerificationNote::VERIFY_ERROR, VerificationNote::PICTURE_HASH_INCORRECT, file
+ VerificationNote::VERIFY_ERROR, VerificationNote::INCORRECT_PICTURE_HASH, file
)
);
break;
case VERIFY_ASSET_RESULT_CPL_PKL_DIFFER:
notes.push_back (
VerificationNote(
- VerificationNote::VERIFY_ERROR, VerificationNote::PKL_CPL_PICTURE_HASHES_DIFFER, file
+ VerificationNote::VERIFY_ERROR, VerificationNote::MISMATCHED_PICTURE_HASHES, file
)
);
break;
case VERIFY_PICTURE_ASSET_RESULT_BAD:
notes.push_back (
VerificationNote(
- VerificationNote::VERIFY_ERROR, VerificationNote::PICTURE_FRAME_TOO_LARGE_IN_BYTES, file
+ VerificationNote::VERIFY_ERROR, VerificationNote::INVALID_PICTURE_FRAME_SIZE_IN_BYTES, file
)
);
break;
case VERIFY_PICTURE_ASSET_RESULT_FRAME_NEARLY_TOO_LARGE:
notes.push_back (
VerificationNote(
- VerificationNote::VERIFY_WARNING, VerificationNote::PICTURE_FRAME_NEARLY_TOO_LARGE_IN_BYTES, file
+ VerificationNote::VERIFY_WARNING, VerificationNote::NEARLY_INVALID_PICTURE_FRAME_SIZE_IN_BYTES, file
)
);
break;
notes.push_back(
VerificationNote(
VerificationNote::VERIFY_BV21_ERROR,
- VerificationNote::PICTURE_ASSET_INVALID_SIZE_IN_PIXELS,
+ VerificationNote::INVALID_PICTURE_SIZE_IN_PIXELS,
String::compose("%1x%2", asset->size().width, asset->size().height),
file
)
notes.push_back(
VerificationNote(
VerificationNote::VERIFY_BV21_ERROR,
- VerificationNote::PICTURE_ASSET_INVALID_FRAME_RATE_FOR_2K,
+ VerificationNote::INVALID_PICTURE_FRAME_RATE_FOR_2K,
String::compose("%1/%2", asset->edit_rate().numerator, asset->edit_rate().denominator),
file
)
notes.push_back(
VerificationNote(
VerificationNote::VERIFY_BV21_ERROR,
- VerificationNote::PICTURE_ASSET_INVALID_FRAME_RATE_FOR_4K,
+ VerificationNote::INVALID_PICTURE_FRAME_RATE_FOR_4K,
String::compose("%1/%2", asset->edit_rate().numerator, asset->edit_rate().denominator),
file
)
notes.push_back(
VerificationNote(
VerificationNote::VERIFY_BV21_ERROR,
- VerificationNote::PICTURE_ASSET_4K_3D,
+ VerificationNote::INVALID_PICTURE_ASSET_RESOLUTION_FOR_3D,
file
)
);
case VERIFY_ASSET_RESULT_BAD:
notes.push_back (
VerificationNote(
- VerificationNote::VERIFY_ERROR, VerificationNote::SOUND_HASH_INCORRECT, *asset->file()
+ VerificationNote::VERIFY_ERROR, VerificationNote::INCORRECT_SOUND_HASH, *asset->file()
)
);
break;
case VERIFY_ASSET_RESULT_CPL_PKL_DIFFER:
notes.push_back (
VerificationNote(
- VerificationNote::VERIFY_ERROR, VerificationNote::PKL_CPL_SOUND_HASHES_DIFFER, *asset->file()
+ VerificationNote::VERIFY_ERROR, VerificationNote::MISMATCHED_SOUND_HASHES, *asset->file()
)
);
break;
if (!reel_asset->entry_point()) {
notes.push_back ({VerificationNote::VERIFY_BV21_ERROR, VerificationNote::MISSING_SUBTITLE_ENTRY_POINT });
} else if (reel_asset->entry_point().get()) {
- notes.push_back ({VerificationNote::VERIFY_BV21_ERROR, VerificationNote::SUBTITLE_ENTRY_POINT_NON_ZERO });
+ notes.push_back ({VerificationNote::VERIFY_BV21_ERROR, VerificationNote::INCORRECT_SUBTITLE_ENTRY_POINT });
}
}
if (!reel_asset->entry_point()) {
notes.push_back ({VerificationNote::VERIFY_BV21_ERROR, VerificationNote::MISSING_CLOSED_CAPTION_ENTRY_POINT });
} else if (reel_asset->entry_point().get()) {
- notes.push_back ({VerificationNote::VERIFY_BV21_ERROR, VerificationNote::CLOSED_CAPTION_ENTRY_POINT_NON_ZERO });
+ notes.push_back ({VerificationNote::VERIFY_BV21_ERROR, VerificationNote::INCORRECT_CLOSED_CAPTION_ENTRY_POINT });
}
}
} else if (state.subtitle_language != language) {
notes.push_back (
VerificationNote(
- VerificationNote::VERIFY_BV21_ERROR, VerificationNote::SUBTITLE_LANGUAGES_DIFFER, *asset->file()
+ VerificationNote::VERIFY_BV21_ERROR, VerificationNote::MISMATCHED_SUBTITLE_LANGUAGES, *asset->file()
)
);
}
if (boost::filesystem::file_size(*asset->file()) > 115 * 1024 * 1024) {
notes.push_back (
VerificationNote(
- VerificationNote::VERIFY_BV21_ERROR, VerificationNote::TIMED_TEXT_ASSET_TOO_LARGE_IN_BYTES, *asset->file()
+ VerificationNote::VERIFY_BV21_ERROR, VerificationNote::INVALID_TIMED_TEXT_SIZE_IN_BYTES, *asset->file()
)
);
}
if (total_size > 10 * 1024 * 1024) {
notes.push_back (
VerificationNote(
- VerificationNote::VERIFY_BV21_ERROR, VerificationNote::TIMED_TEXT_FONTS_TOO_LARGE_IN_BYTES, *asset->file()
+ VerificationNote::VERIFY_BV21_ERROR, VerificationNote::INVALID_TIMED_TEXT_FONT_SIZE_IN_BYTES, *asset->file()
)
);
}
} else if (asset->start_time() != dcp::Time()) {
notes.push_back (
VerificationNote(
- VerificationNote::VERIFY_BV21_ERROR, VerificationNote::SUBTITLE_START_TIME_NON_ZERO, *asset->file())
+ VerificationNote::VERIFY_BV21_ERROR, VerificationNote::INVALID_SUBTITLE_START_TIME, *asset->file())
);
}
}
if (asset->raw_xml().size() > 256 * 1024) {
notes.push_back (
VerificationNote(
- VerificationNote::VERIFY_BV21_ERROR, VerificationNote::CLOSED_CAPTION_XML_TOO_LARGE_IN_BYTES, *asset->file()
+ VerificationNote::VERIFY_BV21_ERROR, VerificationNote::INVALID_CLOSED_CAPTION_XML_SIZE_IN_BYTES, *asset->file()
)
);
}
if (too_early) {
notes.push_back(
VerificationNote(
- VerificationNote::VERIFY_WARNING, VerificationNote::FIRST_TEXT_TOO_EARLY
+ VerificationNote::VERIFY_WARNING, VerificationNote::INVALID_SUBTITLE_FIRST_TEXT_TIME
)
);
}
if (too_short) {
notes.push_back (
VerificationNote(
- VerificationNote::VERIFY_WARNING, VerificationNote::SUBTITLE_TOO_SHORT
+ VerificationNote::VERIFY_WARNING, VerificationNote::INVALID_SUBTITLE_DURATION
)
);
}
if (too_close) {
notes.push_back (
VerificationNote(
- VerificationNote::VERIFY_WARNING, VerificationNote::SUBTITLE_TOO_CLOSE
+ VerificationNote::VERIFY_WARNING, VerificationNote::INVALID_SUBTITLE_SPACING
)
);
}
try {
dcp->read (¬es);
} catch (ReadError& e) {
- notes.push_back (VerificationNote(VerificationNote::VERIFY_ERROR, VerificationNote::GENERAL_READ, string(e.what())));
+ notes.push_back (VerificationNote(VerificationNote::VERIFY_ERROR, VerificationNote::FAILED_READ, string(e.what())));
} catch (XMLError& e) {
- notes.push_back (VerificationNote(VerificationNote::VERIFY_ERROR, VerificationNote::GENERAL_READ, string(e.what())));
+ notes.push_back (VerificationNote(VerificationNote::VERIFY_ERROR, VerificationNote::FAILED_READ, string(e.what())));
} catch (MXFFileError& e) {
- notes.push_back (VerificationNote(VerificationNote::VERIFY_ERROR, VerificationNote::GENERAL_READ, string(e.what())));
+ notes.push_back (VerificationNote(VerificationNote::VERIFY_ERROR, VerificationNote::FAILED_READ, string(e.what())));
} catch (cxml::Error& e) {
- notes.push_back (VerificationNote(VerificationNote::VERIFY_ERROR, VerificationNote::GENERAL_READ, string(e.what())));
+ notes.push_back (VerificationNote(VerificationNote::VERIFY_ERROR, VerificationNote::FAILED_READ, string(e.what())));
}
if (dcp->standard() != dcp::SMPTE) {
- notes.push_back (VerificationNote(VerificationNote::VERIFY_BV21_ERROR, VerificationNote::NOT_SMPTE));
+ notes.push_back (VerificationNote(VerificationNote::VERIFY_BV21_ERROR, VerificationNote::INVALID_STANDARD));
}
for (auto cpl: dcp->cpls()) {
LanguageTag::RegionSubtag test (terr);
} catch (...) {
if (terr != "001") {
- notes.push_back ({VerificationNote::VERIFY_BV21_ERROR, VerificationNote::BAD_LANGUAGE, terr});
+ notes.push_back ({VerificationNote::VERIFY_BV21_ERROR, VerificationNote::INVALID_LANGUAGE, terr});
}
}
}
if (dcp->standard() == dcp::SMPTE) {
if (!cpl->annotation_text()) {
- notes.push_back (VerificationNote(VerificationNote::VERIFY_BV21_ERROR, VerificationNote::MISSING_ANNOTATION_TEXT_IN_CPL));
+ notes.push_back (VerificationNote(VerificationNote::VERIFY_BV21_ERROR, VerificationNote::MISSING_CPL_ANNOTATION_TEXT));
} else if (cpl->annotation_text().get() != cpl->content_title_text()) {
- notes.push_back (VerificationNote(VerificationNote::VERIFY_WARNING, VerificationNote::CPL_ANNOTATION_TEXT_DIFFERS_FROM_CONTENT_TITLE_TEXT));
+ notes.push_back (VerificationNote(VerificationNote::VERIFY_WARNING, VerificationNote::MISMATCHED_CPL_ANNOTATION_TEXT));
}
}
/* Check that the CPL's hash corresponds to the PKL */
optional<string> h = i->hash(cpl->id());
if (h && make_digest(ArrayData(*cpl->file())) != *h) {
- notes.push_back (VerificationNote(VerificationNote::VERIFY_ERROR, VerificationNote::CPL_HASH_INCORRECT));
+ notes.push_back (VerificationNote(VerificationNote::VERIFY_ERROR, VerificationNote::MISMATCHED_CPL_HASHES));
}
/* Check that any PKL with a single CPL has its AnnotationText the same as the CPL's ContentTitleText */
}
if (required_annotation_text && i->annotation_text() != required_annotation_text) {
- notes.push_back ({VerificationNote::VERIFY_BV21_ERROR, VerificationNote::PKL_ANNOTATION_TEXT_DOES_NOT_MATCH_CPL_CONTENT_TITLE_TEXT, i->file().get()});
+ notes.push_back ({VerificationNote::VERIFY_BV21_ERROR, VerificationNote::UNSIGNED_PKL_WITH_ENCRYPTED_CONTENT, i->file().get()});
}
}
for (auto i: reel->assets()) {
if (i->duration() && (i->duration().get() * i->edit_rate().denominator / i->edit_rate().numerator) < 1) {
- notes.push_back (VerificationNote(VerificationNote::VERIFY_ERROR, VerificationNote::DURATION_TOO_SMALL, i->id()));
+ notes.push_back (VerificationNote(VerificationNote::VERIFY_ERROR, VerificationNote::INVALID_DURATION, i->id()));
}
if ((i->intrinsic_duration() * i->edit_rate().denominator / i->edit_rate().numerator) < 1) {
- notes.push_back (VerificationNote(VerificationNote::VERIFY_ERROR, VerificationNote::INTRINSIC_DURATION_TOO_SMALL, i->id()));
+ notes.push_back (VerificationNote(VerificationNote::VERIFY_ERROR, VerificationNote::INVALID_INTRINSIC_DURATION, i->id()));
}
auto mxf = dynamic_pointer_cast<ReelMXF>(i);
if (mxf && !mxf->hash()) {
if (dcp->standard() == dcp::SMPTE) {
if (have_main_subtitle && have_no_main_subtitle) {
- notes.push_back ({VerificationNote::VERIFY_BV21_ERROR, VerificationNote::MAIN_SUBTITLE_NOT_IN_ALL_REELS});
+ notes.push_back ({VerificationNote::VERIFY_BV21_ERROR, VerificationNote::MISSING_MAIN_SUBTITLE_FROM_SOME_REELS});
}
if (fewest_closed_captions != most_closed_captions) {
- notes.push_back ({VerificationNote::VERIFY_BV21_ERROR, VerificationNote::CLOSED_CAPTION_ASSET_COUNTS_DIFFER});
+ notes.push_back ({VerificationNote::VERIFY_BV21_ERROR, VerificationNote::MISMATCHED_CLOSED_CAPTION_ASSET_COUNTS});
}
if (cpl->content_kind() == FEATURE) {
}
if (result.line_count_exceeded) {
- notes.push_back (VerificationNote(VerificationNote::VERIFY_WARNING, VerificationNote::TOO_MANY_SUBTITLE_LINES));
+ notes.push_back (VerificationNote(VerificationNote::VERIFY_WARNING, VerificationNote::INVALID_SUBTITLE_LINE_COUNT));
}
if (result.error_length_exceeded) {
- notes.push_back (VerificationNote(VerificationNote::VERIFY_WARNING, VerificationNote::SUBTITLE_LINE_TOO_LONG));
+ notes.push_back (VerificationNote(VerificationNote::VERIFY_WARNING, VerificationNote::INVALID_SUBTITLE_LINE_LENGTH));
} else if (result.warning_length_exceeded) {
- notes.push_back (VerificationNote(VerificationNote::VERIFY_WARNING, VerificationNote::SUBTITLE_LINE_LONGER_THAN_RECOMMENDED));
+ notes.push_back (VerificationNote(VerificationNote::VERIFY_WARNING, VerificationNote::NEARLY_INVALID_SUBTITLE_LINE_LENGTH));
}
result = LinesCharactersResult();
}
if (result.line_count_exceeded) {
- notes.push_back (VerificationNote(VerificationNote::VERIFY_BV21_ERROR, VerificationNote::TOO_MANY_CLOSED_CAPTION_LINES));
+ notes.push_back (VerificationNote(VerificationNote::VERIFY_BV21_ERROR, VerificationNote::INVALID_CLOSED_CAPTION_LINE_COUNT));
}
if (result.error_length_exceeded) {
- notes.push_back (VerificationNote(VerificationNote::VERIFY_BV21_ERROR, VerificationNote::CLOSED_CAPTION_LINE_TOO_LONG));
+ notes.push_back (VerificationNote(VerificationNote::VERIFY_BV21_ERROR, VerificationNote::INVALID_CLOSED_CAPTION_LINE_LENGTH));
}
if (!cpl->full_content_title_text()) {
DCP_ASSERT (cpl->file());
doc.read_file (cpl->file().get());
if (!doc.optional_node_child("Signature")) {
- notes.push_back ({VerificationNote::VERIFY_BV21_ERROR, VerificationNote::CPL_WITH_ENCRYPTED_CONTENT_NOT_SIGNED, cpl->file().get()});
+ notes.push_back ({VerificationNote::VERIFY_BV21_ERROR, VerificationNote::UNSIGNED_CPL_WITH_ENCRYPTED_CONTENT, cpl->file().get()});
}
}
}
cxml::Document doc ("PackingList");
doc.read_file (pkl->file().get());
if (!doc.optional_node_child("Signature")) {
- notes.push_back ({VerificationNote::VERIFY_BV21_ERROR, VerificationNote::PKL_WITH_ENCRYPTED_CONTENT_NOT_SIGNED, pkl->file().get()});
+ notes.push_back ({VerificationNote::VERIFY_BV21_ERROR, VerificationNote::UNSIGNED_PKL_WITH_ENCRYPTED_CONTENT, pkl->file().get()});
}
}
}
dcp::note_to_string (dcp::VerificationNote note)
{
switch (note.code()) {
- case dcp::VerificationNote::GENERAL_READ:
+ case dcp::VerificationNote::FAILED_READ:
return *note.note();
- case dcp::VerificationNote::CPL_HASH_INCORRECT:
+ case dcp::VerificationNote::MISMATCHED_CPL_HASHES:
return "The hash of the CPL in the PKL does not agree with the CPL file.";
case dcp::VerificationNote::INVALID_PICTURE_FRAME_RATE:
return "The picture in a reel has an invalid frame rate.";
- case dcp::VerificationNote::PICTURE_HASH_INCORRECT:
+ case dcp::VerificationNote::INCORRECT_PICTURE_HASH:
return dcp::String::compose("The hash of the picture asset %1 does not agree with the PKL file.", note.file()->filename());
- case dcp::VerificationNote::PKL_CPL_PICTURE_HASHES_DIFFER:
+ case dcp::VerificationNote::MISMATCHED_PICTURE_HASHES:
return dcp::String::compose("The PKL and CPL hashes differ for the picture asset %1.", note.file()->filename());
- case dcp::VerificationNote::SOUND_HASH_INCORRECT:
+ case dcp::VerificationNote::INCORRECT_SOUND_HASH:
return dcp::String::compose("The hash of the sound asset %1 does not agree with the PKL file.", note.file()->filename());
- case dcp::VerificationNote::PKL_CPL_SOUND_HASHES_DIFFER:
+ case dcp::VerificationNote::MISMATCHED_SOUND_HASHES:
return dcp::String::compose("The PKL and CPL hashes differ for the sound asset %1.", note.file()->filename());
case dcp::VerificationNote::EMPTY_ASSET_PATH:
return "The asset map contains an empty asset path.";
return String::compose("The file for an asset in the asset map cannot be found; missing file is %1.", note.file()->filename());
case dcp::VerificationNote::MISMATCHED_STANDARD:
return "The DCP contains both SMPTE and Interop parts.";
- case dcp::VerificationNote::XML_VALIDATION_ERROR:
+ case dcp::VerificationNote::INVALID_XML:
return String::compose("An XML file is badly formed: %1 (%2:%3)", note.note().get(), note.file()->filename(), note.line().get());
case dcp::VerificationNote::MISSING_ASSETMAP:
return "No ASSETMAP or ASSETMAP.xml was found.";
- case dcp::VerificationNote::INTRINSIC_DURATION_TOO_SMALL:
+ case dcp::VerificationNote::INVALID_INTRINSIC_DURATION:
return String::compose("The intrinsic duration of an asset is less than 1 second long: %1", note.note().get());
- case dcp::VerificationNote::DURATION_TOO_SMALL:
+ case dcp::VerificationNote::INVALID_DURATION:
return String::compose("The duration of an asset is less than 1 second long: %1", note.note().get());
- case dcp::VerificationNote::PICTURE_FRAME_TOO_LARGE_IN_BYTES:
+ case dcp::VerificationNote::INVALID_PICTURE_FRAME_SIZE_IN_BYTES:
return String::compose("The instantaneous bit rate of the picture asset %1 is larger than the limit of 250Mbit/s in at least one place.", note.file()->filename());
- case dcp::VerificationNote::PICTURE_FRAME_NEARLY_TOO_LARGE_IN_BYTES:
+ case dcp::VerificationNote::NEARLY_INVALID_PICTURE_FRAME_SIZE_IN_BYTES:
return String::compose("The instantaneous bit rate of the picture asset %1 is close to the limit of 250Mbit/s in at least one place.", note.file()->filename());
case dcp::VerificationNote::EXTERNAL_ASSET:
return String::compose("An asset that this DCP refers to is not included in the DCP. It may be a VF. Missing asset is %1.", note.note().get());
- case dcp::VerificationNote::NOT_SMPTE:
+ case dcp::VerificationNote::INVALID_STANDARD:
return "This DCP does not use the SMPTE standard, which is required for Bv2.1 compliance.";
- case dcp::VerificationNote::BAD_LANGUAGE:
+ case dcp::VerificationNote::INVALID_LANGUAGE:
return String::compose("The DCP specifies a language '%1' which does not conform to the RFC 5646 standard.", note.note().get());
- case dcp::VerificationNote::PICTURE_ASSET_INVALID_SIZE_IN_PIXELS:
+ case dcp::VerificationNote::INVALID_PICTURE_SIZE_IN_PIXELS:
return String::compose("A picture asset's size (%1) is not one of those allowed by Bv2.1 (2048x858, 1998x1080, 4096x1716 or 3996x2160)", note.note().get());
- case dcp::VerificationNote::PICTURE_ASSET_INVALID_FRAME_RATE_FOR_2K:
+ case dcp::VerificationNote::INVALID_PICTURE_FRAME_RATE_FOR_2K:
return String::compose("A picture asset's frame rate (%1) is not one of those allowed for 2K DCPs by Bv2.1 (24, 25 or 48fps)", note.note().get());
- case dcp::VerificationNote::PICTURE_ASSET_INVALID_FRAME_RATE_FOR_4K:
+ case dcp::VerificationNote::INVALID_PICTURE_FRAME_RATE_FOR_4K:
return String::compose("A picture asset's frame rate (%1) is not 24fps as required for 4K DCPs by Bv2.1", note.note().get());
- case dcp::VerificationNote::PICTURE_ASSET_4K_3D:
+ case dcp::VerificationNote::INVALID_PICTURE_ASSET_RESOLUTION_FOR_3D:
return "3D 4K DCPs are not allowed by Bv2.1";
- case dcp::VerificationNote::CLOSED_CAPTION_XML_TOO_LARGE_IN_BYTES:
+ case dcp::VerificationNote::INVALID_CLOSED_CAPTION_XML_SIZE_IN_BYTES:
return String::compose("The XML for the closed caption asset %1 is longer than the 256KB maximum required by Bv2.1", note.file()->filename());
- case dcp::VerificationNote::TIMED_TEXT_ASSET_TOO_LARGE_IN_BYTES:
+ case dcp::VerificationNote::INVALID_TIMED_TEXT_SIZE_IN_BYTES:
return String::compose("The total size of the timed text asset %1 is larger than the 115MB maximum required by Bv2.1", note.file()->filename());
- case dcp::VerificationNote::TIMED_TEXT_FONTS_TOO_LARGE_IN_BYTES:
+ case dcp::VerificationNote::INVALID_TIMED_TEXT_FONT_SIZE_IN_BYTES:
return String::compose("The total size of the fonts in timed text asset %1 is larger than the 10MB maximum required by Bv2.1", note.file()->filename());
case dcp::VerificationNote::MISSING_SUBTITLE_LANGUAGE:
return String::compose("The XML for a SMPTE subtitle asset has no <Language> tag, which is required by Bv2.1", note.file()->filename());
- case dcp::VerificationNote::SUBTITLE_LANGUAGES_DIFFER:
+ case dcp::VerificationNote::MISMATCHED_SUBTITLE_LANGUAGES:
return String::compose("Some subtitle assets have different <Language> tags than others", note.file()->filename());
case dcp::VerificationNote::MISSING_SUBTITLE_START_TIME:
return String::compose("The XML for a SMPTE subtitle asset has no <StartTime> tag, which is required by Bv2.1", note.file()->filename());
- case dcp::VerificationNote::SUBTITLE_START_TIME_NON_ZERO:
+ case dcp::VerificationNote::INVALID_SUBTITLE_START_TIME:
return String::compose("The XML for a SMPTE subtitle asset has a non-zero <StartTime> tag, which is disallowed by Bv2.1", note.file()->filename());
- case dcp::VerificationNote::FIRST_TEXT_TOO_EARLY:
+ case dcp::VerificationNote::INVALID_SUBTITLE_FIRST_TEXT_TIME:
return "The first subtitle or closed caption is less than 4 seconds from the start of the DCP.";
- case dcp::VerificationNote::SUBTITLE_TOO_SHORT:
+ case dcp::VerificationNote::INVALID_SUBTITLE_DURATION:
return "At least one subtitle is less than the minimum of 15 frames suggested by Bv2.1";
- case dcp::VerificationNote::SUBTITLE_TOO_CLOSE:
+ case dcp::VerificationNote::INVALID_SUBTITLE_SPACING:
return "At least one pair of subtitles are separated by less than the the minimum of 2 frames suggested by Bv2.1";
- case dcp::VerificationNote::TOO_MANY_SUBTITLE_LINES:
+ case dcp::VerificationNote::INVALID_SUBTITLE_LINE_COUNT:
return "There are more than 3 subtitle lines in at least one place in the DCP, which Bv2.1 advises against.";
- case dcp::VerificationNote::SUBTITLE_LINE_LONGER_THAN_RECOMMENDED:
+ case dcp::VerificationNote::NEARLY_INVALID_SUBTITLE_LINE_LENGTH:
return "There are more than 52 characters in at least one subtitle line, which Bv2.1 advises against.";
- case dcp::VerificationNote::SUBTITLE_LINE_TOO_LONG:
+ case dcp::VerificationNote::INVALID_SUBTITLE_LINE_LENGTH:
return "There are more than 79 characters in at least one subtitle line, which Bv2.1 strongly advises against.";
- case dcp::VerificationNote::TOO_MANY_CLOSED_CAPTION_LINES:
+ case dcp::VerificationNote::INVALID_CLOSED_CAPTION_LINE_COUNT:
return "There are more than 3 closed caption lines in at least one place, which is disallowed by Bv2.1";
- case dcp::VerificationNote::CLOSED_CAPTION_LINE_TOO_LONG:
+ case dcp::VerificationNote::INVALID_CLOSED_CAPTION_LINE_LENGTH:
return "There are more than 32 characters in at least one closed caption line, which is disallowed by Bv2.1";
case dcp::VerificationNote::INVALID_SOUND_FRAME_RATE:
return "A sound asset has a sampling rate other than 48kHz, which is disallowed by Bv2.1";
- case dcp::VerificationNote::MISSING_ANNOTATION_TEXT_IN_CPL:
+ case dcp::VerificationNote::MISSING_CPL_ANNOTATION_TEXT:
return "The CPL has no <AnnotationText> tag, which is required by Bv2.1";
- case dcp::VerificationNote::CPL_ANNOTATION_TEXT_DIFFERS_FROM_CONTENT_TITLE_TEXT:
+ case dcp::VerificationNote::MISMATCHED_CPL_ANNOTATION_TEXT:
return "The CPL's <AnnotationText> differs from its <ContentTitleText>, which Bv2.1 advises against.";
case dcp::VerificationNote::MISMATCHED_ASSET_DURATION:
return "All assets in a reel do not have the same duration, which is required by Bv2.1";
- case dcp::VerificationNote::MAIN_SUBTITLE_NOT_IN_ALL_REELS:
+ case dcp::VerificationNote::MISSING_MAIN_SUBTITLE_FROM_SOME_REELS:
return "At least one reel contains a subtitle asset, but some reel(s) do not";
- case dcp::VerificationNote::CLOSED_CAPTION_ASSET_COUNTS_DIFFER:
+ case dcp::VerificationNote::MISMATCHED_CLOSED_CAPTION_ASSET_COUNTS:
return "At least one reel has closed captions, but reels have different numbers of closed caption assets.";
case dcp::VerificationNote::MISSING_SUBTITLE_ENTRY_POINT:
return "Subtitle assets must have an <EntryPoint> tag.";
- case dcp::VerificationNote::SUBTITLE_ENTRY_POINT_NON_ZERO:
+ case dcp::VerificationNote::INCORRECT_SUBTITLE_ENTRY_POINT:
return "Subtitle assets must have an <EntryPoint> of 0.";
case dcp::VerificationNote::MISSING_CLOSED_CAPTION_ENTRY_POINT:
return "Closed caption assets must have an <EntryPoint> tag.";
- case dcp::VerificationNote::CLOSED_CAPTION_ENTRY_POINT_NON_ZERO:
+ case dcp::VerificationNote::INCORRECT_CLOSED_CAPTION_ENTRY_POINT:
return "Closed caption assets must have an <EntryPoint> of 0.";
case dcp::VerificationNote::MISSING_HASH:
return String::compose("An asset is missing a <Hash> tag: %1", note.note().get());
return "The CPL metadata must contain <ExtensionMetadata>";
case dcp::VerificationNote::INVALID_EXTENSION_METADATA:
return String::compose("The <ExtensionMetadata> is malformed in some way: %1", note.note().get());
- case dcp::VerificationNote::CPL_WITH_ENCRYPTED_CONTENT_NOT_SIGNED:
+ case dcp::VerificationNote::UNSIGNED_CPL_WITH_ENCRYPTED_CONTENT:
return String::compose("The CPL %1, which has encrypted content, is not signed", note.file()->filename());
- case dcp::VerificationNote::PKL_WITH_ENCRYPTED_CONTENT_NOT_SIGNED:
+ case dcp::VerificationNote::UNSIGNED_PKL_WITH_ENCRYPTED_CONTENT:
return String::compose("The PKL %1, which has encrypted content, is not signed", note.file()->filename());
- case dcp::VerificationNote::PKL_ANNOTATION_TEXT_DOES_NOT_MATCH_CPL_CONTENT_TITLE_TEXT:
+ case dcp::VerificationNote::MISMATCHED_PKL_ANNOTATION_TEXT_WITH_CPL:
return String::compose("The PKL %1 has only one CPL but its <AnnotationText> does not match the CPL's <ContentTitleText>", note.file()->filename());
case dcp::VerificationNote::PARTIALLY_ENCRYPTED:
return "Some assets are encrypted but some are not";
VERIFY_WARNING
};
+ /** Codes for errors or warnings from verifying DCPs.
+ *
+ * The names should (in general) answer the question "what is wrong?" with an answer that begins "There is a ..."
+ * e.g. "There is a INCORRECT_CPL_HASH"
+ * "There is a MISSING_ASSET"
+ *
+ * In general the pattern should be <negative-adjective> <noun>.
+ * Some <negative-adjective>s are:
+ *
+ * - INCORRECT: something, which could have any value, is wrong.
+ * - INVALID: something, which should only be one of a set of values, is not in the set, or some preformatted
+ * quantity (e.g. XML) is in the wrong format.
+ * - MISMATCHED: two things, which should be the same, are not.
+ * - EMPTY: something, which should have a value, has no value.
+ * - MISSING: something, which should be present, is not.
+ * - FAILED: some part of the verification failed in some serious way.
+ *
+ * Comments should clarify meaning and also say which of the optional fields (e.g. file)
+ * are filled in when this code is used.
+ * XXX: this needs checking.
+ */
enum Code {
/** An error when reading the DCP. note contains (probably technical) details. */
- GENERAL_READ,
+ FAILED_READ,
/** The hash of the CPL in the PKL does not agree with the CPL file */
- CPL_HASH_INCORRECT,
+ MISMATCHED_CPL_HASHES,
/** Frame rate given in a reel for the main picture is not 24, 25, 30, 48, 50 or 60 */
INVALID_PICTURE_FRAME_RATE,
/** The hash of a main picture asset does not agree with the PKL file. file contains the picture asset filename. */
- PICTURE_HASH_INCORRECT,
+ INCORRECT_PICTURE_HASH,
/** The hash of a main picture is different in the CPL and PKL */
- PKL_CPL_PICTURE_HASHES_DIFFER,
+ MISMATCHED_PICTURE_HASHES,
/** The hash of a main sound asset does not agree with the PKL file. file contains the sound asset filename. */
- SOUND_HASH_INCORRECT,
+ INCORRECT_SOUND_HASH,
/** The hash of a main sound is different in the CPL and PKL */
- PKL_CPL_SOUND_HASHES_DIFFER,
+ MISMATCHED_SOUND_HASHES,
/** An assetmap's <Path> entry is empty */
EMPTY_ASSET_PATH,
/** A file mentioned in an asset map cannot be found */
/** The DCP contains both SMPTE and Interop-standard components */
MISMATCHED_STANDARD,
/** Some XML fails to validate against the XSD/DTD */
- XML_VALIDATION_ERROR,
+ INVALID_XML,
/** No ASSETMAP{.xml} was found */
MISSING_ASSETMAP,
/** An asset's IntrinsicDuration is less than 1 second */
- INTRINSIC_DURATION_TOO_SMALL,
+ INVALID_INTRINSIC_DURATION,
/** An asset's Duration is less than 1 second */
- DURATION_TOO_SMALL,
+ INVALID_DURATION,
/** The JPEG2000 data in at least one picture frame is larger than the equivalent of 250Mbit/s */
- PICTURE_FRAME_TOO_LARGE_IN_BYTES,
+ INVALID_PICTURE_FRAME_SIZE_IN_BYTES,
/** The JPEG2000 data in at least one picture frame is larger than the equivalent of 230Mbit/s */
- PICTURE_FRAME_NEARLY_TOO_LARGE_IN_BYTES,
+ NEARLY_INVALID_PICTURE_FRAME_SIZE_IN_BYTES,
/** An asset that the CPL requires is not in this DCP; the DCP may be a VF */
EXTERNAL_ASSET,
/** DCP is Interop, not SMPTE [Bv2.1_6.1] */
- NOT_SMPTE,
+ INVALID_STANDARD,
/** A language or territory does not conform to RFC 5646 [Bv2.1_6.2.1] */
- BAD_LANGUAGE,
+ INVALID_LANGUAGE,
/** A picture asset does not have one of the required Bv2.1 sizes (in pixels) [Bv2.1_7.1] */
- PICTURE_ASSET_INVALID_SIZE_IN_PIXELS,
+ INVALID_PICTURE_SIZE_IN_PIXELS,
/** A picture asset is 2K but is not at 24, 25 or 48 fps as required by Bv2.1 [Bv2.1_7.1] */
- PICTURE_ASSET_INVALID_FRAME_RATE_FOR_2K,
+ INVALID_PICTURE_FRAME_RATE_FOR_2K,
/** A picture asset is 4K but is not at 24fps as required by Bv2.1 [Bv2.1_7.1] */
- PICTURE_ASSET_INVALID_FRAME_RATE_FOR_4K,
+ INVALID_PICTURE_FRAME_RATE_FOR_4K,
/** A picture asset is 4K but is 3D which is not allowed by Bv2.1 [Bv2.1_7.1] */
- PICTURE_ASSET_4K_3D,
+ INVALID_PICTURE_ASSET_RESOLUTION_FOR_3D,
/** A closed caption's XML file is larger than 256KB [Bv2.1_7.2.1] */
- CLOSED_CAPTION_XML_TOO_LARGE_IN_BYTES,
+ INVALID_CLOSED_CAPTION_XML_SIZE_IN_BYTES,
/** Any timed text asset's total files is larger than 115MB [Bv2.1_7.2.1] */
- TIMED_TEXT_ASSET_TOO_LARGE_IN_BYTES,
+ 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] */
- TIMED_TEXT_FONTS_TOO_LARGE_IN_BYTES,
+ INVALID_TIMED_TEXT_FONT_SIZE_IN_BYTES,
/** Some SMPTE subtitle XML has no <Language> tag [Bv2.1_7.2.2] */
MISSING_SUBTITLE_LANGUAGE,
/** Not all subtitle assets specify the same <Language> tag [Bv2.1_7.2.2] */
- SUBTITLE_LANGUAGES_DIFFER,
+ MISMATCHED_SUBTITLE_LANGUAGES,
/** Some SMPTE subtitle XML has no <StartTime> tag [Bv2.1_7.2.3] */
MISSING_SUBTITLE_START_TIME,
/** Some SMPTE subtitle XML has a non-zero <StartTime> tag [Bv2.1_7.2.3] */
- SUBTITLE_START_TIME_NON_ZERO,
+ INVALID_SUBTITLE_START_TIME,
/** The first subtitle or closed caption happens before 4s into the first reel [Bv2.1_7.2.4] */
- FIRST_TEXT_TOO_EARLY,
+ INVALID_SUBTITLE_FIRST_TEXT_TIME,
/** At least one subtitle is less than the minimum of 15 frames suggested by [Bv2.1_7.2.5] */
- SUBTITLE_TOO_SHORT,
+ INVALID_SUBTITLE_DURATION,
/** At least one pair of subtitles are separated by less than the the minimum of 2 frames suggested by [Bv2.1_7.2.5] */
- SUBTITLE_TOO_CLOSE,
+ INVALID_SUBTITLE_SPACING,
/** There are more than 3 subtitle lines in at least one place [Bv2.1_7.2.7] */
- TOO_MANY_SUBTITLE_LINES,
+ INVALID_SUBTITLE_LINE_COUNT,
/** There are more than 52 characters in at least one subtitle line [Bv2.1_7.2.7] */
- SUBTITLE_LINE_LONGER_THAN_RECOMMENDED,
+ NEARLY_INVALID_SUBTITLE_LINE_LENGTH,
/** There are more than 79 characters in at least one subtitle line [Bv2.1_7.2.7] */
- SUBTITLE_LINE_TOO_LONG,
+ INVALID_SUBTITLE_LINE_LENGTH,
/** There are more than 3 closed caption lines in at least one place [Bv2.1_7.2.6] */
- TOO_MANY_CLOSED_CAPTION_LINES,
+ INVALID_CLOSED_CAPTION_LINE_COUNT,
/** There are more than 32 characters in at least one closed caption line [Bv2.1_7.2.6] */
- CLOSED_CAPTION_LINE_TOO_LONG,
+ INVALID_CLOSED_CAPTION_LINE_LENGTH,
/** The audio sampling rate must be 48kHz [Bv2.1_7.3] */
INVALID_SOUND_FRAME_RATE,
/** The CPL has no <AnnotationText> tag [Bv2.1_8.1] */
- MISSING_ANNOTATION_TEXT_IN_CPL,
+ MISSING_CPL_ANNOTATION_TEXT,
/** The <AnnotationText> is not the same as the <ContentTitleText> [Bv2.1_8.1] */
- CPL_ANNOTATION_TEXT_DIFFERS_FROM_CONTENT_TITLE_TEXT,
+ MISMATCHED_CPL_ANNOTATION_TEXT,
/** At least one asset in a reel does not have the same duration as the others */
MISMATCHED_ASSET_DURATION,
/** If one reel has a MainSubtitle, all must have them */
- MAIN_SUBTITLE_NOT_IN_ALL_REELS,
+ MISSING_MAIN_SUBTITLE_FROM_SOME_REELS,
/** If one reel has at least one ClosedCaption, all reels must have the same number of ClosedCaptions */
- CLOSED_CAPTION_ASSET_COUNTS_DIFFER,
+ MISMATCHED_CLOSED_CAPTION_ASSET_COUNTS,
/** MainSubtitle in reels must have <EntryPoint> Bv2.1_8.3.2 */
MISSING_SUBTITLE_ENTRY_POINT,
/** MainSubtitle <EntryPoint> must be zero Bv2.1_8.3.2 */
- SUBTITLE_ENTRY_POINT_NON_ZERO,
+ INCORRECT_SUBTITLE_ENTRY_POINT,
/** Closed caption in reels must have <EntryPoint> Bv2.1_8.3.2 */
MISSING_CLOSED_CAPTION_ENTRY_POINT,
/** Closed caption MainSubtitle <EntryPoint> must be zero Bv2.1_8.3.2 */
- CLOSED_CAPTION_ENTRY_POINT_NON_ZERO,
+ INCORRECT_CLOSED_CAPTION_ENTRY_POINT,
/** <Hash> must be present for assets in CPLs */
MISSING_HASH,
/** If ContentKind is Feature there must be a FFEC marker */
/** <ExtensionMetadata> must have a particular form Bv2.1_8.6.3 */
INVALID_EXTENSION_METADATA,
/** CPLs containing encrypted content must be signed Bv2.1_8.7 */
- CPL_WITH_ENCRYPTED_CONTENT_NOT_SIGNED,
+ UNSIGNED_CPL_WITH_ENCRYPTED_CONTENT,
/** PKLs containing encrypted content must be signed Bv2.1_8.7 */
- PKL_WITH_ENCRYPTED_CONTENT_NOT_SIGNED,
+ UNSIGNED_PKL_WITH_ENCRYPTED_CONTENT,
/** If a PKL has one CPL its <ContentTitleText> must be the same as the PKL's <AnnotationText> */
- PKL_ANNOTATION_TEXT_DOES_NOT_MATCH_CPL_CONTENT_TITLE_TEXT,
+ MISMATCHED_PKL_ANNOTATION_TEXT_WITH_CPL,
/** If any content is encrypted, everything must be encrypted */
PARTIALLY_ENCRYPTED,
};
auto notes = dcp::verify (directories, &stage, &progress, xsd_test);
vector<dcp::VerificationNote> filtered_notes;
std::copy_if (notes.begin(), notes.end(), std::back_inserter(filtered_notes), [](dcp::VerificationNote const& i) {
- return i.code() != dcp::VerificationNote::NOT_SMPTE && i.code() != dcp::VerificationNote::SUBTITLE_TOO_SHORT;
+ return i.code() != dcp::VerificationNote::INVALID_STANDARD && i.code() != dcp::VerificationNote::INVALID_SUBTITLE_DURATION;
});
dump_notes (filtered_notes);
BOOST_CHECK (filtered_notes.empty());
check_verify_result (
directories,
{
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::PICTURE_HASH_INCORRECT },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::SOUND_HASH_INCORRECT }
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INCORRECT_PICTURE_HASH },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INCORRECT_SOUND_HASH }
});
}
check_verify_result (
directories,
{
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::CPL_HASH_INCORRECT },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::PKL_CPL_PICTURE_HASHES_DIFFER },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::PKL_CPL_SOUND_HASHES_DIFFER },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::XML_VALIDATION_ERROR },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::XML_VALIDATION_ERROR },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::XML_VALIDATION_ERROR }
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::MISMATCHED_CPL_HASHES },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::MISMATCHED_PICTURE_HASHES },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::MISMATCHED_SOUND_HASHES },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_XML },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_XML },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_XML }
});
}
check_verify_result (
directories,
- {{ dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::GENERAL_READ, string("Bad content kind 'xtrailer'")}}
+ {{ dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::FAILED_READ, string("Bad content kind 'xtrailer'")}}
);
}
check_verify_result_after_replace (
5, &cpl,
"<FrameRate>24 1", "<FrameRate>99 1",
- { dcp::VerificationNote::CPL_HASH_INCORRECT,
+ { dcp::VerificationNote::MISMATCHED_CPL_HASHES,
dcp::VerificationNote::INVALID_PICTURE_FRAME_RATE }
);
}
8, &cpl,
"http://www.smpte-ra.org/schemas/429-7/2006/CPL", "http://www.digicine.com/PROTO-ASDCP-CPL-20040511#",
{ dcp::VerificationNote::MISMATCHED_STANDARD,
- dcp::VerificationNote::XML_VALIDATION_ERROR,
- dcp::VerificationNote::XML_VALIDATION_ERROR,
- dcp::VerificationNote::XML_VALIDATION_ERROR,
- dcp::VerificationNote::XML_VALIDATION_ERROR,
- dcp::VerificationNote::XML_VALIDATION_ERROR,
- dcp::VerificationNote::CPL_HASH_INCORRECT }
+ dcp::VerificationNote::INVALID_XML,
+ dcp::VerificationNote::INVALID_XML,
+ dcp::VerificationNote::INVALID_XML,
+ dcp::VerificationNote::INVALID_XML,
+ dcp::VerificationNote::INVALID_XML,
+ dcp::VerificationNote::MISMATCHED_CPL_HASHES }
);
}
/* Badly formatted <Id> in CPL */
BOOST_AUTO_TEST_CASE (verify_test9)
{
- /* There's no CPL_HASH_INCORRECT error here because it can't find the correct hash by ID (since the ID is wrong) */
+ /* There's no MISMATCHED_CPL_HASHES error here because it can't find the correct hash by ID (since the ID is wrong) */
check_verify_result_after_replace (
9, &cpl,
"<Id>urn:uuid:81fb54df-e1bf-4647-8788-ea7ba154375b", "<Id>urn:uuid:81fb54df-e1bf-4647-8788-ea7ba154375",
- { dcp::VerificationNote::XML_VALIDATION_ERROR }
+ { dcp::VerificationNote::INVALID_XML }
);
}
check_verify_result_after_replace (
10, &cpl,
"<IssueDate>", "<IssueDate>x",
- { dcp::VerificationNote::XML_VALIDATION_ERROR,
- dcp::VerificationNote::CPL_HASH_INCORRECT }
+ { dcp::VerificationNote::INVALID_XML,
+ dcp::VerificationNote::MISMATCHED_CPL_HASHES }
);
}
check_verify_result_after_replace (
11, &pkl,
"<Id>urn:uuid:2b9", "<Id>urn:uuid:xb9",
- { dcp::VerificationNote::XML_VALIDATION_ERROR }
+ { dcp::VerificationNote::INVALID_XML }
);
}
check_verify_result_after_replace (
12, &asset_map,
"<Id>urn:uuid:07e", "<Id>urn:uuid:x7e",
- { dcp::VerificationNote::XML_VALIDATION_ERROR }
+ { dcp::VerificationNote::INVALID_XML }
);
}
BOOST_REQUIRE_EQUAL (notes.size(), 1U);
auto i = notes.begin ();
BOOST_CHECK_EQUAL (i->type(), dcp::VerificationNote::VERIFY_BV21_ERROR);
- BOOST_CHECK_EQUAL (i->code(), dcp::VerificationNote::NOT_SMPTE);
+ BOOST_CHECK_EQUAL (i->code(), dcp::VerificationNote::INVALID_STANDARD);
}
/* DCP with a short asset */
check_verify_result (
directories,
{
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::NOT_SMPTE },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::DURATION_TOO_SMALL },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INTRINSIC_DURATION_TOO_SMALL },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::DURATION_TOO_SMALL },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INTRINSIC_DURATION_TOO_SMALL }
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_STANDARD },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_DURATION },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_INTRINSIC_DURATION },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_DURATION },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_INTRINSIC_DURATION }
});
}
check_verify_result (
{ dir },
{
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::PICTURE_FRAME_TOO_LARGE_IN_BYTES },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_PICTURE_FRAME_SIZE_IN_BYTES },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
});
}
check_verify_result (
{ dir },
{
- { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::PICTURE_FRAME_NEARLY_TOO_LARGE_IN_BYTES },
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::NEARLY_INVALID_PICTURE_FRAME_SIZE_IN_BYTES },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
});
}
auto reel_asset = make_shared<dcp::ReelSubtitleAsset>(asset, dcp::Fraction(24, 1), 16 * 24, 0);
write_dcp_with_single_asset (dir, reel_asset, dcp::INTEROP);
- check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::NOT_SMPTE }});
+ check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_STANDARD }});
}
check_verify_result (
{ dir },
{
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::NOT_SMPTE },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::XML_VALIDATION_ERROR },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::XML_VALIDATION_ERROR }
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_STANDARD },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_XML },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_XML }
});
}
check_verify_result (
{ dir },
{
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::XML_VALIDATION_ERROR },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::XML_VALIDATION_ERROR },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_XML },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_XML },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_SUBTITLE_START_TIME },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
});
check_verify_result (
{ dir },
{
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::XML_VALIDATION_ERROR },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::XML_VALIDATION_ERROR },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::XML_VALIDATION_ERROR },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::CPL_HASH_INCORRECT }
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_XML },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_XML },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_XML },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::MISMATCHED_CPL_HASHES }
});
}
check_verify_result (
{ dir },
- {{ dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::GENERAL_READ }}
+ {{ dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::FAILED_READ }}
);
}
check_verify_result (
{ dir },
{
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::BAD_LANGUAGE, string("badlang") },
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::BAD_LANGUAGE, string("wrong-andbad") },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_LANGUAGE, string("badlang") },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_LANGUAGE, string("wrong-andbad") },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA },
});
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::BAD_LANGUAGE, string("badlang") },
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::BAD_LANGUAGE, string("wrong-andbad") },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_LANGUAGE, string("badlang") },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_LANGUAGE, string("wrong-andbad") },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
});
}
check_verify_result (
{ dir },
{
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::BAD_LANGUAGE, string("this-is-wrong") },
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::BAD_LANGUAGE, string("andso-is-this") },
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::BAD_LANGUAGE, string("fred-jim") },
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::BAD_LANGUAGE, string("frobozz") },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_LANGUAGE, string("this-is-wrong") },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_LANGUAGE, string("andso-is-this") },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_LANGUAGE, string("fred-jim") },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_LANGUAGE, string("frobozz") },
});
}
auto notes = check_picture_size(width, height, frame_rate, three_d);
BOOST_REQUIRE_EQUAL (notes.size(), 1U);
BOOST_CHECK_EQUAL (notes.front().type(), dcp::VerificationNote::VERIFY_BV21_ERROR);
- BOOST_CHECK_EQUAL (notes.front().code(), dcp::VerificationNote::PICTURE_ASSET_INVALID_SIZE_IN_PIXELS);
+ BOOST_CHECK_EQUAL (notes.front().code(), dcp::VerificationNote::INVALID_PICTURE_SIZE_IN_PIXELS);
}
auto notes = check_picture_size(width, height, frame_rate, three_d);
BOOST_REQUIRE_EQUAL (notes.size(), 2U);
BOOST_CHECK_EQUAL (notes.back().type(), dcp::VerificationNote::VERIFY_BV21_ERROR);
- BOOST_CHECK_EQUAL (notes.back().code(), dcp::VerificationNote::PICTURE_ASSET_INVALID_FRAME_RATE_FOR_2K);
+ BOOST_CHECK_EQUAL (notes.back().code(), dcp::VerificationNote::INVALID_PICTURE_FRAME_RATE_FOR_2K);
}
auto notes = check_picture_size(width, height, frame_rate, three_d);
BOOST_REQUIRE_EQUAL (notes.size(), 1U);
BOOST_CHECK_EQUAL (notes.front().type(), dcp::VerificationNote::VERIFY_BV21_ERROR);
- BOOST_CHECK_EQUAL (notes.front().code(), dcp::VerificationNote::PICTURE_ASSET_INVALID_FRAME_RATE_FOR_4K);
+ BOOST_CHECK_EQUAL (notes.front().code(), dcp::VerificationNote::INVALID_PICTURE_FRAME_RATE_FOR_4K);
}
auto notes = check_picture_size(3996, 2160, 24, true);
BOOST_REQUIRE_EQUAL (notes.size(), 1U);
BOOST_CHECK_EQUAL (notes.front().type(), dcp::VerificationNote::VERIFY_BV21_ERROR);
- BOOST_CHECK_EQUAL (notes.front().code(), dcp::VerificationNote::PICTURE_ASSET_4K_3D);
+ BOOST_CHECK_EQUAL (notes.front().code(), dcp::VerificationNote::INVALID_PICTURE_ASSET_RESOLUTION_FOR_3D);
}
{ dir },
{
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_SUBTITLE_START_TIME },
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::CLOSED_CAPTION_XML_TOO_LARGE_IN_BYTES },
- { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::FIRST_TEXT_TOO_EARLY },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_CLOSED_CAPTION_XML_SIZE_IN_BYTES },
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::INVALID_SUBTITLE_FIRST_TEXT_TIME },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA },
});
}
check_verify_result (
{ dir },
{
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::TIMED_TEXT_ASSET_TOO_LARGE_IN_BYTES },
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::TIMED_TEXT_FONTS_TOO_LARGE_IN_BYTES },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_TIMED_TEXT_SIZE_IN_BYTES },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_TIMED_TEXT_FONT_SIZE_IN_BYTES },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_SUBTITLE_START_TIME },
- { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::FIRST_TEXT_TOO_EARLY },
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::INVALID_SUBTITLE_FIRST_TEXT_TIME },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA },
});
}
{ dir },
{
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_SUBTITLE_LANGUAGE },
- { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::FIRST_TEXT_TOO_EARLY }
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::INVALID_SUBTITLE_FIRST_TEXT_TIME }
});
}
{ path },
{
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_SUBTITLE_START_TIME },
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::SUBTITLE_LANGUAGES_DIFFER },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISMATCHED_SUBTITLE_LANGUAGES },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_SUBTITLE_START_TIME }
});
}
{ dir },
{
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_SUBTITLE_START_TIME },
- { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::FIRST_TEXT_TOO_EARLY }
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::INVALID_SUBTITLE_FIRST_TEXT_TIME }
});
}
check_verify_result (
{ dir },
{
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::SUBTITLE_START_TIME_NON_ZERO },
- { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::FIRST_TEXT_TOO_EARLY }
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_SUBTITLE_START_TIME },
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::INVALID_SUBTITLE_FIRST_TEXT_TIME }
});
}
check_verify_result (
{ dir },
{
- { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::FIRST_TEXT_TOO_EARLY },
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::INVALID_SUBTITLE_FIRST_TEXT_TIME },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
});
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::SUBTITLE_TOO_CLOSE },
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::INVALID_SUBTITLE_SPACING },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
});
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::SUBTITLE_TOO_SHORT },
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::INVALID_SUBTITLE_DURATION },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
});
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::TOO_MANY_SUBTITLE_LINES },
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::INVALID_SUBTITLE_LINE_COUNT },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
});
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::TOO_MANY_SUBTITLE_LINES },
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::INVALID_SUBTITLE_LINE_COUNT },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
});
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::SUBTITLE_LINE_LONGER_THAN_RECOMMENDED },
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::NEARLY_INVALID_SUBTITLE_LINE_LENGTH },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
});
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::SUBTITLE_LINE_TOO_LONG },
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::INVALID_SUBTITLE_LINE_LENGTH },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
});
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::TOO_MANY_CLOSED_CAPTION_LINES},
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_CLOSED_CAPTION_LINE_COUNT},
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
});
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::TOO_MANY_CLOSED_CAPTION_LINES},
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_CLOSED_CAPTION_LINE_COUNT},
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
});
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::CLOSED_CAPTION_LINE_TOO_LONG },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_CLOSED_CAPTION_LINE_LENGTH },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
});
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_ANNOTATION_TEXT_IN_CPL },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::CPL_HASH_INCORRECT }
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_ANNOTATION_TEXT },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::MISMATCHED_CPL_HASHES }
});
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::CPL_ANNOTATION_TEXT_DIFFERS_FROM_CONTENT_TITLE_TEXT },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::CPL_HASH_INCORRECT }
+ { dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::MISMATCHED_CPL_ANNOTATION_TEXT },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::MISMATCHED_CPL_HASHES }
});
}
check_verify_result (
{ dir },
{
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MAIN_SUBTITLE_NOT_IN_ALL_REELS },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_MAIN_SUBTITLE_FROM_SOME_REELS },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
});
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::CLOSED_CAPTION_ASSET_COUNTS_DIFFER },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISMATCHED_CLOSED_CAPTION_ASSET_COUNTS },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_CPL_METADATA }
});
}
verify_text_entry_point_check<dcp::ReelSubtitleAsset> (
"build/test/verify_subtitle_entry_point_must_be_zero",
- dcp::VerificationNote::SUBTITLE_ENTRY_POINT_NON_ZERO,
+ dcp::VerificationNote::INCORRECT_SUBTITLE_ENTRY_POINT,
[](shared_ptr<dcp::ReelSubtitleAsset> asset) {
asset->set_entry_point (4);
}
verify_text_entry_point_check<dcp::ReelClosedCaptionAsset> (
"build/test/verify_closed_caption_entry_point_must_be_zero",
- dcp::VerificationNote::CLOSED_CAPTION_ENTRY_POINT_NON_ZERO,
+ dcp::VerificationNote::INCORRECT_CLOSED_CAPTION_ENTRY_POINT,
[](shared_ptr<dcp::ReelClosedCaptionAsset> asset) {
asset->set_entry_point (9);
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::CPL_HASH_INCORRECT },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::MISMATCHED_CPL_HASHES },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_HASH }
});
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::CPL_HASH_INCORRECT },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::MISMATCHED_CPL_HASHES },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_EXTENSION_METADATA }
});
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::CPL_HASH_INCORRECT },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::MISMATCHED_CPL_HASHES },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_EXTENSION_METADATA }
});
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::XML_VALIDATION_ERROR },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::XML_VALIDATION_ERROR },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::CPL_HASH_INCORRECT },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_XML },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_XML },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::MISMATCHED_CPL_HASHES },
});
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::CPL_HASH_INCORRECT },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::MISMATCHED_CPL_HASHES },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_EXTENSION_METADATA, string("<Name> property should be 'Application'") },
});
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::CPL_HASH_INCORRECT },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::MISMATCHED_CPL_HASHES },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_EXTENSION_METADATA, string("<Name> property should be 'DCP Constraints Profile'") },
});
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::XML_VALIDATION_ERROR },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::XML_VALIDATION_ERROR },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::CPL_HASH_INCORRECT },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_XML },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_XML },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::MISMATCHED_CPL_HASHES },
});
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::CPL_HASH_INCORRECT },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::MISMATCHED_CPL_HASHES },
{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_EXTENSION_METADATA, string("<Value> property should be 'SMPTE-RDD-52:2020-Bv2.1'") },
});
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::XML_VALIDATION_ERROR },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::XML_VALIDATION_ERROR },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::CPL_HASH_INCORRECT },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_XML },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_XML },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::MISMATCHED_CPL_HASHES },
});
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::XML_VALIDATION_ERROR },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::XML_VALIDATION_ERROR },
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::CPL_HASH_INCORRECT },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_XML },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::INVALID_XML },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::MISMATCHED_CPL_HASHES },
});
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::CPL_HASH_INCORRECT },
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::PKL_ANNOTATION_TEXT_DOES_NOT_MATCH_CPL_CONTENT_TITLE_TEXT },
+ { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::MISMATCHED_CPL_HASHES },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::UNSIGNED_PKL_WITH_ENCRYPTED_CONTENT },
{ dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::MISSING_FFEC_IN_FEATURE },
{ dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::MISSING_FFMC_IN_FEATURE },
{ dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::MISSING_FFOC },
{ dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::MISSING_LFOC },
{ dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::MISSING_CPL_METADATA },
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::CPL_WITH_ENCRYPTED_CONTENT_NOT_SIGNED }
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::UNSIGNED_CPL_WITH_ENCRYPTED_CONTENT }
});
}
check_verify_result (
{dir},
{
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::PKL_ANNOTATION_TEXT_DOES_NOT_MATCH_CPL_CONTENT_TITLE_TEXT },
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::UNSIGNED_PKL_WITH_ENCRYPTED_CONTENT },
{ dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::MISSING_FFEC_IN_FEATURE },
{ dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::MISSING_FFMC_IN_FEATURE },
{ dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::MISSING_FFOC },
{ dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::MISSING_LFOC },
{ dcp::VerificationNote::VERIFY_WARNING, dcp::VerificationNote::MISSING_CPL_METADATA },
- { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::PKL_WITH_ENCRYPTED_CONTENT_NOT_SIGNED }
+ { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::UNSIGNED_PKL_WITH_ENCRYPTED_CONTENT }
});
}
bool failed = false;
BOOST_FOREACH (dcp::VerificationNote i, notes) {
- if (ignore_bv21_smpte && i.code() == dcp::VerificationNote::NOT_SMPTE) {
+ if (ignore_bv21_smpte && i.code() == dcp::VerificationNote::INVALID_STANDARD) {
continue;
}
switch (i.type()) {