From: Carl Hetherington Date: Mon, 14 Nov 2022 23:35:20 +0000 (+0100) Subject: Add failing test for #2364. X-Git-Tag: v2.16.33~7 X-Git-Url: https://git.carlh.net/gitweb/?a=commitdiff_plain;ds=sidebyside;h=6ac0c8037f45306798993e743b70afdc62ff4a6b;hp=e82c83b35e7638957f3d80b12d4c59c17436473a;p=dcpomatic.git Add failing test for #2364. --- diff --git a/src/lib/audio_analyser.cc b/src/lib/audio_analyser.cc index c9fc2118c..e4dfc6bde 100644 --- a/src/lib/audio_analyser.cc +++ b/src/lib/audio_analyser.cc @@ -138,6 +138,11 @@ AudioAnalyser::analyse (shared_ptr b, DCPTime time) { LOG_DEBUG_AUDIO_ANALYSIS("Received %1 frames at %2", b->frames(), to_string(time)); DCPOMATIC_ASSERT (time >= _start); + /* In bug #2364 we had a lot of frames arriving here (~47s worth) which + * caused an OOM error on Windows. Check for the number of frames being + * reasonable here to make sure we catch this if it happens again. + */ + DCPOMATIC_ASSERT(b->frames() < 480000); #ifdef DCPOMATIC_HAVE_EBUR128_PATCHED_FFMPEG if (Config::instance()->analyse_ebur128 ()) { diff --git a/test/audio_analysis_test.cc b/test/audio_analysis_test.cc index 8162d540c..b3c519f29 100644 --- a/test/audio_analysis_test.cc +++ b/test/audio_analysis_test.cc @@ -218,3 +218,19 @@ BOOST_AUTO_TEST_CASE (analyse_audio_leqm_test) /* The CLI tool of leqm_nrt gives this value for betty_stereo_48k.wav */ BOOST_CHECK_CLOSE (analysis.leqm().get_value_or(0), 88.276, 0.001); } + + +/** Bug #2364; a file with a lot of silent video at the end (about 50s worth) + * crashed the audio analysis with an OOM on Windows. + */ +BOOST_AUTO_TEST_CASE(analyse_audio_with_long_silent_end) +{ + auto content = content_factory(TestPaths::private_data() / "2364.mkv")[0]; + auto film = new_test_film2("analyse_audio_with_long_silent_end", { content }); + + auto playlist = make_shared(); + playlist->add(film, content); + boost::signals2::connection c; + JobManager::instance()->analyse_audio(film, playlist, false, c, []() {}); + BOOST_CHECK(!wait_for_jobs()); +}