X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Fframe_rate_test.cc;h=fdfdcf4529739f126ffab9da192aafeec44f8503;hb=31b7a6478c9d8d1f590e5da856d43948489f92c5;hp=2ea7e60a5063fc4ccbcdf127fa95236e262a0996;hpb=59404039618db5d70a2f8fc0cb8c49ae4f8ce527;p=dcpomatic.git diff --git a/test/frame_rate_test.cc b/test/frame_rate_test.cc index 2ea7e60a5..fdfdcf452 100644 --- a/test/frame_rate_test.cc +++ b/test/frame_rate_test.cc @@ -20,6 +20,8 @@ #include #include "lib/film.h" #include "lib/config.h" +#include "lib/ffmpeg_content.h" +#include "lib/playlist.h" #include "test.h" using boost::shared_ptr; @@ -48,7 +50,7 @@ BOOST_AUTO_TEST_CASE (best_dcp_frame_rate_test_single) FrameRateConversion frc = FrameRateConversion (60, best); BOOST_CHECK_EQUAL (best, 30); BOOST_CHECK_EQUAL (frc.skip, true); - BOOST_CHECK_EQUAL (frc.repeat, false); + BOOST_CHECK_EQUAL (frc.repeat, 1); BOOST_CHECK_EQUAL (frc.change_speed, false); content->_video_frame_rate = 50; @@ -56,7 +58,7 @@ BOOST_AUTO_TEST_CASE (best_dcp_frame_rate_test_single) frc = FrameRateConversion (50, best); BOOST_CHECK_EQUAL (best, 25); BOOST_CHECK_EQUAL (frc.skip, true); - BOOST_CHECK_EQUAL (frc.repeat, false); + BOOST_CHECK_EQUAL (frc.repeat, 1); BOOST_CHECK_EQUAL (frc.change_speed, false); content->_video_frame_rate = 48; @@ -64,7 +66,7 @@ BOOST_AUTO_TEST_CASE (best_dcp_frame_rate_test_single) frc = FrameRateConversion (48, best); BOOST_CHECK_EQUAL (best, 24); BOOST_CHECK_EQUAL (frc.skip, true); - BOOST_CHECK_EQUAL (frc.repeat, false); + BOOST_CHECK_EQUAL (frc.repeat, 1); BOOST_CHECK_EQUAL (frc.change_speed, false); content->_video_frame_rate = 30; @@ -72,7 +74,7 @@ BOOST_AUTO_TEST_CASE (best_dcp_frame_rate_test_single) frc = FrameRateConversion (30, best); BOOST_CHECK_EQUAL (best, 30); BOOST_CHECK_EQUAL (frc.skip, false); - BOOST_CHECK_EQUAL (frc.repeat, false); + BOOST_CHECK_EQUAL (frc.repeat, 1); BOOST_CHECK_EQUAL (frc.change_speed, false); content->_video_frame_rate = 29.97; @@ -80,7 +82,7 @@ BOOST_AUTO_TEST_CASE (best_dcp_frame_rate_test_single) frc = FrameRateConversion (29.97, best); BOOST_CHECK_EQUAL (best, 30); BOOST_CHECK_EQUAL (frc.skip, false); - BOOST_CHECK_EQUAL (frc.repeat, false); + BOOST_CHECK_EQUAL (frc.repeat, 1); BOOST_CHECK_EQUAL (frc.change_speed, true); content->_video_frame_rate = 25; @@ -88,7 +90,7 @@ BOOST_AUTO_TEST_CASE (best_dcp_frame_rate_test_single) frc = FrameRateConversion (25, best); BOOST_CHECK_EQUAL (best, 25); BOOST_CHECK_EQUAL (frc.skip, false); - BOOST_CHECK_EQUAL (frc.repeat, false); + BOOST_CHECK_EQUAL (frc.repeat, 1); BOOST_CHECK_EQUAL (frc.change_speed, false); content->_video_frame_rate = 24; @@ -96,7 +98,7 @@ BOOST_AUTO_TEST_CASE (best_dcp_frame_rate_test_single) frc = FrameRateConversion (24, best); BOOST_CHECK_EQUAL (best, 24); BOOST_CHECK_EQUAL (frc.skip, false); - BOOST_CHECK_EQUAL (frc.repeat, false); + BOOST_CHECK_EQUAL (frc.repeat, 1); BOOST_CHECK_EQUAL (frc.change_speed, false); content->_video_frame_rate = 14.5; @@ -104,7 +106,7 @@ BOOST_AUTO_TEST_CASE (best_dcp_frame_rate_test_single) frc = FrameRateConversion (14.5, best); BOOST_CHECK_EQUAL (best, 30); BOOST_CHECK_EQUAL (frc.skip, false); - BOOST_CHECK_EQUAL (frc.repeat, true); + BOOST_CHECK_EQUAL (frc.repeat, 2); BOOST_CHECK_EQUAL (frc.change_speed, true); content->_video_frame_rate = 12.6; @@ -112,7 +114,7 @@ BOOST_AUTO_TEST_CASE (best_dcp_frame_rate_test_single) frc = FrameRateConversion (12.6, best); BOOST_CHECK_EQUAL (best, 25); BOOST_CHECK_EQUAL (frc.skip, false); - BOOST_CHECK_EQUAL (frc.repeat, true); + BOOST_CHECK_EQUAL (frc.repeat, 2); BOOST_CHECK_EQUAL (frc.change_speed, true); content->_video_frame_rate = 12.4; @@ -120,7 +122,7 @@ BOOST_AUTO_TEST_CASE (best_dcp_frame_rate_test_single) frc = FrameRateConversion (12.4, best); BOOST_CHECK_EQUAL (best, 25); BOOST_CHECK_EQUAL (frc.skip, false); - BOOST_CHECK_EQUAL (frc.repeat, true); + BOOST_CHECK_EQUAL (frc.repeat, 2); BOOST_CHECK_EQUAL (frc.change_speed, true); content->_video_frame_rate = 12; @@ -128,7 +130,7 @@ BOOST_AUTO_TEST_CASE (best_dcp_frame_rate_test_single) frc = FrameRateConversion (12, best); BOOST_CHECK_EQUAL (best, 24); BOOST_CHECK_EQUAL (frc.skip, false); - BOOST_CHECK_EQUAL (frc.repeat, true); + BOOST_CHECK_EQUAL (frc.repeat, 2); BOOST_CHECK_EQUAL (frc.change_speed, false); /* Now add some more rates and see if it will use them @@ -145,7 +147,7 @@ BOOST_AUTO_TEST_CASE (best_dcp_frame_rate_test_single) frc = FrameRateConversion (60, best); BOOST_CHECK_EQUAL (best, 60); BOOST_CHECK_EQUAL (frc.skip, false); - BOOST_CHECK_EQUAL (frc.repeat, false); + BOOST_CHECK_EQUAL (frc.repeat, 1); BOOST_CHECK_EQUAL (frc.change_speed, false); content->_video_frame_rate = 50; @@ -153,7 +155,7 @@ BOOST_AUTO_TEST_CASE (best_dcp_frame_rate_test_single) frc = FrameRateConversion (50, best); BOOST_CHECK_EQUAL (best, 50); BOOST_CHECK_EQUAL (frc.skip, false); - BOOST_CHECK_EQUAL (frc.repeat, false); + BOOST_CHECK_EQUAL (frc.repeat, 1); BOOST_CHECK_EQUAL (frc.change_speed, false); content->_video_frame_rate = 48; @@ -161,14 +163,14 @@ BOOST_AUTO_TEST_CASE (best_dcp_frame_rate_test_single) frc = FrameRateConversion (48, best); BOOST_CHECK_EQUAL (best, 48); BOOST_CHECK_EQUAL (frc.skip, false); - BOOST_CHECK_EQUAL (frc.repeat, false); + BOOST_CHECK_EQUAL (frc.repeat, 1); BOOST_CHECK_EQUAL (frc.change_speed, false); /* Check some out-there conversions (not the best) */ frc = FrameRateConversion (14.99, 24); BOOST_CHECK_EQUAL (frc.skip, false); - BOOST_CHECK_EQUAL (frc.repeat, true); + BOOST_CHECK_EQUAL (frc.repeat, 2); BOOST_CHECK_EQUAL (frc.change_speed, true); /* Check some conversions with limited DCP targets */ @@ -182,7 +184,7 @@ BOOST_AUTO_TEST_CASE (best_dcp_frame_rate_test_single) frc = FrameRateConversion (25, best); BOOST_CHECK_EQUAL (best, 24); BOOST_CHECK_EQUAL (frc.skip, false); - BOOST_CHECK_EQUAL (frc.repeat, false); + BOOST_CHECK_EQUAL (frc.repeat, 1); BOOST_CHECK_EQUAL (frc.change_speed, true); } @@ -228,7 +230,7 @@ BOOST_AUTO_TEST_CASE (audio_sampling_rate_test) Config::instance()->set_allowed_dcp_frame_rates (afr); content->_video_frame_rate = 24; - film->set_dcp_video_frame_rate (24); + film->set_video_frame_rate (24); content->set_audio_stream (shared_ptr (new FFmpegAudioStream ("a", 42, 48000, 0))); BOOST_CHECK_EQUAL (content->output_audio_frame_rate(), 48000); @@ -239,30 +241,30 @@ BOOST_AUTO_TEST_CASE (audio_sampling_rate_test) BOOST_CHECK_EQUAL (content->output_audio_frame_rate(), 96000); content->_video_frame_rate = 23.976; - film->set_dcp_video_frame_rate (24); + film->set_video_frame_rate (24); content->set_audio_stream (shared_ptr (new FFmpegAudioStream ("a", 42, 48000, 0))); BOOST_CHECK_EQUAL (content->output_audio_frame_rate(), 47952); content->_video_frame_rate = 29.97; - film->set_dcp_video_frame_rate (30); - BOOST_CHECK_EQUAL (film->dcp_video_frame_rate (), 30); + film->set_video_frame_rate (30); + BOOST_CHECK_EQUAL (film->video_frame_rate (), 30); content->set_audio_stream (shared_ptr (new FFmpegAudioStream ("a", 42, 48000, 0))); BOOST_CHECK_EQUAL (content->output_audio_frame_rate(), 47952); content->_video_frame_rate = 25; - film->set_dcp_video_frame_rate (24); + film->set_video_frame_rate (24); content->set_audio_stream (shared_ptr (new FFmpegAudioStream ("a", 42, 48000, 0))); BOOST_CHECK_EQUAL (content->output_audio_frame_rate(), 50000); content->_video_frame_rate = 25; - film->set_dcp_video_frame_rate (24); + film->set_video_frame_rate (24); content->set_audio_stream (shared_ptr (new FFmpegAudioStream ("a", 42, 44100, 0))); BOOST_CHECK_EQUAL (content->output_audio_frame_rate(), 50000); /* Check some out-there conversions (not the best) */ content->_video_frame_rate = 14.99; - film->set_dcp_video_frame_rate (25); + film->set_video_frame_rate (25); content->set_audio_stream (shared_ptr (new FFmpegAudioStream ("a", 42, 16000, 0))); /* The FrameRateConversion within output_audio_frame_rate should choose to double-up the 14.99 fps video to 30 and then run it slow at 25.