summaryrefslogtreecommitdiff
path: root/test/audio_analysis_test.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2024-07-03 23:47:11 +0200
committerCarl Hetherington <cth@carlh.net>2024-07-03 23:47:11 +0200
commit5696315078be7a3f61763690ddc201c558ddcd5a (patch)
tree0fc0ccc89236cd42e4782608c3cfeb11d894714c /test/audio_analysis_test.cc
parentb42699ccbf7865fc84b8c6218c070a1f06d2703a (diff)
Add ebur128 test.
Diffstat (limited to 'test/audio_analysis_test.cc')
-rw-r--r--test/audio_analysis_test.cc29
1 files changed, 29 insertions, 0 deletions
diff --git a/test/audio_analysis_test.cc b/test/audio_analysis_test.cc
index 77b251918..41f0abead 100644
--- a/test/audio_analysis_test.cc
+++ b/test/audio_analysis_test.cc
@@ -283,3 +283,32 @@ BOOST_AUTO_TEST_CASE(analyse_audio_uses_processor_when_analysing_whole_film)
BOOST_CHECK(centre_non_zero);
}
+
+BOOST_AUTO_TEST_CASE(ebur128_test)
+{
+ auto dcp = make_shared<DCPContent>(TestPaths::private_data() / "JourneyToJah_TLR-1_F_EN-DE-FR_CH_51_2K_LOK_20140225_DGL_SMPTE_OV");
+ auto film = new_test_film("ebur128_test", { dcp });
+ film->set_audio_channels(8);
+
+ auto analyse = [film, dcp](int channels) {
+ film->set_audio_channels(channels);
+ auto playlist = make_shared<Playlist>();
+ playlist->add(film, dcp);
+ boost::signals2::connection c;
+ JobManager::instance()->analyse_audio(film, playlist, false, c, [](Job::Result) {});
+ BOOST_CHECK(!wait_for_jobs());
+ return AudioAnalysis(film->audio_analysis_path(playlist));
+ };
+
+ auto six = analyse(6);
+ BOOST_CHECK_CLOSE(six.true_peak()[0], 0.520668, 1);
+ BOOST_CHECK_CLOSE(six.true_peak()[1], 0.519579, 1);
+ BOOST_CHECK_CLOSE(six.true_peak()[2], 0.533980, 1);
+ BOOST_CHECK_CLOSE(six.true_peak()[3], 0.326270, 1);
+ BOOST_CHECK_CLOSE(six.true_peak()[4], 0.363581, 1);
+ BOOST_CHECK_CLOSE(six.true_peak()[5], 0.317751, 1);
+ BOOST_CHECK_CLOSE(six.overall_true_peak().get(), 0.53398, 1);
+ BOOST_CHECK_CLOSE(six.overall_true_peak().get(), 0.53398, 1);
+ BOOST_CHECK_CLOSE(six.integrated_loudness().get(), -18.1432, 1);
+ BOOST_CHECK_CLOSE(six.loudness_range().get(), 6.92, 1);
+}