Test updates now that there can't be <1s long DCPs any more.
authorCarl Hetherington <cth@carlh.net>
Tue, 10 Mar 2020 22:15:17 +0000 (23:15 +0100)
committerCarl Hetherington <cth@carlh.net>
Wed, 11 Mar 2020 21:24:28 +0000 (22:24 +0100)
test/data
test/empty_test.cc
test/file_naming_test.cc
test/repeat_frame_test.cc
test/video_mxf_content_test.cc

index 24df650..6b69488 160000 (submodule)
--- a/test/data
+++ b/test/data
@@ -1 +1 @@
-Subproject commit 24df650e742a9a19ffd6adad42413eb9491e61b7
+Subproject commit 6b694889479064979b52c1839a1919dc5fde6731
index 428d0f9..f0fa713 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2017 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2017-2020 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -29,6 +29,7 @@
 #include "test.h"
 #include <boost/test/unit_test.hpp>
 
+using std::list;
 using boost::shared_ptr;
 using namespace dcpomatic;
 
@@ -63,11 +64,16 @@ BOOST_AUTO_TEST_CASE (empty_test1)
 
        shared_ptr<Player> player (new Player(film, film->playlist()));
        Empty black (film, player->_pieces, bind(&has_video, _1));
-       BOOST_REQUIRE_EQUAL (black._periods.size(), 2);
-       BOOST_CHECK (black._periods.front().from == DCPTime());
-       BOOST_CHECK (black._periods.front().to == DCPTime::from_frames(2, vfr));
-       BOOST_CHECK (black._periods.back().from == DCPTime::from_frames(5, vfr));
-       BOOST_CHECK (black._periods.back().to == DCPTime::from_frames(7, vfr));
+       BOOST_REQUIRE_EQUAL (black._periods.size(), 3);
+       list<dcpomatic::DCPTimePeriod>::const_iterator i = black._periods.begin();
+       BOOST_CHECK (i->from == DCPTime());
+       BOOST_CHECK (i->to == DCPTime::from_frames(2, vfr));
+       ++i;
+       BOOST_CHECK (i->from == DCPTime::from_frames(5, vfr));
+       BOOST_CHECK (i->to == DCPTime::from_frames(7, vfr));
+       ++i;
+       BOOST_CHECK (i->from == DCPTime::from_frames(8, vfr));
+       BOOST_CHECK (i->to == DCPTime::from_frames(24, vfr));
 }
 
 /** Some tests where the first empty period is not at time 0 */
@@ -96,7 +102,7 @@ BOOST_AUTO_TEST_CASE (empty_test2)
 
        shared_ptr<Player> player (new Player(film, film->playlist()));
        Empty black (film, player->_pieces, bind(&has_video, _1));
-       BOOST_REQUIRE_EQUAL (black._periods.size(), 1);
+       BOOST_REQUIRE_EQUAL (black._periods.size(), 2);
        BOOST_CHECK (black._periods.front().from == DCPTime::from_frames(3, vfr));
        BOOST_CHECK (black._periods.front().to == DCPTime::from_frames(7, vfr));
 
@@ -108,5 +114,7 @@ BOOST_AUTO_TEST_CASE (empty_test2)
        black.set_position (DCPTime::from_frames (4, vfr));
        BOOST_CHECK (!black.done ());
        black.set_position (DCPTime::from_frames (7, vfr));
+       BOOST_CHECK (!black.done ());
+       black.set_position (DCPTime::from_frames (24, vfr));
        BOOST_CHECK (black.done ());
 }
index 6b5b202..160fc08 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2016 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2016-2020 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -28,6 +28,7 @@
 #include "lib/film.h"
 #include "lib/ffmpeg_content.h"
 #include "lib/dcp_content_type.h"
+#include "lib/video_content.h"
 #include <boost/test/unit_test.hpp>
 #include <boost/regex.hpp>
 
@@ -58,6 +59,7 @@ BOOST_AUTO_TEST_CASE (file_naming_test)
 
        shared_ptr<Film> film = new_test_film ("file_naming_test");
        film->set_name ("file_naming_test");
+       film->set_video_frame_rate (24);
        film->set_dcp_content_type (DCPContentType::from_isdcf_name ("FTR"));
        shared_ptr<FFmpegContent> r (new FFmpegContent("test/data/flat_red.png"));
        film->examine_and_add_content (r);
@@ -67,7 +69,18 @@ BOOST_AUTO_TEST_CASE (file_naming_test)
        film->examine_and_add_content (b);
        BOOST_REQUIRE (!wait_for_jobs());
 
+       r->set_position (film, dcpomatic::DCPTime::from_seconds(0));
+       r->set_video_frame_rate (24);
+       r->video->set_length (24);
+       g->set_position (film, dcpomatic::DCPTime::from_seconds(1));
+       g->set_video_frame_rate (24);
+       g->video->set_length (24);
+       b->set_position (film, dcpomatic::DCPTime::from_seconds(2));
+       b->set_video_frame_rate (24);
+       b->video->set_length (24);
+
        film->set_reel_type (REELTYPE_BY_VIDEO_CONTENT);
+       film->write_metadata ();
        film->make_dcp ();
        BOOST_REQUIRE (!wait_for_jobs());
 
@@ -106,6 +119,16 @@ BOOST_AUTO_TEST_CASE (file_naming_test2)
        film->examine_and_add_content (b);
        BOOST_REQUIRE (!wait_for_jobs());
 
+       r->set_position (film, dcpomatic::DCPTime::from_seconds(0));
+       r->set_video_frame_rate (24);
+       r->video->set_length (24);
+       g->set_position (film, dcpomatic::DCPTime::from_seconds(1));
+       g->set_video_frame_rate (24);
+       g->video->set_length (24);
+       b->set_position (film, dcpomatic::DCPTime::from_seconds(2));
+       b->set_video_frame_rate (24);
+       b->video->set_length (24);
+
        film->set_reel_type (REELTYPE_BY_VIDEO_CONTENT);
        film->make_dcp ();
        BOOST_REQUIRE (!wait_for_jobs());
index d5ee0c0..1075f96 100644 (file)
@@ -54,6 +54,6 @@ BOOST_AUTO_TEST_CASE (repeat_frame_test)
        film->make_dcp ();
        BOOST_REQUIRE (!wait_for_jobs());
 
-       /* Should be 32 frames of red */
+       /* Should be 32 frames of red followed by 16 frames of black to fill the DCP up to 1 second */
        check_dcp ("test/data/repeat_frame_test", film->dir (film->dcp_name ()));
 }
index d2cb4ce..7ce3201 100644 (file)
@@ -35,7 +35,7 @@
 using boost::shared_ptr;
 using boost::dynamic_pointer_cast;
 
-static boost::filesystem::path ref_mxf = "test/data/scaling_test_185_185/j2c_a41afbff-e1ad-41c4-9a84-de315b95dd0f.mxf";
+static boost::filesystem::path ref_mxf = "test/data/scaling_test_185_185/j2c_bff270b1-cf7c-483b-be22-265aee6097ba.mxf";
 
 static void note (dcp::NoteType, std::string)
 {