X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=test%2Fdcp_decoder_test.cc;h=5d4d1e0cacbb2a2648513c56fac28352e747fe2d;hp=231a99da2268c67a350bc4f1da04e773d5ff454e;hb=6d686ea45f5cd01a0d11f92a903ac77779ad8562;hpb=990f879d9af6300068af44c431b1a8e158e7f7a0 diff --git a/test/dcp_decoder_test.cc b/test/dcp_decoder_test.cc index 231a99da2..5d4d1e0ca 100644 --- a/test/dcp_decoder_test.cc +++ b/test/dcp_decoder_test.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2019 Carl Hetherington + Copyright (C) 2019-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,66 +18,65 @@ */ + /** @file test/dcp_decoder_test.cc * @brief Test DCPDecoder class. * @ingroup selfcontained */ -#include "lib/film.h" + +#include "lib/config.h" +#include "lib/content_factory.h" #include "lib/dcp_content.h" #include "lib/dcp_decoder.h" -#include "lib/content_factory.h" -#include "lib/player.h" #include "lib/examine_content_job.h" +#include "lib/film.h" #include "lib/job_manager.h" -#include "lib/config.h" +#include "lib/piece.h" +#include "lib/player.h" #include "test.h" +#include #include #include #include + using std::list; using std::string; using std::vector; -using boost::shared_ptr; +using std::make_shared; +using std::shared_ptr; + /* Check that DCPDecoder reuses old data when it should */ BOOST_AUTO_TEST_CASE (check_reuse_old_data_test) { /* Make some DCPs */ - shared_ptr ov = new_test_film2 ("check_reuse_old_data_ov"); - ov->examine_and_add_content (content_factory("test/data/flat_red.png").front()); - BOOST_REQUIRE (!wait_for_jobs()); - ov->make_dcp (); - BOOST_REQUIRE (!wait_for_jobs()); + auto ov = new_test_film2 ("check_reuse_old_data_ov", {content_factory("test/data/flat_red.png").front()}); + make_and_verify_dcp (ov); - shared_ptr vf = new_test_film2 ("check_reuse_old_data_vf"); - shared_ptr ov_content(new DCPContent(ov->dir(ov->dcp_name(false)))); - vf->examine_and_add_content (ov_content); - vf->examine_and_add_content (content_factory("test/data/L.wav").front()); - BOOST_REQUIRE (!wait_for_jobs()); + auto ov_content = make_shared(ov->dir(ov->dcp_name(false))); + auto vf = new_test_film2 ("check_reuse_old_data_vf", {ov_content, content_factory("test/data/L.wav").front()}); ov_content->set_reference_video (true); - vf->make_dcp (); - BOOST_REQUIRE (!wait_for_jobs()); + make_and_verify_dcp (vf, {dcp::VerificationNote::Code::EXTERNAL_ASSET}); - shared_ptr encrypted = new_test_film2 ("check_reuse_old_data_decrypted"); + auto encrypted = new_test_film2 ("check_reuse_old_data_decrypted"); encrypted->examine_and_add_content (content_factory("test/data/flat_red.png").front()); BOOST_REQUIRE (!wait_for_jobs()); encrypted->set_encrypted (true); - encrypted->make_dcp (); - BOOST_REQUIRE (!wait_for_jobs()); + make_and_verify_dcp (encrypted); dcp::DCP encrypted_dcp (encrypted->dir(encrypted->dcp_name())); encrypted_dcp.read (); - dcp::EncryptedKDM kdm = encrypted->make_kdm ( + auto kdm = encrypted->make_kdm ( Config::instance()->decryption_chain()->leaf(), vector(), encrypted_dcp.cpls().front()->file().get(), dcp::LocalTime ("2030-07-21T00:00:00+00:00"), dcp::LocalTime ("2031-07-21T00:00:00+00:00"), - dcp::MODIFIED_TRANSITIONAL_1, + dcp::Formulation::MODIFIED_TRANSITIONAL_1, true, 0 ); @@ -85,18 +84,18 @@ BOOST_AUTO_TEST_CASE (check_reuse_old_data_test) /* Add just the OV to a new project, move it around a bit and check that the _reels get reused. */ - shared_ptr test = new_test_film2 ("check_reuse_old_data_test1"); - ov_content.reset (new DCPContent(ov->dir(ov->dcp_name(false)))); + auto test = new_test_film2 ("check_reuse_old_data_test1"); + ov_content = make_shared(ov->dir(ov->dcp_name(false))); test->examine_and_add_content (ov_content); BOOST_REQUIRE (!wait_for_jobs()); - shared_ptr player (new Player(test)); + auto player = make_shared(test, Image::Alignment::COMPACT); - shared_ptr decoder = boost::dynamic_pointer_cast(player->_pieces.front()->decoder); + auto decoder = std::dynamic_pointer_cast(player->_pieces.front()->decoder); BOOST_REQUIRE (decoder); - list > reels = decoder->reels(); + auto reels = decoder->reels(); ov_content->set_position (test, dcpomatic::DCPTime(96000)); - decoder = boost::dynamic_pointer_cast(player->_pieces.front()->decoder); + decoder = std::dynamic_pointer_cast(player->_pieces.front()->decoder); BOOST_REQUIRE (decoder); BOOST_REQUIRE (reels == decoder->reels()); @@ -104,37 +103,37 @@ BOOST_AUTO_TEST_CASE (check_reuse_old_data_test) _reels did not get reused. */ test = new_test_film2 ("check_reuse_old_data_test2"); - shared_ptr vf_content (new DCPContent(vf->dir(vf->dcp_name(false)))); + auto vf_content = make_shared(vf->dir(vf->dcp_name(false))); test->examine_and_add_content (vf_content); BOOST_REQUIRE (!wait_for_jobs()); - player.reset (new Player(test)); + player = make_shared(test, Image::Alignment::COMPACT); - decoder = boost::dynamic_pointer_cast(player->_pieces.front()->decoder); + decoder = std::dynamic_pointer_cast(player->_pieces.front()->decoder); BOOST_REQUIRE (decoder); reels = decoder->reels(); vf_content->add_ov (ov->dir(ov->dcp_name(false))); - JobManager::instance()->add (shared_ptr(new ExamineContentJob(test, vf_content))); + JobManager::instance()->add (make_shared(test, vf_content)); BOOST_REQUIRE (!wait_for_jobs()); - decoder = boost::dynamic_pointer_cast(player->_pieces.front()->decoder); + decoder = std::dynamic_pointer_cast(player->_pieces.front()->decoder); BOOST_REQUIRE (decoder); BOOST_REQUIRE (reels != decoder->reels()); /* Add a KDM to an encrypted DCP and check that the _reels did not get reused */ test = new_test_film2 ("check_reuse_old_data_test3"); - shared_ptr encrypted_content (new DCPContent(encrypted->dir(encrypted->dcp_name(false)))); + auto encrypted_content = make_shared(encrypted->dir(encrypted->dcp_name(false))); test->examine_and_add_content (encrypted_content); BOOST_REQUIRE (!wait_for_jobs()); - player.reset (new Player(test)); + player = make_shared(test, Image::Alignment::COMPACT); - decoder = boost::dynamic_pointer_cast(player->_pieces.front()->decoder); + decoder = std::dynamic_pointer_cast(player->_pieces.front()->decoder); BOOST_REQUIRE (decoder); reels = decoder->reels(); encrypted_content->add_kdm (kdm); - JobManager::instance()->add (shared_ptr(new ExamineContentJob(test, encrypted_content))); + JobManager::instance()->add (make_shared(test, encrypted_content)); BOOST_REQUIRE (!wait_for_jobs()); - decoder = boost::dynamic_pointer_cast(player->_pieces.front()->decoder); + decoder = std::dynamic_pointer_cast(player->_pieces.front()->decoder); BOOST_REQUIRE (decoder); BOOST_REQUIRE (reels != decoder->reels()); }