- boost::filesystem::path path = private_data / file;
- if (!boost::filesystem::exists (path)) {
- cerr << "Skipping test: " << path.string() << " not found.\n";
- return;
- }
-
- shared_ptr<Film> film = new_test_film ("ffmpeg_decoder_seek_test_" + file.string());
- shared_ptr<FFmpegContent> content (new FFmpegContent (film, path));
- film->examine_and_add_content (content, true);
- wait_for_jobs ();
- shared_ptr<Log> log (new NullLog);
- FFmpegDecoder decoder (content, log);
-
- BOOST_CHECK_CLOSE (decoder.video_content()->video_frame_rate(), fps, 0.01);
-
- VideoFrame const N = decoder.video_content()->video_length().frames (decoder.video_content()->video_frame_rate ());
-#ifdef DCPOMATIC_DEBUG
- decoder.test_gaps = 0;
-#endif
- for (VideoFrame i = 0; i < N; ++i) {
- list<ContentVideo> v;
- v = decoder.get_video (i, true);
- BOOST_CHECK (v.size() == 1);
- BOOST_CHECK_EQUAL (v.front().frame, i);
- }
-#ifdef DCPOMATIC_DEBUG
- BOOST_CHECK_EQUAL (decoder.test_gaps, gaps);
-#endif