X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=test%2Fcombine_test.cc;h=09a4577021ea314f09dbf909960b762e040688ea;hb=de2a8ad58860273610dcd4bf449f0ada51bafb5f;hp=f6f4789c4f1a5b95c43ce2c8122cf189a968d49c;hpb=dde186a4c30f066c4bea7bb120ceb130f83faf90;p=libdcp.git diff --git a/test/combine_test.cc b/test/combine_test.cc index f6f4789c..09a45770 100644 --- a/test/combine_test.cc +++ b/test/combine_test.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2020 Carl Hetherington + Copyright (C) 2020-2021 Carl Hetherington This file is part of libdcp. @@ -42,8 +42,8 @@ #include "test.h" #include "types.h" #include "verify.h" +#include "reel_markers_asset.h" #include -#include #include #include #include @@ -51,9 +51,10 @@ using std::list; using std::string; +using std::make_shared; using std::vector; -using boost::optional; using std::shared_ptr; +using boost::optional; static void @@ -72,7 +73,7 @@ static void dump_notes (vector const & notes) { - BOOST_FOREACH (dcp::VerificationNote i, notes) { + for (auto i: notes) { std::cout << dcp::note_to_string(i) << "\n"; } } @@ -87,7 +88,7 @@ check_no_errors (boost::filesystem::path path) auto notes = dcp::verify (directories, &stage, &progress, xsd_test); vector 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::Code::INVALID_STANDARD && i.code() != dcp::VerificationNote::Code::INVALID_SUBTITLE_DURATION; }); dump_notes (filtered_notes); BOOST_CHECK (filtered_notes.empty()); @@ -98,7 +99,7 @@ template shared_ptr pointer_to_id_in_vector (shared_ptr needle, vector > haystack) { - BOOST_FOREACH (shared_ptr i, haystack) { + for (auto i: haystack) { if (i->id() == needle->id()) { return i; } @@ -126,19 +127,18 @@ check_combined (vector inputs, boost::filesystem::path dcp::EqualityOptions options; options.load_font_nodes_can_differ = true; - BOOST_FOREACH (boost::filesystem::path i, inputs) - { + for (auto i: inputs) { dcp::DCP input_dcp (i); input_dcp.read (); BOOST_REQUIRE (input_dcp.cpls().size() == 1); - shared_ptr input_cpl = input_dcp.cpls().front(); + auto input_cpl = input_dcp.cpls().front(); - shared_ptr output_cpl = pointer_to_id_in_vector (input_cpl, output_dcp.cpls()); + auto output_cpl = pointer_to_id_in_vector (input_cpl, output_dcp.cpls()); BOOST_REQUIRE (output_cpl); - BOOST_FOREACH (shared_ptr i, input_dcp.assets(true)) { - shared_ptr o = pointer_to_id_in_vector(i, output_dcp.assets()); + for (auto i: input_dcp.assets(true)) { + auto o = pointer_to_id_in_vector(i, output_dcp.assets()); BOOST_REQUIRE_MESSAGE (o, "Could not find " << i->id() << " in combined DCP."); BOOST_CHECK (i->equals(o, options, note_handler)); } @@ -155,7 +155,14 @@ BOOST_AUTO_TEST_CASE (combine_single_dcp_test) remove_all (out); vector inputs; inputs.push_back ("test/ref/DCP/dcp_test1"); - dcp::combine (inputs, out); + dcp::combine ( + inputs, + out, + dcp::String::compose("libdcp %1", dcp::version), + dcp::String::compose("libdcp %1", dcp::version), + dcp::LocalTime().as_string(), + "A Test DCP" + ); check_no_errors (out); check_combined (inputs, out); @@ -169,7 +176,7 @@ BOOST_AUTO_TEST_CASE (combine_two_dcps_with_same_asset_filenames_test) boost::filesystem::path const out = "build/test/combine_two_dcps_with_same_asset_filenames_test"; shared_ptr second = make_simple ("build/test/combine_input2"); - second->write_xml (dcp::SMPTE); + second->write_xml (dcp::Standard::SMPTE); remove_all (out); vector inputs; @@ -189,10 +196,10 @@ BOOST_AUTO_TEST_CASE (combine_two_dcps_with_interop_subs_test) boost::filesystem::path const out = "build/test/combine_two_dcps_with_interop_subs_test"; shared_ptr first = make_simple_with_interop_subs ("build/test/combine_input1"); - first->write_xml (dcp::INTEROP); + first->write_xml (dcp::Standard::INTEROP); shared_ptr second = make_simple_with_interop_subs ("build/test/combine_input2"); - second->write_xml (dcp::INTEROP); + second->write_xml (dcp::Standard::INTEROP); remove_all (out); vector inputs; @@ -212,10 +219,10 @@ BOOST_AUTO_TEST_CASE (combine_two_dcps_with_smpte_subs_test) boost::filesystem::path const out = "build/test/combine_two_dcps_with_smpte_subs_test"; shared_ptr first = make_simple_with_smpte_subs ("build/test/combine_input1"); - first->write_xml (dcp::SMPTE); + first->write_xml (dcp::Standard::SMPTE); shared_ptr second = make_simple_with_smpte_subs ("build/test/combine_input2"); - second->write_xml (dcp::SMPTE); + second->write_xml (dcp::Standard::SMPTE); remove_all (out); vector inputs; @@ -235,10 +242,10 @@ BOOST_AUTO_TEST_CASE (combine_two_dcps_with_interop_ccaps_test) boost::filesystem::path const out = "build/test/combine_two_dcps_with_interop_ccaps_test"; shared_ptr first = make_simple_with_interop_ccaps ("build/test/combine_input1"); - first->write_xml (dcp::INTEROP); + first->write_xml (dcp::Standard::INTEROP); shared_ptr second = make_simple_with_interop_ccaps ("build/test/combine_input2"); - second->write_xml (dcp::INTEROP); + second->write_xml (dcp::Standard::INTEROP); remove_all (out); vector inputs; @@ -258,10 +265,10 @@ BOOST_AUTO_TEST_CASE (combine_two_dcps_with_smpte_ccaps_test) boost::filesystem::path const out = "build/test/combine_two_dcps_with_interop_ccaps_test"; shared_ptr first = make_simple_with_smpte_ccaps ("build/test/combine_input1"); - first->write_xml (dcp::SMPTE); + first->write_xml (dcp::Standard::SMPTE); shared_ptr second = make_simple_with_smpte_ccaps ("build/test/combine_input2"); - second->write_xml (dcp::SMPTE); + second->write_xml (dcp::Standard::SMPTE); remove_all (out); vector inputs; @@ -281,10 +288,10 @@ BOOST_AUTO_TEST_CASE (combine_two_multi_reel_dcps) boost::filesystem::path const out = "build/test/combine_two_multi_reel_dcps"; shared_ptr first = make_simple ("build/test/combine_input1", 4); - first->write_xml (dcp::SMPTE); + first->write_xml (dcp::Standard::SMPTE); shared_ptr second = make_simple ("build/test/combine_input2", 4); - second->write_xml (dcp::SMPTE); + second->write_xml (dcp::Standard::SMPTE); remove_all (out); vector inputs; @@ -303,7 +310,7 @@ BOOST_AUTO_TEST_CASE (combine_two_dcps_with_shared_asset) boost::filesystem::path const out = "build/test/combine_two_dcps_with_shared_asset"; shared_ptr first = make_simple ("build/test/combine_input1", 1); - first->write_xml (dcp::SMPTE); + first->write_xml (dcp::Standard::SMPTE); remove_all ("build/test/combine_input2"); shared_ptr second(new dcp::DCP("build/test/combine_input2")); @@ -312,16 +319,23 @@ BOOST_AUTO_TEST_CASE (combine_two_dcps_with_shared_asset) mxf_meta.company_name = "OpenDCP"; mxf_meta.product_version = "0.0.25"; - shared_ptr cpl (new dcp::CPL("A Test DCP", dcp::FEATURE)); + auto cpl = make_shared("A Test DCP", dcp::ContentKind::TRAILER); cpl->set_content_version ( dcp::ContentVersion("urn:uuid:75ac29aa-42ac-1234-ecae-49251abefd11","content-version-label-text") ); - - shared_ptr pic(new dcp::ReelMonoPictureAsset(simple_picture("build/test/combine_input2", ""), 0)); - shared_ptr sound(new dcp::ReelSoundAsset(first->cpls().front()->reels().front()->main_sound()->asset(), 0)); - cpl->add (shared_ptr(new dcp::Reel(pic, sound))); + cpl->set_main_sound_configuration ("L,C,R,Lfe,-,-"); + cpl->set_main_sound_sample_rate (48000); + cpl->set_main_picture_stored_area (dcp::Size(1998, 1080)); + cpl->set_main_picture_active_area (dcp::Size(1440, 1080)); + cpl->set_version_number(1); + + auto pic = make_shared(simple_picture("build/test/combine_input2", ""), 0); + auto sound = make_shared(first->cpls().front()->reels().front()->main_sound()->asset(), 0); + auto reel = make_shared(pic, sound); + reel->add (simple_markers()); + cpl->add (reel); second->add (cpl); - second->write_xml (dcp::SMPTE); + second->write_xml (dcp::Standard::SMPTE); remove_all (out); vector inputs;