X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Fmarkers_test.cc;h=a3c46af44109e237de0aad77f390b418905f1ec3;hb=HEAD;hp=1541348d17fe23554fc129c0065fa750d60c39db;hpb=66d80759298e4f27fb0de5d667be99a097feaee9;p=dcpomatic.git diff --git a/test/markers_test.cc b/test/markers_test.cc index 1541348d1..a3c46af44 100644 --- a/test/markers_test.cc +++ b/test/markers_test.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2020 Carl Hetherington + Copyright (C) 2020-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -37,7 +37,6 @@ using std::string; using boost::optional; -using std::shared_ptr; /** Check that FFOC and LFOC are automatically added if not specified */ @@ -45,12 +44,11 @@ BOOST_AUTO_TEST_CASE (automatic_ffoc_lfoc_markers_test1) { string const name = "automatic_ffoc_lfoc_markers_test1"; auto film = new_test_film2 (name); - film->examine_and_add_content (content_factory("test/data/flat_red.png").front()); + film->examine_and_add_content (content_factory("test/data/flat_red.png")[0]); BOOST_REQUIRE (!wait_for_jobs()); film->set_interop (false); - film->make_dcp (); - BOOST_REQUIRE (!wait_for_jobs()); + make_and_verify_dcp (film); dcp::DCP dcp (String::compose("build/test/%1/%2", name, film->dcp_name())); dcp.read (); @@ -75,14 +73,18 @@ BOOST_AUTO_TEST_CASE (automatic_ffoc_lfoc_markers_test2) { string const name = "automatic_ffoc_lfoc_markers_test2"; auto film = new_test_film2 (name); - film->examine_and_add_content (content_factory("test/data/flat_red.png").front()); + film->examine_and_add_content (content_factory("test/data/flat_red.png")[0]); BOOST_REQUIRE (!wait_for_jobs()); film->set_interop (false); film->set_marker (dcp::Marker::FFOC, dcpomatic::DCPTime::from_seconds(1)); film->set_marker (dcp::Marker::LFOC, dcpomatic::DCPTime::from_seconds(9)); - film->make_dcp (); - BOOST_REQUIRE (!wait_for_jobs()); + make_and_verify_dcp ( + film, + { + dcp::VerificationNote::Code::INCORRECT_FFOC, + dcp::VerificationNote::Code::INCORRECT_LFOC + }); dcp::DCP dcp (String::compose("build/test/%1/%2", name, film->dcp_name())); dcp.read (); @@ -101,3 +103,52 @@ BOOST_AUTO_TEST_CASE (automatic_ffoc_lfoc_markers_test2) BOOST_CHECK (*lfoc == dcp::Time(0, 0, 9, 0, 24)); } + + +BOOST_AUTO_TEST_CASE(markers_correct_with_reels) +{ + string const name = "markers_correct_with_reels"; + auto content1 = content_factory("test/data/flat_red.png")[0]; + auto content2 = content_factory("test/data/flat_red.png")[0]; + auto film = new_test_film2(name, { content1, content2}); + + film->set_interop(false); + film->set_reel_type(ReelType::BY_VIDEO_CONTENT); + make_and_verify_dcp(film); + + dcp::DCP dcp(String::compose("build/test/%1/%2", name, film->dcp_name())); + dcp.read (); + BOOST_REQUIRE_EQUAL(dcp.cpls().size(), 1U); + auto cpl = dcp.cpls()[0]; + BOOST_REQUIRE_EQUAL(cpl->reels().size(), 2U); + + auto markers1 = cpl->reels()[0]->main_markers(); + BOOST_REQUIRE(markers1); + auto ffoc = markers1->get(dcp::Marker::FFOC); + BOOST_REQUIRE(ffoc); + BOOST_CHECK(*ffoc == dcp::Time(0, 0, 0, 1, 24)); + auto no_lfoc = markers1->get(dcp::Marker::LFOC); + BOOST_CHECK(!no_lfoc); + + auto markers2 = cpl->reels()[1]->main_markers(); + BOOST_REQUIRE(markers2); + auto no_ffoc = markers2->get(dcp::Marker::FFOC); + BOOST_REQUIRE(!no_ffoc); + auto lfoc = markers2->get(dcp::Marker::LFOC); + BOOST_REQUIRE(lfoc); + BOOST_CHECK(*lfoc == dcp::Time(0, 0, 9, 23, 24)); +} + + +BOOST_AUTO_TEST_CASE(no_markers_with_interop) +{ + string const name = "no_markers_with_interop"; + auto film = new_test_film2(name, content_factory("test/data/flat_red.png")); + + film->set_interop(true); + make_and_verify_dcp(film, { dcp::VerificationNote::Code::INVALID_STANDARD }); + + auto cpl = find_file(film->dir(film->dcp_name()), "cpl_"); + BOOST_CHECK(dcp::file_to_string(cpl).find("MainMarkers") == std::string::npos); +} +