From c91f1e6aed0eebe98363ff9d5ba5bf87c6acb48e Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 23 Oct 2025 21:40:47 +0200 Subject: Make it possible to not write audio analysis files. --- src/lib/analyse_audio_job.cc | 10 ++++++---- src/lib/analyse_audio_job.h | 8 ++++---- src/lib/job_manager.cc | 2 +- 3 files changed, 11 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/lib/analyse_audio_job.cc b/src/lib/analyse_audio_job.cc index 4596bd431..cd6a2bbd6 100644 --- a/src/lib/analyse_audio_job.cc +++ b/src/lib/analyse_audio_job.cc @@ -41,6 +41,7 @@ using std::shared_ptr; using std::string; using std::vector; using namespace dcpomatic; +using boost::optional; #if BOOST_VERSION >= 106100 using namespace boost::placeholders; #endif @@ -50,11 +51,11 @@ using namespace boost::placeholders; * to analyse just the single piece of content in the playlist (i.e. start from Playlist::start() and do not * use processors). */ -AnalyseAudioJob::AnalyseAudioJob(shared_ptr film, shared_ptr playlist, bool whole_film) +AnalyseAudioJob::AnalyseAudioJob(shared_ptr film, shared_ptr playlist, bool whole_film, optional path) : Job(film) , _analyser(film, playlist, whole_film, boost::bind(&Job::set_progress, this, _1, false)) , _playlist(playlist) - , _path(film->audio_analysis_path(playlist)) + , _path(path) , _whole_film(whole_film) { LOG_DEBUG_AUDIO_ANALYSIS_NC("AnalyseAudioJob::AnalyseAudioJob"); @@ -111,8 +112,9 @@ AnalyseAudioJob::run() LOG_DEBUG_AUDIO_ANALYSIS_NC("Loop complete"); _analyser.finish(); - auto analysis = _analyser.get(); - analysis.write(_path); + if (_path) { + analysis().write(*_path); + } LOG_DEBUG_AUDIO_ANALYSIS_NC("Job finished"); set_progress(1); diff --git a/src/lib/analyse_audio_job.h b/src/lib/analyse_audio_job.h index 5aea9e13d..fe3d9d0b6 100644 --- a/src/lib/analyse_audio_job.h +++ b/src/lib/analyse_audio_job.h @@ -50,7 +50,7 @@ class Playlist; class AnalyseAudioJob : public Job { public: - AnalyseAudioJob(std::shared_ptr, std::shared_ptr, bool whole_film); + AnalyseAudioJob(std::shared_ptr, std::shared_ptr, bool whole_film, boost::optional path); ~AnalyseAudioJob(); std::string name() const override; @@ -60,7 +60,7 @@ public: return true; } - boost::filesystem::path path() const { + boost::optional path() const { return _path; } @@ -71,8 +71,8 @@ private: AudioAnalyser _analyser; std::shared_ptr _playlist; - /** playlist's audio analysis path when the job was created */ - boost::filesystem::path _path; + /** Path to write analysis file to */ + boost::optional _path; bool _whole_film; static const int _num_points; diff --git a/src/lib/job_manager.cc b/src/lib/job_manager.cc index c429dab6e..3c6566727 100644 --- a/src/lib/job_manager.cc +++ b/src/lib/job_manager.cc @@ -251,7 +251,7 @@ JobManager::analyse_audio( { boost::mutex::scoped_lock lm(_mutex); - job = make_shared(film, playlist, from_zero); + job = make_shared(film, playlist, from_zero, film->audio_analysis_path(playlist)); connection = job->Finished.connect(ready); _jobs.push_back(job); _schedule_condition.notify_all(); -- cgit v1.2.3