Switch PlayerVideo::always_rgb to a new ::force and use it in FFmpegFileEncoder.
[dcpomatic.git] / test / player_test.cc
index 605f3bddd1a0fc9207c24a7e5c0ef03064cfa316..0c9b6f21f0a8c81f55b0e13e383ccc5802b3148b 100644 (file)
@@ -194,12 +194,6 @@ BOOST_AUTO_TEST_CASE (player_interleave_test)
        }
 }
 
-static void
-note_handler (dcp::NoteType, std::string)
-{
-
-}
-
 /** Test some seeks towards the start of a DCP with awkward subtitles; see mantis #1085
  *  and a number of others.  I thought this was a player seek bug but in fact it was
  *  caused by the subtitle starting just after the start of the video frame and hence
@@ -226,7 +220,7 @@ BOOST_AUTO_TEST_CASE (player_seek_test)
                butler->seek (t, true);
                pair<shared_ptr<PlayerVideo>, DCPTime> video = butler->get_video();
                BOOST_CHECK_EQUAL(video.second.get(), t.get());
-               write_image(video.first->image(note_handler, PlayerVideo::always_rgb, false, true), String::compose("build/test/player_seek_test_%1.png", i), "RGB");
+               write_image(video.first->image(bind(PlayerVideo::force, _1, AV_PIX_FMT_RGB24), false, true), String::compose("build/test/player_seek_test_%1.png", i), "RGB");
                /* This 0.011 is empirically chosen (hopefully) to accept changes in rendering between the reference and a test machine
                   (17.10 and 16.04 seem to anti-alias a little differently) but to reject gross errors e.g. missing fonts or missing
                   text altogether.
@@ -259,7 +253,7 @@ BOOST_AUTO_TEST_CASE (player_seek_test2)
                butler->seek (t, true);
                pair<shared_ptr<PlayerVideo>, DCPTime> video = butler->get_video();
                BOOST_CHECK_EQUAL(video.second.get(), t.get());
-               write_image(video.first->image(note_handler, PlayerVideo::always_rgb, false, true), String::compose("build/test/player_seek_test2_%1.png", i), "RGB");
+               write_image(video.first->image(bind(PlayerVideo::force, _1, AV_PIX_FMT_RGB24), false, true), String::compose("build/test/player_seek_test2_%1.png", i), "RGB");
                check_image(String::compose("test/data/player_seek_test2_%1.png", i), String::compose("build/test/player_seek_test2_%1.png", i), 0.011);
        }
 }
@@ -286,15 +280,17 @@ BOOST_AUTO_TEST_CASE (player_trim_test)
 struct Sub {
        PlayerText text;
        TextType type;
+       optional<DCPTextTrack> track;
        DCPTimePeriod period;
 };
 
 static void
-store (list<Sub>* out, PlayerText text, TextType type, DCPTimePeriod period)
+store (list<Sub>* out, PlayerText text, TextType type, optional<DCPTextTrack> track, DCPTimePeriod period)
 {
        Sub s;
        s.text = text;
        s.type = type;
+       s.track = track;
        s.period = period;
        out->push_back (s);
 }
@@ -316,7 +312,7 @@ BOOST_AUTO_TEST_CASE (player_ignore_video_and_audio_test)
        player->set_ignore_audio ();
 
        list<Sub> out;
-       player->Text.connect (bind (&store, &out, _1, _2, _3));
+       player->Text.connect (bind (&store, &out, _1, _2, _3, _4));
        while (!player->pass ()) {}
 
        BOOST_CHECK_EQUAL (out.size(), 6);