summaryrefslogtreecommitdiff
path: root/test/empty_test.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-02-14 12:36:23 +0100
committerCarl Hetherington <cth@carlh.net>2021-02-14 21:40:06 +0100
commita632e34e3c9ca94574fcab1b3006227ed2833766 (patch)
treed8bbfa15962fc466a3ec0173f7ed778e1792a188 /test/empty_test.cc
parent39fce9acb7869c551fded172aa070d75c7a9bc50 (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.cc24
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());
+}
+