Cleanup: test tidying.
[dcpomatic.git] / test / overlap_video_test.cc
index 246a75834cab5d88303e8b3309bed8767316c547..92002496aec9814651ba39955deec1005ccadd68 100644 (file)
@@ -23,6 +23,7 @@
 #include "lib/content_factory.h"
 #include "lib/dcpomatic_time.h"
 #include "lib/film.h"
+#include "lib/piece.h"
 #include "lib/player.h"
 #include "lib/video_content.h"
 #include "test.h"
 #include <dcp/openjpeg_image.h>
 #include <dcp/reel.h>
 #include <dcp/reel_mono_picture_asset.h>
-#include <boost/shared_ptr.hpp>
 #include <boost/test/unit_test.hpp>
 
 
 using std::dynamic_pointer_cast;
 using std::make_shared;
-using std::shared_ptr;
 
 
 BOOST_AUTO_TEST_CASE (overlap_video_test1)
 {
        auto film = new_test_film2 ("overlap_video_test1");
        film->set_sequence (false);
-       auto A = content_factory("test/data/flat_red.png").front();
+       auto A = content_factory("test/data/flat_red.png")[0];
        film->examine_and_add_content (A);
-       auto B = content_factory("test/data/flat_green.png").front();
+       auto B = content_factory("test/data/flat_green.png")[0];
        film->examine_and_add_content (B);
        BOOST_REQUIRE (!wait_for_jobs());
 
@@ -57,7 +56,7 @@ BOOST_AUTO_TEST_CASE (overlap_video_test1)
        B->video->set_length (24);
        B->set_position (film, dcpomatic::DCPTime::from_seconds(1));
 
-       auto player = make_shared<Player>(film);
+       auto player = make_shared<Player>(film, Image::Alignment::COMPACT);
        auto pieces = player->_pieces;
        BOOST_REQUIRE_EQUAL (pieces.size(), 2U);
        BOOST_CHECK_EQUAL (pieces.front()->content, A);
@@ -67,8 +66,7 @@ BOOST_AUTO_TEST_CASE (overlap_video_test1)
 
        BOOST_CHECK (player->_black.done());
 
-       film->make_dcp ();
-       BOOST_REQUIRE (!wait_for_jobs());
+       make_and_verify_dcp (film);
 
        dcp::DCP back (film->dir(film->dcp_name()));
        back.read ();
@@ -84,28 +82,32 @@ BOOST_AUTO_TEST_CASE (overlap_video_test1)
        BOOST_CHECK_EQUAL (asset->intrinsic_duration(), 72);
        auto reader = asset->start_read ();
 
+       auto close = [](int a, int b, int d) {
+               BOOST_CHECK (std::abs(a - b) < d);
+       };
+
        for (int i = 0; i < 24; ++i) {
                auto frame = reader->get_frame (i);
                auto image = dcp::decompress_j2k(*frame.get(), 0);
-               BOOST_CHECK_EQUAL (image->data(0)[0], 2808);
-               BOOST_CHECK_EQUAL (image->data(1)[0], 2176);
-               BOOST_CHECK_EQUAL (image->data(2)[0], 865);
+               close (image->data(0)[0], 2808, 2);
+               close (image->data(1)[0], 2176, 2);
+               close (image->data(2)[0], 865, 2);
        }
 
        for (int i = 24; i < 48; ++i) {
                auto frame = reader->get_frame (i);
                auto image = dcp::decompress_j2k(*frame.get(), 0);
-               BOOST_CHECK_EQUAL (image->data(0)[0], 2657);
-               BOOST_CHECK_EQUAL (image->data(1)[0], 3470);
-               BOOST_CHECK_EQUAL (image->data(2)[0], 1742);
+               close (image->data(0)[0], 2657, 2);
+               close (image->data(1)[0], 3470, 2);
+               close (image->data(2)[0], 1742, 2);
        }
 
        for (int i = 48; i < 72; ++i) {
                auto frame = reader->get_frame (i);
                auto image = dcp::decompress_j2k(*frame.get(), 0);
-               BOOST_CHECK_EQUAL (image->data(0)[0], 2808);
-               BOOST_CHECK_EQUAL (image->data(1)[0], 2176);
-               BOOST_CHECK_EQUAL (image->data(2)[0], 865);
+               close (image->data(0)[0], 2808, 2);
+               close (image->data(1)[0], 2176, 2);
+               close (image->data(2)[0], 865, 2);
        }
 }