diff options
| author | Carl Hetherington <cth@carlh.net> | 2019-11-19 22:39:38 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2019-11-19 22:39:38 +0100 |
| commit | 4cb18d1e0b8fdedf6bb38e1d4187a2d782957022 (patch) | |
| tree | fff04fbe4c14161f7ddcd336f28d91f5cf20fc69 /test | |
| parent | bcb962515b31ac6a40a3393c6d4e07b28cedc62b (diff) | |
Fix problems with playing back 3D DCPs and with inserting 3D DCPs
in 2D projects. Also add some tests.
Diffstat (limited to 'test')
| -rw-r--r-- | test/player_test.cc | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/test/player_test.cc b/test/player_test.cc index 30b1a56dd..390ecf444 100644 --- a/test/player_test.cc +++ b/test/player_test.cc @@ -358,3 +358,61 @@ BOOST_AUTO_TEST_CASE (player_silence_crash) film->make_dcp (); BOOST_REQUIRE (!wait_for_jobs()); } + +/** Test a crash when processing a 3D DCP */ +BOOST_AUTO_TEST_CASE (player_3d_test_1) +{ + shared_ptr<Film> film = new_test_film2 ("player_3d_test_1a"); + shared_ptr<Content> left = content_factory("test/data/flat_red.png").front(); + film->examine_and_add_content (left); + shared_ptr<Content> right = content_factory("test/data/flat_blue.png").front(); + film->examine_and_add_content (right); + BOOST_REQUIRE (!wait_for_jobs()); + + left->video->set_frame_type (VIDEO_FRAME_TYPE_3D_LEFT); + left->set_position (film, DCPTime()); + right->video->set_frame_type (VIDEO_FRAME_TYPE_3D_RIGHT); + right->set_position (film, DCPTime()); + film->set_three_d (true); + + film->make_dcp (); + BOOST_REQUIRE (!wait_for_jobs()); + + shared_ptr<Film> film2 = new_test_film2 ("player_3d_test_1b"); + shared_ptr<Content> dcp(new DCPContent(film->dir(film->dcp_name()))); + film2->examine_and_add_content (dcp); + BOOST_REQUIRE (!wait_for_jobs()); + + film2->set_three_d (true); + film2->make_dcp (); + BOOST_REQUIRE (!wait_for_jobs()); +} + +/** Test a crash when processing a 3D DCP as content in a 2D project */ +BOOST_AUTO_TEST_CASE (player_3d_test_2) +{ + shared_ptr<Film> film = new_test_film2 ("player_3d_test_2a"); + shared_ptr<Content> left = content_factory("test/data/flat_red.png").front(); + film->examine_and_add_content (left); + shared_ptr<Content> right = content_factory("test/data/flat_blue.png").front(); + film->examine_and_add_content (right); + BOOST_REQUIRE (!wait_for_jobs()); + + left->video->set_frame_type (VIDEO_FRAME_TYPE_3D_LEFT); + left->set_position (film, DCPTime()); + right->video->set_frame_type (VIDEO_FRAME_TYPE_3D_RIGHT); + right->set_position (film, DCPTime()); + film->set_three_d (true); + + film->make_dcp (); + BOOST_REQUIRE (!wait_for_jobs()); + + shared_ptr<Film> film2 = new_test_film2 ("player_3d_test_2b"); + shared_ptr<Content> dcp(new DCPContent(film->dir(film->dcp_name()))); + film2->examine_and_add_content (dcp); + BOOST_REQUIRE (!wait_for_jobs()); + + film2->make_dcp (); + BOOST_REQUIRE (!wait_for_jobs()); +} + |
