X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Fburnt_subtitle_test.cc;h=8bd2c46b8684e8cfac4506e4c213ccda4b3060df;hb=3f9b394d57e750624d361f5daae6db77079f862a;hp=e8c3f359763027a2526582565a90c56cc3ff0016;hpb=3476f2f8251d5800abdd968963cac57b0df8a657;p=dcpomatic.git diff --git a/test/burnt_subtitle_test.cc b/test/burnt_subtitle_test.cc index e8c3f3597..8bd2c46b8 100644 --- a/test/burnt_subtitle_test.cc +++ b/test/burnt_subtitle_test.cc @@ -20,15 +20,19 @@ /** @file test/burnt_subtitle_test.cc * @brief Test the burning of subtitles into the DCP. + * @ingroup specific */ -#include "lib/text_subtitle_content.h" -#include "lib/dcp_subtitle_content.h" +#include "lib/plain_text_content.h" +#include "lib/dcp_text_content.h" #include "lib/film.h" #include "lib/ratio.h" #include "lib/dcp_content_type.h" -#include "lib/subtitle_content.h" +#include "lib/text_content.h" +#include "lib/dcp_content.h" #include "lib/content_factory.h" +#include "lib/config.h" +#include "lib/log_entry.h" #include "test.h" #include #include @@ -47,6 +51,7 @@ using std::cout; using std::map; using boost::shared_ptr; using boost::dynamic_pointer_cast; +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) @@ -55,13 +60,13 @@ BOOST_AUTO_TEST_CASE (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 TextSubtitleContent (film, "test/data/subrip2.srt")); - content->set_use_subtitles (true); - content->set_burn_subtitles (true); - film->examine_and_add_content (content, true); - wait_for_jobs (); + shared_ptr content (new StringText (film, "test/data/subrip2.srt")); + content->subtitle->set_use (true); + content->subtitle->set_burn (true); + film->examine_and_add_content (content); + BOOST_REQUIRE (!wait_for_jobs()); film->make_dcp (); - wait_for_jobs (); + BOOST_REQUIRE (!wait_for_jobs()); check_dcp ("test/data/burnt_subtitle_test_subrip", film->dir (film->dcp_name ())); } @@ -73,13 +78,12 @@ BOOST_AUTO_TEST_CASE (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"); - film->set_burn_subtitles (true); - shared_ptr content (new DCPSubtitleContent (film, "test/data/dcp_sub.xml")); - content->set_use_subtitles (true); - film->examine_and_add_content (content, true); - wait_for_jobs (); + shared_ptr content (new DCPTextContent (film, "test/data/dcp_sub.xml")); + content->subtitle->set_use (true); + film->examine_and_add_content (content); + BOOST_REQUIRE (!wait_for_jobs()); film->make_dcp (); - wait_for_jobs (); + BOOST_REQUIRE (!wait_for_jobs()); check_dcp ("test/data/burnt_subtitle_test_dcp", film->dir (film->dcp_name ())); } @@ -91,25 +95,30 @@ BOOST_AUTO_TEST_CASE (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_white.png").front()); - wait_for_jobs (); + film->examine_and_add_content (content_factory(film, "test/data/flat_black.png").front()); + BOOST_REQUIRE (!wait_for_jobs()); film->make_dcp (); - wait_for_jobs (); + BOOST_REQUIRE (!wait_for_jobs()); + Config::instance()->set_log_types (Config::instance()->log_types() | LogEntry::TYPE_DEBUG_ENCODE); shared_ptr 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"); - film2->examine_and_add_content (content_factory(film2, film->dir (film->dcp_name ())).front()); - shared_ptr sub = dynamic_pointer_cast ( - content_factory (film2, "test/data/subrip2.srt") + shared_ptr background_dcp (new DCPContent(film2, film->dir(film->dcp_name()))); + film2->examine_and_add_content (background_dcp); + shared_ptr sub = dynamic_pointer_cast ( + content_factory(film2, "test/data/subrip2.srt").front() ); sub->subtitle->set_burn (true); sub->subtitle->set_outline (true); film2->examine_and_add_content (sub); - wait_for_jobs (); + BOOST_REQUIRE (!wait_for_jobs()); film2->make_dcp (); - wait_for_jobs (); + BOOST_REQUIRE (!wait_for_jobs()); + + BOOST_CHECK (background_dcp->position() == DCPTime()); + BOOST_CHECK (sub->position() == DCPTime()); dcp::DCP dcp (film2->dir (film2->dcp_name ())); dcp.read (); @@ -126,5 +135,5 @@ BOOST_AUTO_TEST_CASE (burnt_subtitle_test_onto_dcp) BOOST_CHECK_EQUAL (xyz->size().width, 1998); BOOST_CHECK_EQUAL (xyz->size().height, 1080); - /* XXX: check the output ... */ + check_dcp ("test/data/burnt_subtitle_test_onto_dcp", film->dir(film->dcp_name())); }