X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Fburnt_subtitle_test.cc;h=0fffe4913e52bf76e96698e1e7724eda99502c2d;hb=0c846af54055b9915c6c68617cd28176d5f84351;hp=e01e1e3d180e9dd96a74231f97116f87155ce44f;hpb=c1f98c84cdf3829b31929453b8a89fdcbdcd0c42;p=dcpomatic.git diff --git a/test/burnt_subtitle_test.cc b/test/burnt_subtitle_test.cc index e01e1e3d1..0fffe4913 100644 --- a/test/burnt_subtitle_test.cc +++ b/test/burnt_subtitle_test.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2014-2016 Carl Hetherington + Copyright (C) 2014-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -20,7 +20,7 @@ /** @file test/burnt_subtitle_test.cc * @brief Test the burning of subtitles into the DCP. - * @ingroup specific + * @ingroup feature */ #include "lib/plain_text_content.h" @@ -37,7 +37,7 @@ #include #include #include -#include +#include #include #include #include @@ -49,23 +49,24 @@ using std::cout; using std::map; -using boost::shared_ptr; -using boost::dynamic_pointer_cast; +using std::shared_ptr; +using std::dynamic_pointer_cast; +using std::make_shared; +using namespace dcpomatic; /** Build a small DCP with no picture and a single subtitle overlaid onto it from a SubRip file */ BOOST_AUTO_TEST_CASE (burnt_subtitle_test_subrip) { - shared_ptr film = new_test_film ("burnt_subtitle_test_subrip"); + auto film = new_test_film ("burnt_subtitle_test_subrip"); film->set_container (Ratio::from_id ("185")); film->set_dcp_content_type (DCPContentType::from_isdcf_name ("TLR")); film->set_name ("frobozz"); - shared_ptr content (new PlainText (film, "test/data/subrip2.srt")); + auto content = make_shared<StringText>(film, "test/data/subrip2.srt"); content->subtitle->set_use (true); content->subtitle->set_burn (true); film->examine_and_add_content (content); - wait_for_jobs (); - film->make_dcp (); - wait_for_jobs (); + BOOST_REQUIRE (!wait_for_jobs()); + make_and_verify_dcp (film); check_dcp ("test/data/burnt_subtitle_test_subrip", film->dir (film->dcp_name ())); } @@ -73,16 +74,15 @@ BOOST_AUTO_TEST_CASE (burnt_subtitle_test_subrip) /** Build a small DCP with no picture and a single subtitle overlaid onto it from a DCP XML file */ BOOST_AUTO_TEST_CASE (burnt_subtitle_test_dcp) { - shared_ptr<Film> film = new_test_film ("burnt_subtitle_test_dcp"); + auto film = new_test_film ("burnt_subtitle_test_dcp"); film->set_container (Ratio::from_id ("185")); film->set_dcp_content_type (DCPContentType::from_isdcf_name ("TLR")); film->set_name ("frobozz"); - shared_ptr<DCPTextContent> content (new DCPTextContent (film, "test/data/dcp_sub.xml")); + auto content = make_shared<DCPTextContent>(film, "test/data/dcp_sub.xml"); content->subtitle->set_use (true); film->examine_and_add_content (content); - wait_for_jobs (); - film->make_dcp (); - wait_for_jobs (); + BOOST_REQUIRE (!wait_for_jobs()); + make_and_verify_dcp (film); check_dcp ("test/data/burnt_subtitle_test_dcp", film->dir (film->dcp_name ())); } @@ -90,31 +90,29 @@ BOOST_AUTO_TEST_CASE (burnt_subtitle_test_dcp) /** Burn some subtitles into an existing DCP to check the colour conversion */ BOOST_AUTO_TEST_CASE (burnt_subtitle_test_onto_dcp) { - shared_ptr<Film> film = new_test_film ("burnt_subtitle_test_onto_dcp"); + auto film = new_test_film ("burnt_subtitle_test_onto_dcp"); film->set_container (Ratio::from_id ("185")); film->set_dcp_content_type (DCPContentType::from_isdcf_name ("TLR")); film->set_name ("frobozz"); film->examine_and_add_content (content_factory(film, "test/data/flat_black.png").front()); BOOST_REQUIRE (!wait_for_jobs()); - film->make_dcp (); - BOOST_REQUIRE (!wait_for_jobs()); + make_and_verify_dcp (film); Config::instance()->set_log_types (Config::instance()->log_types() | LogEntry::TYPE_DEBUG_ENCODE); - shared_ptr<Film> film2 = new_test_film ("burnt_subtitle_test_onto_dcp2"); + auto film2 = new_test_film ("burnt_subtitle_test_onto_dcp2"); film2->set_container (Ratio::from_id ("185")); film2->set_dcp_content_type (DCPContentType::from_isdcf_name ("TLR")); film2->set_name ("frobozz"); - shared_ptr<DCPContent> background_dcp (new DCPContent(film2, film->dir(film->dcp_name()))); + auto background_dcp = make_shared<DCPContent>(film2, film->dir(film->dcp_name())); film2->examine_and_add_content (background_dcp); - shared_ptr<PlainText> sub = dynamic_pointer_cast<PlainText> ( + auto sub = dynamic_pointer_cast<StringText> ( content_factory(film2, "test/data/subrip2.srt").front() ); sub->subtitle->set_burn (true); sub->subtitle->set_outline (true); film2->examine_and_add_content (sub); BOOST_REQUIRE (!wait_for_jobs()); - film2->make_dcp (); - BOOST_REQUIRE (!wait_for_jobs()); + make_and_verify_dcp (film2); BOOST_CHECK (background_dcp->position() == DCPTime()); BOOST_CHECK (sub->position() == DCPTime()); @@ -125,12 +123,12 @@ BOOST_AUTO_TEST_CASE (burnt_subtitle_test_onto_dcp) BOOST_REQUIRE_EQUAL (dcp.cpls().front()->reels().size(), 1); BOOST_REQUIRE (dcp.cpls().front()->reels().front()->main_picture()); BOOST_REQUIRE (dcp.cpls().front()->reels().front()->main_picture()->asset()); - shared_ptr<const dcp::MonoPictureAsset> pic = dynamic_pointer_cast<dcp::ReelMonoPictureAsset> ( + auto pic = dynamic_pointer_cast<dcp::ReelMonoPictureAsset> ( dcp.cpls().front()->reels().front()->main_picture() )->mono_asset(); BOOST_REQUIRE (pic); - shared_ptr<const dcp::MonoPictureFrame> frame = pic->start_read()->get_frame (12); - shared_ptr<dcp::OpenJPEGImage> xyz = frame->xyz_image (); + auto frame = pic->start_read()->get_frame(12); + auto xyz = frame->xyz_image (); BOOST_CHECK_EQUAL (xyz->size().width, 1998); BOOST_CHECK_EQUAL (xyz->size().height, 1080);