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");
- check_image(String::compose("test/data/player_seek_test_%1.png", i), String::compose("build/test/player_seek_test_%1.png", i));
+ /* 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.
+ */
+ check_image(String::compose("test/data/player_seek_test_%1.png", i), String::compose("build/test/player_seek_test_%1.png", i), 0.011);
}
}
}
void
-check_image (boost::filesystem::path ref, boost::filesystem::path check)
+check_image (boost::filesystem::path ref, boost::filesystem::path check, double threshold)
{
#ifdef DCPOMATIC_IMAGE_MAGICK
using namespace MagickCore;
*/
#ifdef DCPOMATIC_ADVANCED_MAGICK_COMPARE
double const dist = ref_image.compare(check_image, Magick::RootMeanSquaredErrorMetric);
- BOOST_CHECK_MESSAGE (dist < 0.01, ref << " differs from " << check << " " << dist);
+ BOOST_CHECK_MESSAGE (dist < threshold, ref << " differs from " << check << " " << dist);
#else
BOOST_CHECK_MESSAGE (!ref_image.compare(check_image), ref << " differs from " << check);
#endif
extern void check_xml (boost::filesystem::path, boost::filesystem::path, std::list<std::string>);
extern void check_file (boost::filesystem::path, boost::filesystem::path);
extern void check_ffmpeg (boost::filesystem::path, boost::filesystem::path, int audio_tolerance);
-extern void check_image (boost::filesystem::path, boost::filesystem::path);
+extern void check_image (boost::filesystem::path, boost::filesystem::path, double threshold = 0.01);
extern boost::filesystem::path test_film_dir (std::string);
extern void write_image (boost::shared_ptr<const Image> image, boost::filesystem::path file, std::string format);
boost::filesystem::path dcp_file (boost::shared_ptr<const Film> film, std::string prefix);