diff options
| author | Carl Hetherington <cth@carlh.net> | 2021-02-14 12:36:23 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2021-02-14 21:40:06 +0100 |
| commit | a632e34e3c9ca94574fcab1b3006227ed2833766 (patch) | |
| tree | d8bbfa15962fc466a3ec0173f7ed778e1792a188 /test/empty_test.cc | |
| parent | 39fce9acb7869c551fded172aa070d75c7a9bc50 (diff) | |
Fix incorrect coalesce() output when one input range is wholly
covered by another.
Diffstat (limited to 'test/empty_test.cc')
| -rw-r--r-- | test/empty_test.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/empty_test.cc b/test/empty_test.cc index 9f55499da..8a42bd6b8 100644 --- a/test/empty_test.cc +++ b/test/empty_test.cc @@ -35,6 +35,7 @@ #include <boost/test/unit_test.hpp> using std::list; +using std::make_shared; using std::shared_ptr; #if BOOST_VERSION >= 106100 using namespace boost::placeholders; @@ -149,3 +150,26 @@ BOOST_AUTO_TEST_CASE (empty_test3) BOOST_CHECK (black.position() == DCPTime::from_frames(0, vfr)); } +BOOST_AUTO_TEST_CASE (empty_test_with_overlapping_content) +{ + auto film = new_test_film2 ("empty_test_with_overlapping_content"); + film->set_sequence (false); + auto contentA = make_shared<ImageContent>("test/data/simple_testcard_640x480.png"); + auto contentB = make_shared<ImageContent>("test/data/simple_testcard_640x480.png"); + + film->examine_and_add_content (contentA); + film->examine_and_add_content (contentB); + BOOST_REQUIRE (!wait_for_jobs()); + + int const vfr = film->video_frame_rate (); + + contentA->video->set_length (vfr * 3); + contentA->set_position (film, DCPTime()); + contentB->video->set_length (vfr * 1); + contentB->set_position (film, DCPTime::from_seconds(1)); + + Empty black(film, film->playlist(), bind(&has_video, _1), film->playlist()->length(film)); + + BOOST_REQUIRE (black._periods.empty()); +} + |
