Add failing test for #1918.
authorCarl Hetherington <cth@carlh.net>
Mon, 15 Mar 2021 18:21:42 +0000 (19:21 +0100)
committerCarl Hetherington <cth@carlh.net>
Mon, 15 Mar 2021 18:21:42 +0000 (19:21 +0100)
test/data
test/subtitle_reel_test.cc

index c9df3856b3022e9cc7e052cda2b2de9db186ec93..c488ee62e04b03b915dac49a258bd13d64f281e4 160000 (submodule)
--- a/test/data
+++ b/test/data
@@ -1 +1 @@
-Subproject commit c9df3856b3022e9cc7e052cda2b2de9db186ec93
+Subproject commit c488ee62e04b03b915dac49a258bd13d64f281e4
index e56f9664aec7dc9439fad7a88c2df920e9f128b2..d75c8af1a155dfd6b8151fb9fcd8aa3cb23b0e84 100644 (file)
@@ -190,3 +190,42 @@ BOOST_AUTO_TEST_CASE (closed_captions_in_all_reels_test)
                        );
        }
 }
+
+
+BOOST_AUTO_TEST_CASE (subtitles_split_at_reel_boundaries)
+{
+       auto film = new_test_film2 ("subtitles_split_at_reel_boundaries");
+       film->set_interop (true);
+
+       film->set_sequence (false);
+       film->set_reel_type (ReelType::BY_VIDEO_CONTENT);
+
+       for (int i = 0; i < 3; ++i) {
+               auto video = content_factory("test/data/flat_red.png").front();
+               film->examine_and_add_content (video);
+               BOOST_REQUIRE (!wait_for_jobs());
+               video->video->set_length (15 * 24);
+               video->set_position (film, dcpomatic::DCPTime::from_seconds(15 * i));
+       }
+
+       auto subtitle = content_factory("test/data/45s.srt").front();
+       film->examine_and_add_content (subtitle);
+       BOOST_REQUIRE (!wait_for_jobs());
+
+       make_and_verify_dcp (film, {{ dcp::VerificationNote::Code::INVALID_STANDARD }});
+
+       dcp::DCP dcp (film->dir(film->dcp_name()));
+       dcp.read();
+       BOOST_REQUIRE_EQUAL (dcp.cpls().size(), 1);
+       auto cpl = dcp.cpls()[0];
+       BOOST_REQUIRE_EQUAL (cpl->reels().size(), 3);
+
+       for (auto i: cpl->reels()) {
+               auto reel_sub = i->main_subtitle();
+               BOOST_REQUIRE (reel_sub);
+               auto sub = reel_sub->asset();
+               BOOST_REQUIRE (sub);
+               BOOST_CHECK_EQUAL (sub->subtitles().size(), 1);
+       }
+}
+