summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2026-03-21 22:43:01 +0100
committerCarl Hetherington <cth@carlh.net>2026-03-21 22:43:01 +0100
commit4700724da0aaf27aa43e4809d263c0fc00a8be9f (patch)
tree1b3389344c35248914c636597fc7ee620bf1bbcb /test
parentbb029d678e370c210149d41a99537207caf9cdb5 (diff)
Store reel_index in VerificationNote in lots of cases.
Diffstat (limited to 'test')
-rw-r--r--test/verify_test.cc478
1 files changed, 240 insertions, 238 deletions
diff --git a/test/verify_test.cc b/test/verify_test.cc
index dc5fa017..89981dbe 100644
--- a/test/verify_test.cc
+++ b/test/verify_test.cc
@@ -242,13 +242,14 @@ string
to_string(dcp::VerificationNote const& note)
{
string s = note_to_string(note) + dcp::String::compose(
- "\n [%1 %2 %3 %4 %5 %6 ",
+ "\n [%1 %2 %3 %4 %5 %6 %7 ",
static_cast<int>(note.type()),
static_cast<int>(note.code()),
note.note().get_value_or("<none>"),
note.file().get_value_or("<none>"),
note.line().get_value_or(0),
- note.frame().get_value_or(0)
+ note.frame().get_value_or(0),
+ note.reel_index().get_value_or(-1)
);
s += dcp::String::compose(
@@ -537,13 +538,13 @@ BOOST_AUTO_TEST_CASE (verify_incorrect_picture_sound_hash)
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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
VN(
VC::INCORRECT_PICTURE_HASH, canonical(video_path)
- ).set_cpl_id(dcp_test1_cpl_id()).set_reference_hash(video_calc.old_hash()).set_calculated_hash(video_calc.new_hash()),
+ ).set_cpl_id(dcp_test1_cpl_id()).set_reference_hash(video_calc.old_hash()).set_calculated_hash(video_calc.new_hash()).set_reel_index(0),
VN(
VC::INCORRECT_SOUND_HASH, canonical(audio_path)
- ).set_cpl_id(dcp_test1_cpl_id()).set_reference_hash(audio_calc.old_hash()).set_calculated_hash(audio_calc.new_hash()),
+ ).set_cpl_id(dcp_test1_cpl_id()).set_reference_hash(audio_calc.old_hash()).set_calculated_hash(audio_calc.new_hash()).set_reel_index(0),
});
}
@@ -579,12 +580,12 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_picture_sound_hashes)
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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
VN(
VC::MISMATCHED_CPL_HASHES, canonical(dir / dcp_test1_cpl())
).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()),
- VN(VC::MISMATCHED_SOUND_HASHES, canonical(dir / "audio.mxf")).set_cpl_id(dcp_test1_cpl_id()),
+ VN(VC::MISMATCHED_PICTURE_HASHES, canonical(dir / "video.mxf")).set_cpl_id(dcp_test1_cpl_id()).set_reel_index(0),
+ VN(VC::MISMATCHED_SOUND_HASHES, canonical(dir / "audio.mxf")).set_cpl_id(dcp_test1_cpl_id()).set_reel_index(0),
{ 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 },
@@ -612,7 +613,7 @@ BOOST_AUTO_TEST_CASE (verify_failed_read_content_kind)
{ dir },
{},
{
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl),
note(VC::NONE_ENCRYPTED, cpl),
VN(
@@ -622,7 +623,7 @@ BOOST_AUTO_TEST_CASE (verify_failed_read_content_kind)
).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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
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()),
@@ -670,7 +671,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_picture_frame_rate)
std::vector<VN> expected =
{
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
note(VC::NONE_ENCRYPTED, cpl),
VN(
VC::VALID_MAIN_PICTURE_ACTIVE_AREA,
@@ -681,11 +682,11 @@ BOOST_AUTO_TEST_CASE (verify_invalid_picture_frame_rate)
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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
VN(
VC::MISMATCHED_CPL_HASHES, canonical(cpl_path)
).set_cpl_id(cpl->id()).set_calculated_hash("7n7GQ2TbxQbmHYuAR8ml7XDOep8=").set_reference_hash("skI+5b/9LA/y6h0mcyxysJYanxI="),
- VN(VC::INVALID_PICTURE_FRAME_RATE, string{"99/1"}).set_cpl_id(cpl->id())
+ VN(VC::INVALID_PICTURE_FRAME_RATE, string{"99/1"}).set_cpl_id(cpl->id()).set_reel_index(0),
};
check_verify_result(dcp::verify({dir}, {}, &stage, &progress, {}, xsd_test).notes, expected);
@@ -768,8 +769,8 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_standard)
using VC = VN::Code;
std::vector<VN> expected = {
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
note(VC::NONE_ENCRYPTED, cpl),
VN(
VC::VALID_MAIN_PICTURE_ACTIVE_AREA,
@@ -817,8 +818,8 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_id)
using VC = VN::Code;
std::vector<VN> expected = {
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
note(VC::NONE_ENCRYPTED, cpl),
VN(
VC::VALID_MAIN_PICTURE_ACTIVE_AREA,
@@ -855,8 +856,8 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_issue_date)
using VC = VN::Code;
std::vector<VN> expected = {
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
note(VC::NONE_ENCRYPTED, cpl),
VN(
VC::VALID_MAIN_PICTURE_ACTIVE_AREA,
@@ -892,8 +893,8 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_pkl_id)
using VC = VN::Code;
std::vector<VN> expected = {
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
note(VC::NONE_ENCRYPTED, cpl),
VN(
VC::VALID_MAIN_PICTURE_ACTIVE_AREA,
@@ -932,8 +933,8 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_asset_map_id)
using VC = VN::Code;
std::vector<VN> expected = {
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
note(VC::NONE_ENCRYPTED, cpl),
VN(
VC::VALID_MAIN_PICTURE_ACTIVE_AREA,
@@ -1016,12 +1017,12 @@ BOOST_AUTO_TEST_CASE (verify_invalid_standard)
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),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "j2c_c6035f97-b07d-4e1c-944d-603fc2ddc242.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "j2c_c6035f97-b07d-4e1c-944d-603fc2ddc242.mxf"), cpl)
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "j2c_c6035f97-b07d-4e1c-944d-603fc2ddc242.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "j2c_c6035f97-b07d-4e1c-944d-603fc2ddc242.mxf"), cpl).set_reel_index(0)
};
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()));
+ expected.push_back(VN(VC::INVALID_JPEG2000_GUARD_BITS_FOR_2K, string("2")).set_cpl_id(cpl->id()).set_reel_index(0));
}
check_verify_result(notes, expected);
@@ -1045,18 +1046,18 @@ BOOST_AUTO_TEST_CASE (verify_invalid_duration)
note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl),
note(VC::NONE_ENCRYPTED, cpl),
note(VC::VALID_CONTENT_KIND, string{"feature"}, cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "j2c_d7576dcb-a361-4139-96b8-267f5f8d7f91.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "j2c_d7576dcb-a361-4139-96b8-267f5f8d7f91.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "j2c_d7576dcb-a361-4139-96b8-267f5f8d7f91.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "j2c_d7576dcb-a361-4139-96b8-267f5f8d7f91.mxf"), cpl).set_reel_index(0),
{ VC::INVALID_STANDARD },
- VN(VC::INVALID_DURATION, string("d7576dcb-a361-4139-96b8-267f5f8d7f91")).set_cpl_id(cpl->id()),
- VN(VC::INVALID_INTRINSIC_DURATION, string("d7576dcb-a361-4139-96b8-267f5f8d7f91")).set_cpl_id(cpl->id()),
- VN(VC::INVALID_DURATION, string("a2a87f5d-b749-4a7e-8d0c-9d48a4abf626")).set_cpl_id(cpl->id()),
- VN(VC::INVALID_INTRINSIC_DURATION, string("a2a87f5d-b749-4a7e-8d0c-9d48a4abf626")).set_cpl_id(cpl->id()),
+ 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_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::EMPTY_CONTENT_VERSION_LABEL_TEXT, cpl->file().get()).set_cpl_id(cpl->id())
};
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()));
+ expected.push_back(VN(VC::INVALID_JPEG2000_GUARD_BITS_FOR_2K, string("2")).set_cpl_id(cpl->id()).set_reel_index(0));
}
check_verify_result({ dir }, {}, expected);
@@ -1108,17 +1109,19 @@ BOOST_AUTO_TEST_CASE (verify_invalid_picture_frame_size_in_bytes)
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),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "pic.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "pic.mxf"), cpl).set_reel_index(0),
};
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(24).set_cpl_id(cpl->id()));
+ VN(VC::INVALID_JPEG2000_CODESTREAM, string("missing marker start byte")).set_frame(i).set_frame_rate(24).set_cpl_id(cpl->id()).set_reel_index(0)
+ );
}
for (auto i = 0; i < 24; ++i) {
expected.push_back(
- VN(VC::INVALID_PICTURE_FRAME_SIZE_IN_BYTES, canonical(dir / "pic.mxf")).set_frame(i).set_frame_rate(24).set_cpl_id(cpl->id()));
+ VN(VC::INVALID_PICTURE_FRAME_SIZE_IN_BYTES, canonical(dir / "pic.mxf")).set_frame(i).set_frame_rate(24).set_cpl_id(cpl->id()).set_reel_index(0)
+ );
}
expected.push_back(
@@ -1150,7 +1153,7 @@ BOOST_AUTO_TEST_CASE (verify_nearly_invalid_picture_frame_size_in_bytes)
using VC = VN::Code;
vector<VN> expected = {
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "pic.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "pic.mxf"), cpl).set_reel_index(0),
note(VC::MATCHING_CPL_HASHES, cpl),
note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl),
note(VC::NONE_ENCRYPTED, cpl),
@@ -1161,13 +1164,13 @@ 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(24).set_cpl_id(cpl->id())
+ VN(VC::INVALID_JPEG2000_CODESTREAM, string("missing marker start byte")).set_frame(i).set_frame_rate(24).set_cpl_id(cpl->id()).set_reel_index(0)
);
}
for (auto i = 0; i < 24; ++i) {
expected.push_back(
- VN(VC::NEARLY_INVALID_PICTURE_FRAME_SIZE_IN_BYTES, canonical(dir / "pic.mxf")).set_frame(i).set_frame_rate(24).set_cpl_id(cpl->id())
+ VN(VC::NEARLY_INVALID_PICTURE_FRAME_SIZE_IN_BYTES, canonical(dir / "pic.mxf")).set_frame(i).set_frame_rate(24).set_cpl_id(cpl->id()).set_reel_index(0)
);
}
@@ -1195,14 +1198,14 @@ BOOST_AUTO_TEST_CASE (verify_valid_picture_frame_size_in_bytes)
{ dir },
{},
{
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "pic.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "pic.mxf"), cpl).set_reel_index(0),
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_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),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "pic.mxf"), cpl).set_reel_index(0),
VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id())
});
}
@@ -1230,7 +1233,7 @@ BOOST_AUTO_TEST_CASE (verify_valid_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::MISSING_FONT, string{"theFontId"}).set_cpl_id(cpl->id())
+ VN(VC::MISSING_FONT, string{"theFontId"}).set_cpl_id(cpl->id()).set_reel_index(0),
});
}
@@ -1257,7 +1260,7 @@ BOOST_AUTO_TEST_CASE(verify_catch_missing_font_file_with_interop_ccap)
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::MISSING_FONT, string{"theFontId"}).set_cpl_id(cpl->id())
+ VN(VC::MISSING_FONT, string{"theFontId"}).set_cpl_id(cpl->id()).set_reel_index(0),
});
}
@@ -1291,14 +1294,14 @@ 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()),
+ VN(VC::INVALID_XML, string("no declaration found for element 'Foo'"), path(), 5).set_cpl_id(cpl->id()).set_reel_index(0),
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()),
- VN(VC::MISSING_FONT, string{"theFontId"}).set_cpl_id(cpl->id())
+ ).set_cpl_id(cpl->id()).set_reel_index(0),
+ VN(VC::MISSING_FONT, string{"theFontId"}).set_cpl_id(cpl->id()).set_reel_index(0),
});
}
@@ -1325,8 +1328,8 @@ BOOST_AUTO_TEST_CASE(verify_interop_subtitle_asset_with_no_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::MISSING_SUBTITLE, asset->id(), boost::filesystem::canonical(asset->file().get())).set_cpl_id(cpl->id()),
- VN(VC::MISSING_FONT, string{"theFontId"}).set_cpl_id(cpl->id())
+ VN(VC::MISSING_SUBTITLE, asset->id(), boost::filesystem::canonical(asset->file().get())).set_cpl_id(cpl->id()).set_reel_index(0),
+ VN(VC::MISSING_FONT, string{"theFontId"}).set_cpl_id(cpl->id()).set_reel_index(0),
});
}
@@ -1353,7 +1356,7 @@ BOOST_AUTO_TEST_CASE(verify_interop_subtitle_asset_with_single_space_subtitle)
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::MISSING_FONT, string{"Arial"}).set_cpl_id(cpl->id())
+ VN(VC::MISSING_FONT, string{"Arial"}).set_cpl_id(cpl->id()).set_reel_index(0),
});
}
@@ -1381,8 +1384,8 @@ BOOST_AUTO_TEST_CASE (verify_valid_smpte_subtitles)
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_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()),
- VN(VC::INCORRECT_SUBTITLE_NAMESPACE_COUNT, asset->id()).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),
+ VN(VC::INCORRECT_SUBTITLE_NAMESPACE_COUNT, asset->id()).set_cpl_id(cpl->id()).set_reel_index(0),
});
}
@@ -1412,17 +1415,17 @@ 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()),
+ VN(VC::INVALID_XML, string("no declaration found for element 'Foo'"), path(), 2).set_cpl_id(cpl->id()).set_reel_index(0),
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()),
- VN(VC::MISSING_SUBTITLE_START_TIME, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()),
+ ).set_cpl_id(cpl->id()).set_reel_index(0),
+ VN(VC::MISSING_SUBTITLE_START_TIME, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0),
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()),
- VN(VC::INCORRECT_SUBTITLE_NAMESPACE_COUNT, asset->id()).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),
+ VN(VC::INCORRECT_SUBTITLE_NAMESPACE_COUNT, asset->id()).set_cpl_id(cpl->id()).set_reel_index(0),
});
}
@@ -1451,10 +1454,10 @@ BOOST_AUTO_TEST_CASE (verify_empty_text_node_in_subtitles)
note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl),
VN(VC::EMPTY_TEXT).set_cpl_id(cpl->id()),
VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id()),
- VN(VC::MISSING_SUBTITLE_LANGUAGE, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()),
+ VN(VC::MISSING_SUBTITLE_LANGUAGE, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0),
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()),
- VN(VC::INCORRECT_SUBTITLE_NAMESPACE_COUNT, asset->id()).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),
+ VN(VC::INCORRECT_SUBTITLE_NAMESPACE_COUNT, asset->id()).set_cpl_id(cpl->id()).set_reel_index(0),
});
}
@@ -1482,7 +1485,7 @@ BOOST_AUTO_TEST_CASE (verify_empty_text_node_in_subtitles_with_child_nodes)
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::MISSING_FONT, string{"font0"}).set_cpl_id(cpl->id())
+ VN(VC::MISSING_FONT, string{"font0"}).set_cpl_id(cpl->id()).set_reel_index(0),
});
}
@@ -1509,10 +1512,10 @@ BOOST_AUTO_TEST_CASE (verify_empty_text_node_in_subtitles_with_empty_child_nodes
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),
- VN(VC::MISSING_SUBTITLE, asset->id(), boost::filesystem::canonical(asset->file().get())).set_cpl_id(cpl->id()),
+ VN(VC::MISSING_SUBTITLE, asset->id(), boost::filesystem::canonical(asset->file().get())).set_cpl_id(cpl->id()).set_reel_index(0),
{ VC::INVALID_STANDARD },
VN(VC::EMPTY_TEXT).set_cpl_id(cpl->id()),
- VN(VC::MISSING_FONT, string{"font0"}).set_cpl_id(cpl->id())
+ VN(VC::MISSING_FONT, string{"font0"}).set_cpl_id(cpl->id()).set_reel_index(0),
});
}
@@ -1624,7 +1627,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_cpl_metadata_bad_tag)
{ dir },
{},
{
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "pic.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "pic.mxf"), cpl).set_reel_index(0),
note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl),
note(VC::NONE_ENCRYPTED, cpl),
VN(
@@ -1635,7 +1638,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_cpl_metadata_bad_tag)
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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "pic.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "pic.mxf"), cpl).set_reel_index(0),
VN(
VC::INVALID_XML, string("no declaration found for element 'meta:MainSoundXConfiguration'"), canonical(cpl->file().get()), 50
).set_cpl_id(cpl->id()),
@@ -1717,8 +1720,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()),
- VN(VC::INVALID_LANGUAGE, string("wrong-andbad")).set_cpl_id(cpl->id()),
+ 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),
VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id())
});
}
@@ -1750,8 +1753,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()),
- VN(VC::INVALID_LANGUAGE, string("wrong-andbad")).set_cpl_id(cpl->id()),
+ 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),
VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id())
});
}
@@ -1796,7 +1799,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_language3)
{ dir },
{},
{
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "videofoo.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "videofoo.mxf"), cpl).set_reel_index(0),
note(VC::MATCHING_CPL_HASHES, cpl),
note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl),
note(VC::NONE_ENCRYPTED, cpl),
@@ -1808,11 +1811,11 @@ BOOST_AUTO_TEST_CASE (verify_invalid_language3)
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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "videofoo.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "videofoo.mxf"), cpl).set_reel_index(0),
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()),
+ VN(VC::INVALID_LANGUAGE, string("frobozz")).set_cpl_id(cpl->id()).set_reel_index(0),
});
}
@@ -1897,8 +1900,8 @@ check_picture_size_ok (int width, int height, int frame_rate, bool three_d)
dcp::String::compose("%1x%2", width, height),
cpl->file().get()
).set_cpl_id(cpl->id()),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl)
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0)
};
check_verify_result(notes, expected);
}
@@ -1928,9 +1931,9 @@ check_picture_size_bad_frame_size (int width, int height, int frame_rate, bool t
dcp::String::compose("%1x%2", width, height),
cpl->file().get()
).set_cpl_id(cpl->id()),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
- VN(VC::INVALID_PICTURE_SIZE_IN_PIXELS, dcp::String::compose("%1x%2", width, height), canonical(dir / "video.mxf")).set_cpl_id(cpl->id())
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ 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)
};
check_verify_result(notes, expected);
}
@@ -1960,10 +1963,10 @@ check_picture_size_bad_2k_frame_rate (int width, int height, int frame_rate, boo
dcp::String::compose("%1x%2", width, height),
cpl->file().get()
).set_cpl_id(cpl->id()),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
- VN(VC::INVALID_PICTURE_FRAME_RATE, dcp::String::compose("%1/1", frame_rate * (three_d ? 2 : 1))).set_cpl_id(cpl->id()),
- VN(VC::INVALID_PICTURE_FRAME_RATE_FOR_2K, dcp::String::compose("%1/1", frame_rate), canonical(dir / "video.mxf")).set_cpl_id(cpl->id())
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ VN(VC::INVALID_PICTURE_FRAME_RATE, dcp::String::compose("%1/1", frame_rate * (three_d ? 2 : 1))).set_cpl_id(cpl->id()).set_reel_index(0),
+ VN(VC::INVALID_PICTURE_FRAME_RATE_FOR_2K, dcp::String::compose("%1/1", frame_rate), canonical(dir / "video.mxf")).set_cpl_id(cpl->id()).set_reel_index(0),
};
check_verify_result(notes, expected);
@@ -1994,9 +1997,9 @@ check_picture_size_bad_4k_frame_rate (int width, int height, int frame_rate, boo
dcp::String::compose("%1x%2", width, height),
cpl->file().get()
).set_cpl_id(cpl->id()),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
- VN(VC::INVALID_PICTURE_FRAME_RATE_FOR_4K, dcp::String::compose("%1/1", frame_rate), canonical(dir / "video.mxf")).set_cpl_id(cpl->id())
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ VN(VC::INVALID_PICTURE_FRAME_RATE_FOR_4K, dcp::String::compose("%1/1", frame_rate), canonical(dir / "video.mxf")).set_cpl_id(cpl->id()).set_reel_index(0),
};
check_verify_result(notes, expected);
@@ -2065,8 +2068,8 @@ BOOST_AUTO_TEST_CASE (verify_picture_size)
string{"3996x2160"},
cpl->file().get()
).set_cpl_id(cpl->id()),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
{ VC::INVALID_PICTURE_ASSET_RESOLUTION_FOR_3D },
};
}
@@ -2133,8 +2136,8 @@ BOOST_AUTO_TEST_CASE (verify_invalid_closed_caption_xml_size_in_bytes)
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::MISSING_SUBTITLE_START_TIME, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()),
- VN(VC::INVALID_CLOSED_CAPTION_XML_SIZE_IN_BYTES, string("419371"), canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()),
+ VN(VC::MISSING_SUBTITLE_START_TIME, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0),
+ VN(VC::INVALID_CLOSED_CAPTION_XML_SIZE_IN_BYTES, string("419371"), canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0),
VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id()),
VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id())
});
@@ -2184,13 +2187,13 @@ verify_timed_text_asset_too_large (string name)
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_cpl_id(cpl->id()).set_reel_index(0),
VN(
VC::INVALID_TIMED_TEXT_FONT_SIZE_IN_BYTES,
"121634816",
canonical(dir / "subs.mxf")
- ).set_cpl_id(cpl->id()),
- VN(VC::MISSING_SUBTITLE_START_TIME, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()),
+ ).set_cpl_id(cpl->id()).set_reel_index(0),
+ VN(VC::MISSING_SUBTITLE_START_TIME, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0),
VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id()),
VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id())
});
@@ -2261,9 +2264,9 @@ BOOST_AUTO_TEST_CASE (verify_missing_subtitle_language)
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),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
- VN(VC::MISSING_SUBTITLE_LANGUAGE, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ VN(VC::MISSING_SUBTITLE_LANGUAGE, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0),
VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id())
});
}
@@ -2305,8 +2308,8 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_subtitle_languages)
{ path },
{},
{
- note(VC::CORRECT_PICTURE_HASH, canonical(path / "video0.mxf"), cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(path / "video1.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(path / "video0.mxf"), cpl).set_reel_index(0),
+ note(VC::CORRECT_PICTURE_HASH, canonical(path / "video1.mxf"), cpl).set_reel_index(1),
note(VC::MATCHING_CPL_HASHES, cpl),
note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl),
note(VC::NONE_ENCRYPTED, cpl),
@@ -2318,11 +2321,11 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_subtitle_languages)
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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video0.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video1.mxf"), cpl),
- VN(VC::MISSING_SUBTITLE_START_TIME, canonical(path / "subs1.mxf")).set_cpl_id(cpl->id()),
- VN(VC::MISSING_SUBTITLE_START_TIME, canonical(path / "subs2.mxf")).set_cpl_id(cpl->id()),
- VN(VC::MISMATCHED_SUBTITLE_LANGUAGES).set_cpl_id(cpl->id()),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video0.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video1.mxf"), cpl).set_reel_index(1),
+ VN(VC::MISSING_SUBTITLE_START_TIME, canonical(path / "subs1.mxf")).set_cpl_id(cpl->id()).set_reel_index(0),
+ VN(VC::MISSING_SUBTITLE_START_TIME, canonical(path / "subs2.mxf")).set_cpl_id(cpl->id()).set_reel_index(1),
+ VN(VC::MISMATCHED_SUBTITLE_LANGUAGES).set_cpl_id(cpl->id()).set_reel_index(1),
});
}
@@ -2374,12 +2377,12 @@ BOOST_AUTO_TEST_CASE (verify_multiple_closed_caption_languages_allowed)
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),
- note(VC::CORRECT_PICTURE_HASH, canonical(path / "video0.mxf"), cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(path / "video1.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video0.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video1.mxf"), cpl),
- VN(VC::MISSING_SUBTITLE_START_TIME, canonical(path / "subs1.mxf")).set_cpl_id(cpl->id()),
- VN(VC::MISSING_SUBTITLE_START_TIME, canonical(path / "subs2.mxf")).set_cpl_id(cpl->id())
+ note(VC::CORRECT_PICTURE_HASH, canonical(path / "video0.mxf"), cpl).set_reel_index(0),
+ note(VC::CORRECT_PICTURE_HASH, canonical(path / "video1.mxf"), cpl).set_reel_index(1),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video0.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video1.mxf"), cpl).set_reel_index(1),
+ VN(VC::MISSING_SUBTITLE_START_TIME, canonical(path / "subs1.mxf")).set_cpl_id(cpl->id()).set_reel_index(0),
+ VN(VC::MISSING_SUBTITLE_START_TIME, canonical(path / "subs2.mxf")).set_cpl_id(cpl->id()).set_reel_index(1)
});
}
@@ -2430,7 +2433,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_subtitle_start_time)
{ dir },
{},
{
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
note(VC::MATCHING_CPL_HASHES, cpl),
note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl),
note(VC::NONE_ENCRYPTED, cpl),
@@ -2442,8 +2445,8 @@ BOOST_AUTO_TEST_CASE (verify_missing_subtitle_start_time)
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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
- VN(VC::MISSING_SUBTITLE_START_TIME, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ VN(VC::MISSING_SUBTITLE_START_TIME, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0),
VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id())
});
}
@@ -2502,14 +2505,14 @@ BOOST_AUTO_TEST_CASE (verify_invalid_subtitle_start_time)
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::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
VN(
VC::VALID_MAIN_PICTURE_ACTIVE_AREA,
string{"1998x1080"},
cpl->file().get()
).set_cpl_id(cpl->id()),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
- VN(VC::INVALID_SUBTITLE_START_TIME, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ VN(VC::INVALID_SUBTITLE_START_TIME, canonical(dir / "subs.mxf")).set_cpl_id(cpl->id()).set_reel_index(0),
VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id())
});
}
@@ -2854,7 +2857,7 @@ 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()),
+ VN(VC::MISMATCHED_TIMED_TEXT_DURATION , "72 96", boost::filesystem::canonical(asset->file().get())).set_cpl_id(cpl->id()).set_reel_index(0),
VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id()),
VN(VC::SUBTITLE_OVERLAPS_REEL_BOUNDARY).set_cpl_id(cpl->id()),
VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id())
@@ -3427,10 +3430,10 @@ BOOST_AUTO_TEST_CASE (verify_invalid_sound_frame_rate)
note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, 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_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "videofoo.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "videofoo.mxf"), cpl).set_reel_index(0),
note(VC::MATCHING_CPL_HASHES, cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "videofoo.mxf"), cpl),
- VN(VC::INVALID_SOUND_FRAME_RATE, string("96000"), canonical(dir / "audiofoo.mxf")).set_cpl_id(cpl->id()),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "videofoo.mxf"), cpl).set_reel_index(0),
+ VN(VC::INVALID_SOUND_FRAME_RATE, string("96000"), canonical(dir / "audiofoo.mxf")).set_cpl_id(cpl->id()).set_reel_index(0),
VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id())
});
}
@@ -3462,7 +3465,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),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
VN(
VC::VALID_MAIN_PICTURE_ACTIVE_AREA,
string{"1998x1080"},
@@ -3470,7 +3473,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_cpl_annotation_text)
).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::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl),
VN(VC::MISSING_CPL_ANNOTATION_TEXT, canonical(cpl->file().get())).set_cpl_id(cpl->id()),
VN(
@@ -3507,8 +3510,8 @@ 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::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
VN(
VC::VALID_MAIN_PICTURE_ACTIVE_AREA,
string{"1998x1080"},
@@ -3556,11 +3559,11 @@ BOOST_AUTO_TEST_CASE (verify_mismatched_asset_duration)
note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl),
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),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl),
note(VC::MATCHING_CPL_HASHES, cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
- VN(VC::MISMATCHED_ASSET_DURATION).set_cpl_id(cpl->id()),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ VN(VC::MISMATCHED_ASSET_DURATION).set_cpl_id(cpl->id()).set_reel_index(0),
VN(VC::MISSING_CPL_METADATA, canonical(cpl->file().get())).set_cpl_id(cpl->id())
});
}
@@ -3640,11 +3643,11 @@ BOOST_AUTO_TEST_CASE (verify_missing_main_subtitle_from_some_reels)
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_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video1.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video1.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl).set_reel_index(1),
note(VC::MATCHING_CPL_HASHES, cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video1.mxf"), cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video2.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video1.mxf"), cpl).set_reel_index(0),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video2.mxf"), cpl).set_reel_index(1),
VN(VC::MISSING_MAIN_SUBTITLE_FROM_SOME_REELS).set_cpl_id(cpl->id()),
VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id())
});
@@ -3663,11 +3666,11 @@ BOOST_AUTO_TEST_CASE (verify_missing_main_subtitle_from_some_reels)
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_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video1.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video1.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl).set_reel_index(1),
note(VC::MATCHING_CPL_HASHES, cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video1.mxf"), cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video2.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video1.mxf"), cpl).set_reel_index(0),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video2.mxf"), cpl).set_reel_index(1),
VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id())
});
}
@@ -3684,11 +3687,11 @@ BOOST_AUTO_TEST_CASE (verify_missing_main_subtitle_from_some_reels)
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_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video1.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video1.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl).set_reel_index(1),
note(VC::MATCHING_CPL_HASHES, cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video1.mxf"), cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video2.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video1.mxf"), cpl).set_reel_index(0),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video2.mxf"), cpl).set_reel_index(1),
VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id())
});
}
@@ -3763,12 +3766,12 @@ 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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video1.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl).set_reel_index(1),
note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl),
note(VC::MATCHING_CPL_HASHES, cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video1.mxf"), cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video2.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video1.mxf"), cpl).set_reel_index(0),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video2.mxf"), cpl).set_reel_index(1),
note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl),
note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl),
note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl),
@@ -3785,14 +3788,14 @@ 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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video1.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl).set_reel_index(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),
note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video1.mxf"), cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video2.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video1.mxf"), cpl).set_reel_index(0),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video2.mxf"), cpl).set_reel_index(1),
note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl),
VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id())
});
@@ -3806,14 +3809,14 @@ 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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video1.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video2.mxf"), cpl).set_reel_index(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),
note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video1.mxf"), cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video2.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video1.mxf"), cpl).set_reel_index(0),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video2.mxf"), cpl).set_reel_index(1),
note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl),
VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id())
});
@@ -3864,13 +3867,13 @@ 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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl),
note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
note(VC::MATCHING_CPL_HASHES, cpl),
note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl),
- VN(code, subs->id()).set_cpl_id(cpl->id()),
+ VN(code, subs->id()).set_cpl_id(cpl->id()).set_reel_index(0),
VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id())
});
}
@@ -3957,13 +3960,13 @@ BOOST_AUTO_TEST_CASE (verify_missing_hash)
note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl),
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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl),
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())
+ VN(VC::MISSING_HASH, asset_id).set_cpl_id(cpl->id()).set_reel_index(0)
});
}
@@ -3993,7 +3996,7 @@ verify_markers_test (
using VN = dcp::VerificationNote;
using VC = VN::Code;
- test_notes.push_back(note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl));
+ test_notes.push_back(note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0));
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));
@@ -4007,7 +4010,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(note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl));
+ test_notes.push_back(note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0));
check_verify_result({dir}, {}, test_notes);
}
@@ -4115,7 +4118,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_cpl_metadata_version_number)
{dir},
{},
{
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
note(VC::MATCHING_CPL_HASHES, cpl),
note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl),
note(VC::NONE_ENCRYPTED, cpl),
@@ -4127,7 +4130,7 @@ BOOST_AUTO_TEST_CASE (verify_missing_cpl_metadata_version_number)
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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
VN(VC::MISSING_CPL_METADATA_VERSION_NUMBER, cpl->file().get()).set_cpl_id(cpl->id())
});
}
@@ -4160,8 +4163,8 @@ BOOST_AUTO_TEST_CASE (verify_missing_extension_metadata1)
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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
VN(
VC::VALID_MAIN_PICTURE_ACTIVE_AREA,
string{"1998x1080"},
@@ -4202,8 +4205,8 @@ BOOST_AUTO_TEST_CASE (verify_missing_extension_metadata2)
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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
VN(
VC::VALID_MAIN_PICTURE_ACTIVE_AREA,
string{"1998x1080"},
@@ -4245,8 +4248,8 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata3)
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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
VN(
VC::VALID_MAIN_PICTURE_ACTIVE_AREA,
string{"1998x1080"},
@@ -4291,8 +4294,8 @@ BOOST_AUTO_TEST_CASE (verify_invalid_extension_metadata1)
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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
VN(
VC::VALID_MAIN_PICTURE_ACTIVE_AREA,
string{"1998x1080"},
@@ -4333,8 +4336,8 @@ BOOST_AUTO_TEST_CASE (verify_invalid_extension_metadata2)
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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
VN(
VC::VALID_MAIN_PICTURE_ACTIVE_AREA,
string{"1998x1080"},
@@ -4378,8 +4381,8 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata6)
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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
VN(
VC::VALID_MAIN_PICTURE_ACTIVE_AREA,
string{"1998x1080"},
@@ -4428,8 +4431,8 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata7)
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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
VN(
VC::VALID_MAIN_PICTURE_ACTIVE_AREA,
string{"1998x1080"},
@@ -4473,8 +4476,8 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata8)
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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
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()),
@@ -4517,8 +4520,8 @@ BOOST_AUTO_TEST_CASE (verify_invalid_xml_cpl_extension_metadata9)
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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
VN(
VC::VALID_MAIN_PICTURE_ACTIVE_AREA,
string{"1998x1080"},
@@ -4567,11 +4570,11 @@ 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),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl),
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),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
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()),
@@ -4611,11 +4614,11 @@ 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),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl),
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),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
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::MISSING_FFEC_IN_FEATURE).set_cpl_id(cpl->id()),
@@ -4650,7 +4653,7 @@ BOOST_AUTO_TEST_CASE (verify_unsigned_pkl_with_unencrypted_content)
{dir},
{},
{
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
note(VC::MATCHING_CPL_HASHES, cpl),
note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl),
note(VC::NONE_ENCRYPTED, cpl),
@@ -4662,7 +4665,7 @@ BOOST_AUTO_TEST_CASE (verify_unsigned_pkl_with_unencrypted_content)
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),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
});
}
@@ -4743,8 +4746,8 @@ BOOST_AUTO_TEST_CASE (verify_partially_encrypted)
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::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
VN(VC::PARTIALLY_ENCRYPTED).set_cpl_id(cpl->id())
});
}
@@ -4854,8 +4857,8 @@ 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()),
- VN(VC::MISMATCHED_TIMED_TEXT_RESOURCE_ID).set_cpl_id(cpl->id()),
+ VN(VC::MISMATCHED_TIMED_TEXT_DURATION , "240 0", boost::filesystem::canonical(subs_mxf)).set_cpl_id(cpl->id()).set_reel_index(0),
+ VN(VC::MISMATCHED_TIMED_TEXT_RESOURCE_ID).set_cpl_id(cpl->id()).set_reel_index(0),
VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->id()),
VN(VC::MISSING_CPL_METADATA, cpl->file().get()).set_cpl_id(cpl->id())
});
@@ -4929,11 +4932,11 @@ 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()),
- VN(VC::INCORRECT_TIMED_TEXT_ASSET_ID).set_cpl_id(cpl->id()),
+ VN(VC::MISMATCHED_TIMED_TEXT_DURATION , "240 0", boost::filesystem::canonical(subs_mxf)).set_cpl_id(cpl->id()).set_reel_index(0),
+ VN(VC::INCORRECT_TIMED_TEXT_ASSET_ID).set_cpl_id(cpl->id()).set_reel_index(0),
VN(VC::INVALID_SUBTITLE_FIRST_TEXT_TIME).set_cpl_id(cpl->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())
+ VN(VC::INVALID_SUBTITLE_ISSUE_DATE, string{"2018-10-02T12:25:14+02:00"}).set_cpl_id(cpl->id()).set_reel_index(0)
});
}
@@ -4954,8 +4957,8 @@ BOOST_AUTO_TEST_CASE (verify_threed_marked_as_twod)
{},
{
note(VC::NONE_ENCRYPTED, cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(path / "0d6f57e6-adac-4e1d-bfbe-d162bf13e2cd_j2c.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "0d6f57e6-adac-4e1d-bfbe-d162bf13e2cd_j2c.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(path / "0d6f57e6-adac-4e1d-bfbe-d162bf13e2cd_j2c.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "0d6f57e6-adac-4e1d-bfbe-d162bf13e2cd_j2c.mxf"), cpl).set_reel_index(0),
note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl),
note(VC::MATCHING_CPL_HASHES, cpl),
note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl),
@@ -4994,8 +4997,8 @@ 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::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
VN(
VC::VALID_MAIN_PICTURE_ACTIVE_AREA,
string{"1998x1080"},
@@ -5007,8 +5010,8 @@ BOOST_AUTO_TEST_CASE (verify_unexpected_things_in_main_markers)
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::UNEXPECTED_ENTRY_POINT).set_cpl_id(cpl->id()),
- VN(VC::UNEXPECTED_DURATION).set_cpl_id(cpl->id())
+ VN(VC::UNEXPECTED_ENTRY_POINT).set_cpl_id(cpl->id()).set_reel_index(0),
+ VN(VC::UNEXPECTED_DURATION).set_cpl_id(cpl->id()).set_reel_index(0)
});
}
@@ -5045,8 +5048,8 @@ BOOST_AUTO_TEST_CASE(verify_invalid_content_kind)
note(VC::MATCHING_PKL_ANNOTATION_TEXT_WITH_CPL, cpl),
note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl),
note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
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()),
@@ -5084,8 +5087,8 @@ BOOST_AUTO_TEST_CASE(verify_valid_content_kind)
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),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
VN(
VC::VALID_MAIN_PICTURE_ACTIVE_AREA,
string{"1998x1080"},
@@ -5131,8 +5134,8 @@ BOOST_AUTO_TEST_CASE(verify_invalid_main_picture_active_area_1)
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),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
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()),
@@ -5141,7 +5144,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_main_picture_active_area_1)
).set_cpl_id(cpl->id()),
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_cpl_id(cpl->id()).set_reel_index(0),
});
}
@@ -5179,8 +5182,8 @@ BOOST_AUTO_TEST_CASE(verify_invalid_main_picture_active_area_2)
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),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
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()),
@@ -5189,10 +5192,10 @@ BOOST_AUTO_TEST_CASE(verify_invalid_main_picture_active_area_2)
).set_cpl_id(cpl->id()),
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_cpl_id(cpl->id()).set_reel_index(0),
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_cpl_id(cpl->id()).set_reel_index(0)
});
}
@@ -5307,7 +5310,6 @@ BOOST_AUTO_TEST_CASE(verify_mismatched_sound_channel_counts)
cpl->set_version_number(1);
{
-
/* Reel with 2 channels of audio */
auto mp = simple_picture(path, "1", frames, {});
@@ -5364,14 +5366,14 @@ BOOST_AUTO_TEST_CASE(verify_mismatched_sound_channel_counts)
).set_cpl_id(cpl->id()),
note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl),
note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(path / "video1.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video1.mxf"), cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(path / "video2.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video2.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(path / "video1.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video1.mxf"), cpl).set_reel_index(0),
+ note(VC::CORRECT_PICTURE_HASH, canonical(path / "video2.mxf"), cpl).set_reel_index(1),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video2.mxf"), cpl).set_reel_index(1),
note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl),
VN(
VC::MISMATCHED_SOUND_CHANNEL_COUNTS, canonical(find_file(path, "audio2"))
- ).set_cpl_id(cpl->id())
+ ).set_cpl_id(cpl->id()).set_reel_index(1)
});
}
@@ -5430,8 +5432,8 @@ BOOST_AUTO_TEST_CASE(verify_invalid_main_sound_configuration)
note(VC::MATCHING_CPL_HASHES, cpl),
note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl),
note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(path / "video1.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video1.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(path / "video1.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(path / "video1.mxf"), cpl).set_reel_index(0),
VN(
VC::VALID_MAIN_PICTURE_ACTIVE_AREA,
string{"1998x1080"},
@@ -5507,7 +5509,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_tile_part_size)
string{"1998x1080"},
cpl->file().get()
).set_cpl_id(cpl->id()),
- note(VC::CORRECT_PICTURE_HASH, canonical(path / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(path / "video.mxf"), cpl).set_reel_index(0),
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),
@@ -5520,7 +5522,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_tile_part_size)
for (auto frame = 0; frame < 24; frame++) {
expected.push_back(
VN(VC::INVALID_PICTURE_FRAME_SIZE_IN_BYTES, canonical(path / "video.mxf")
- ).set_frame(frame).set_frame_rate(24).set_cpl_id(cpl->id())
+ ).set_frame(frame).set_frame_rate(24).set_cpl_id(cpl->id()).set_reel_index(0)
);
}
@@ -5535,7 +5537,7 @@ BOOST_AUTO_TEST_CASE(verify_invalid_tile_part_size)
expected.push_back(
VN(
VC::INVALID_JPEG2000_TILE_PART_SIZE
- ).set_frame(frame).set_frame_rate(24).set_component(component).set_size(component_sizes[component]).set_cpl_id(cpl->id())
+ ).set_frame(frame).set_frame_rate(24).set_component(component).set_size(component_sizes[component]).set_cpl_id(cpl->id()).set_reel_index(0)
);
}
}
@@ -5564,15 +5566,15 @@ BOOST_AUTO_TEST_CASE(verify_too_many_subtitle_namespaces)
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),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "j2c_42b34dcd-caa5-4c7b-aa0f-66a590947ba1.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "j2c_42b34dcd-caa5-4c7b-aa0f-66a590947ba1.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "j2c_42b34dcd-caa5-4c7b-aa0f-66a590947ba1.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "j2c_42b34dcd-caa5-4c7b-aa0f-66a590947ba1.mxf"), cpl).set_reel_index(0),
note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl),
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()),
- VN(VC::MISSING_SUBTITLE_LANGUAGE, canonical(find_file(dir, "sub_"))).set_cpl_id(cpl->id()),
+ VN(VC::MISSING_SUBTITLE_LANGUAGE, canonical(find_file(dir, "sub_"))).set_cpl_id(cpl->id()).set_reel_index(0),
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()),
+ VN(VC::INCORRECT_SUBTITLE_NAMESPACE_COUNT, std::string{"315de731-1173-484c-9a35-bdacf5a9d99d"}).set_cpl_id(cpl->id()).set_reel_index(0)
});
}
@@ -5666,9 +5668,9 @@ BOOST_AUTO_TEST_CASE(verify_missing_load_font)
note(VC::VALID_CONTENT_KIND, string{"trailer"}, cpl),
note(VC::VALID_CPL_ANNOTATION_TEXT, string{"A Test DCP"}, cpl),
note(VC::VALID_CONTENT_VERSION_LABEL_TEXT, cpl->content_version()->label_text, cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
- VN(VC::MISSING_LOAD_FONT).set_id(reel_subs->id()).set_cpl_id(cpl->id())
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ VN(VC::MISSING_LOAD_FONT).set_id(reel_subs->id()).set_cpl_id(cpl->id()).set_reel_index(0)
});
}
@@ -5742,8 +5744,8 @@ BOOST_AUTO_TEST_CASE(verify_cpl_content_version_label_text_empty)
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),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "video.mxf"), cpl).set_reel_index(0),
VN(VC::EMPTY_CONTENT_VERSION_LABEL_TEXT, cpl->file().get()).set_cpl_id(cpl->id())
});
}
@@ -5805,9 +5807,9 @@ BOOST_AUTO_TEST_CASE(verify_encrypted_smpte_dcp_without_kdm)
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::MISSED_CHECK_OF_ENCRYPTED).set_cpl_id(cpl->id()),
- VN(VC::MISSED_CHECK_OF_ENCRYPTED).set_cpl_id(cpl->id()),
- VN(VC::MISSED_CHECK_OF_ENCRYPTED).set_cpl_id(cpl->id()),
+ VN(VC::MISSED_CHECK_OF_ENCRYPTED).set_cpl_id(cpl->id()).set_reel_index(0),
+ VN(VC::MISSED_CHECK_OF_ENCRYPTED).set_cpl_id(cpl->id()).set_reel_index(0),
+ VN(VC::MISSED_CHECK_OF_ENCRYPTED).set_cpl_id(cpl->id()).set_reel_index(0),
VN(VC::MISSING_CPL_METADATA, canonical(cpl_file)).set_cpl_id(cpl->id()),
});
}
@@ -5829,18 +5831,18 @@ BOOST_AUTO_TEST_CASE(verify_invalid_sound_bit_depth)
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),
note(VC::NONE_ENCRYPTED, cpl),
- note(VC::CORRECT_PICTURE_HASH, canonical(dir / "Video.mxf"), cpl),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "Video.mxf"), cpl),
- VN(VC::INVALID_SOUND_BIT_DEPTH, "16", canonical(dir / "Audio.mxf")).set_cpl_id(cpl->id()),
- VN(VC::MISSING_HASH, string("fd4796c2-9c84-454c-91f4-13ad127cea8a")).set_cpl_id(cpl->id()),
- VN(VC::MISSING_HASH, string("9d5e8bc4-676b-4306-a86d-03f70c73b457")).set_cpl_id(cpl->id()),
+ note(VC::CORRECT_PICTURE_HASH, canonical(dir / "Video.mxf"), cpl).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(dir / "Video.mxf"), cpl).set_reel_index(0),
+ VN(VC::INVALID_SOUND_BIT_DEPTH, "16", canonical(dir / "Audio.mxf")).set_cpl_id(cpl->id()).set_reel_index(0),
+ 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()),
VN(VC::MISSING_FFOC).set_cpl_id(cpl->id()),
VN(VC::MISSING_LFOC).set_cpl_id(cpl->id()),
};
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()));
+ notes.push_back(VN(VC::INVALID_JPEG2000_GUARD_BITS_FOR_2K, string("2")).set_cpl_id(cpl->id()).set_reel_index(0));
}
check_verify_result({ dir }, {}, notes);
@@ -5983,10 +5985,10 @@ BOOST_AUTO_TEST_CASE(verify_dcp_with_two_cpls)
note(VC::VALID_CPL_ANNOTATION_TEXT, string{"hello"}, cpls[1]),
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]),
- note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(combined / "videofoo0.mxf"), cpls[1]),
- note(VC::CORRECT_PICTURE_HASH, canonical(combined / "videofoo.mxf"), cpls[0]),
- note(VC::CORRECT_PICTURE_HASH, canonical(combined / "videofoo0.mxf"), cpls[1]),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(combined / "videofoo.mxf"), cpls[0]).set_reel_index(0),
+ note(VC::VALID_PICTURE_FRAME_SIZES_IN_BYTES, canonical(combined / "videofoo0.mxf"), cpls[1]).set_reel_index(0),
+ note(VC::CORRECT_PICTURE_HASH, canonical(combined / "videofoo.mxf"), cpls[0]).set_reel_index(0),
+ note(VC::CORRECT_PICTURE_HASH, canonical(combined / "videofoo0.mxf"), cpls[1]).set_reel_index(0),
VN(VC::MISSING_CPL_METADATA, canonical(combined / cpls[0]->file()->filename())).set_cpl_id(cpls[0]->id()),
VN(VC::MISSING_CPL_METADATA, canonical(combined / cpls[1]->file()->filename())).set_cpl_id(cpls[1]->id())
});