diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-12-18 12:09:35 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-12-18 12:09:35 +0000 |
| commit | 060a980527bc0b39e12494fec3c0baaab4c9d086 (patch) | |
| tree | 82de7bbcf605543be583b2ed3daf22d8145f6657 /test | |
| parent | e0c59417c6a52dbd853114fbc0f88c6d8c1dd276 (diff) | |
Fix seek with respect to video/audio frame boundary alignment.
Diffstat (limited to 'test')
| -rw-r--r-- | test/ffmpeg_seek_test.cc | 14 | ||||
| -rw-r--r-- | test/util_test.cc | 14 |
2 files changed, 24 insertions, 4 deletions
diff --git a/test/ffmpeg_seek_test.cc b/test/ffmpeg_seek_test.cc index f587d6cc6..e66a1918c 100644 --- a/test/ffmpeg_seek_test.cc +++ b/test/ffmpeg_seek_test.cc @@ -28,11 +28,13 @@ using std::cout; using std::string; using std::stringstream; using boost::shared_ptr; +using boost::optional; #define FFMPEG_SEEK_TEST_DEBUG 1 -boost::optional<DCPTime> first_video; -boost::optional<DCPTime> first_audio; +optional<DCPTime> first_video; +optional<DCPTime> first_audio; +shared_ptr<Film> film; static void process_video (shared_ptr<PlayerImage>, Eyes, ColourConversion, bool, DCPTime t) @@ -77,14 +79,18 @@ check (shared_ptr<Player> p, DCPTime t) cout << "First video " << print_time (first_video.get(), 24) << "\n"; cout << "First audio " << print_time (first_audio.get(), 24) << "\n"; #endif - + + /* Outputs should be on or after seek time */ BOOST_CHECK (first_video.get() >= t); BOOST_CHECK (first_audio.get() >= t); + /* And should be rounded to frame boundaries */ + BOOST_CHECK ((first_video.get() % (TIME_HZ / film->video_frame_rate())) == 0); + BOOST_CHECK ((first_audio.get() % (TIME_HZ / film->audio_frame_rate())) == 0); } BOOST_AUTO_TEST_CASE (ffmpeg_seek_test) { - shared_ptr<Film> film = new_test_film ("ffmpeg_audio_test"); + film = new_test_film ("ffmpeg_audio_test"); film->set_name ("ffmpeg_audio_test"); film->set_container (Ratio::from_id ("185")); shared_ptr<FFmpegContent> c (new FFmpegContent (film, "test/data/staircase.mov")); diff --git a/test/util_test.cc b/test/util_test.cc index 4dccb49c6..5733c7d03 100644 --- a/test/util_test.cc +++ b/test/util_test.cc @@ -53,3 +53,17 @@ BOOST_AUTO_TEST_CASE (md5_digest_test) p.push_back ("foobar"); BOOST_CHECK_THROW (md5_digest (p, shared_ptr<Job> ()), std::runtime_error); } + +/* Straightforward test of time_round_up_test */ +BOOST_AUTO_TEST_CASE (time_round_up_test) +{ + BOOST_CHECK_EQUAL (time_round_up (0, 2), 0); + BOOST_CHECK_EQUAL (time_round_up (1, 2), 2); + BOOST_CHECK_EQUAL (time_round_up (2, 2), 2); + BOOST_CHECK_EQUAL (time_round_up (3, 2), 4); + + BOOST_CHECK_EQUAL (time_round_up (0, 42), 0); + BOOST_CHECK_EQUAL (time_round_up (1, 42), 42); + BOOST_CHECK_EQUAL (time_round_up (42, 42), 42); + BOOST_CHECK_EQUAL (time_round_up (43, 42), 84); +} |
