Fix build with some older boosts.
[dcpomatic.git] / test / reel_writer_test.cc
index e4e7c6c4288b405ed66979199e31e079b25c839a..411de9b1f17632afdf7ac19ab8a3f352f06bf3f3 100644 (file)
@@ -30,6 +30,7 @@
 #include "lib/content_factory.h"
 #include "lib/cross.h"
 #include "lib/film.h"
+#include "lib/frame_info.h"
 #include "lib/reel_writer.h"
 #include "lib/video_content.h"
 #include "test.h"
@@ -46,59 +47,59 @@ using std::string;
 using boost::optional;
 
 
-static bool equal (dcp::FrameInfo a, ReelWriter const & writer, shared_ptr<InfoFileHandle> file, Frame frame, Eyes eyes)
+static bool equal(J2KFrameInfo a, shared_ptr<InfoFileHandle> file, Frame frame, Eyes eyes)
 {
-       auto b = writer.read_frame_info(file, frame, eyes);
+       auto b = J2KFrameInfo(file, frame, eyes);
        return a.offset == b.offset && a.size == b.size && a.hash == b.hash;
 }
 
 
 BOOST_AUTO_TEST_CASE (write_frame_info_test)
 {
-       auto film = new_test_film("write_frame_info_test");
+       auto film = new_test_film("write_frame_info_test");
        dcpomatic::DCPTimePeriod const period (dcpomatic::DCPTime(0), dcpomatic::DCPTime(96000));
-       ReelWriter writer (film, period, shared_ptr<Job>(), 0, 1, false);
+       ReelWriter writer(film, period, shared_ptr<Job>(), 0, 1, false, "foo");
 
        /* Write the first one */
 
-       dcp::FrameInfo info1(0, 123, "12345678901234567890123456789012");
-       writer.write_frame_info (0, Eyes::LEFT, info1);
+       J2KFrameInfo info1(0, 123, "12345678901234567890123456789012");
+       info1.write(film->info_file_handle(period, false), 0, Eyes::LEFT);
        {
                auto file = film->info_file_handle(period, true);
-               BOOST_CHECK (equal(info1, writer, file, 0, Eyes::LEFT));
+               BOOST_CHECK(equal(info1, file, 0, Eyes::LEFT));
        }
 
        /* Write some more */
 
-       dcp::FrameInfo info2(596, 14921, "123acb789f1234ae782012n456339522");
-       writer.write_frame_info (5, Eyes::RIGHT, info2);
+       J2KFrameInfo info2(596, 14921, "123acb789f1234ae782012n456339522");
+       info2.write(film->info_file_handle(period, false), 5, Eyes::RIGHT);
 
        {
                auto file = film->info_file_handle(period, true);
-               BOOST_CHECK (equal(info1, writer, file, 0, Eyes::LEFT));
-               BOOST_CHECK (equal(info2, writer, file, 5, Eyes::RIGHT));
+               BOOST_CHECK(equal(info1, file, 0, Eyes::LEFT));
+               BOOST_CHECK(equal(info2, file, 5, Eyes::RIGHT));
        }
 
-       dcp::FrameInfo info3(12494, 99157123, "xxxxyyyyabc12356ffsfdsf456339522");
-       writer.write_frame_info (10, Eyes::LEFT, info3);
+       J2KFrameInfo info3(12494, 99157123, "xxxxyyyyabc12356ffsfdsf456339522");
+       info3.write(film->info_file_handle(period, false), 10, Eyes::LEFT);
 
        {
                auto file = film->info_file_handle(period, true);
-               BOOST_CHECK (equal(info1, writer, file, 0, Eyes::LEFT));
-               BOOST_CHECK (equal(info2, writer, file, 5, Eyes::RIGHT));
-               BOOST_CHECK (equal(info3, writer, file, 10, Eyes::LEFT));
+               BOOST_CHECK(equal(info1, file, 0, Eyes::LEFT));
+               BOOST_CHECK(equal(info2, file, 5, Eyes::RIGHT));
+               BOOST_CHECK(equal(info3, file, 10, Eyes::LEFT));
        }
 
        /* Overwrite one */
 
-       dcp::FrameInfo info4(55512494, 123599157123, "ABCDEFGyabc12356ffsfdsf4563395ZZ");
-       writer.write_frame_info (5, Eyes::RIGHT, info4);
+       J2KFrameInfo info4(55512494, 123599157123, "ABCDEFGyabc12356ffsfdsf4563395ZZ");
+       info4.write(film->info_file_handle(period, false), 5, Eyes::RIGHT);
 
        {
                auto file = film->info_file_handle(period, true);
-               BOOST_CHECK (equal(info1, writer, file, 0, Eyes::LEFT));
-               BOOST_CHECK (equal(info4, writer, file, 5, Eyes::RIGHT));
-               BOOST_CHECK (equal(info3, writer, file, 10, Eyes::LEFT));
+               BOOST_CHECK(equal(info1, file, 0, Eyes::LEFT));
+               BOOST_CHECK(equal(info4, file, 5, Eyes::RIGHT));
+               BOOST_CHECK(equal(info3, file, 10, Eyes::LEFT));
        }
 }
 
@@ -111,7 +112,7 @@ BOOST_AUTO_TEST_CASE (reel_reuse_video_test)
        /* Make a DCP */
        auto video = content_factory("test/data/flat_red.png")[0];
        auto audio = content_factory("test/data/white.wav")[0];
-       auto film = new_test_film("reel_reuse_video_test", { video, audio });
+       auto film = new_test_film("reel_reuse_video_test", { video, audio });
        make_and_verify_dcp (film);
 
        /* Find main picture and sound asset IDs */
@@ -126,7 +127,8 @@ BOOST_AUTO_TEST_CASE (reel_reuse_video_test)
 
        /* Change the audio and re-make */
        audio->audio->set_gain (-3);
-       make_and_verify_dcp (film);
+       /* >1 CPLs in the DCP raises an error in ClairMeta */
+       make_and_verify_dcp(film, {}, true, false);
 
        /* Video ID should be the same, sound different */
        dcp::DCP dcp2 (film->dir(film->dcp_name()));
@@ -140,7 +142,8 @@ BOOST_AUTO_TEST_CASE (reel_reuse_video_test)
 
        /* Crop video and re-make */
        video->video->set_left_crop (5);
-       make_and_verify_dcp (film);
+       /* >1 CPLs in the DCP raises an error in ClairMeta */
+       make_and_verify_dcp(film, {}, true, false);
 
        /* Video and sound IDs should be different */
        dcp::DCP dcp3 (film->dir(film->dcp_name()));