diff options
| author | Carl Hetherington <cth@carlh.net> | 2025-10-23 21:40:47 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2025-10-23 22:30:46 +0200 |
| commit | c91f1e6aed0eebe98363ff9d5ba5bf87c6acb48e (patch) | |
| tree | 806a9d177e76429f67a50363ab2a05c3b6e976f4 /src | |
| parent | ddd17c51b6810b03826cc7c7b27ffcb9788cf230 (diff) | |
Make it possible to not write audio analysis files.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/analyse_audio_job.cc | 10 | ||||
| -rw-r--r-- | src/lib/analyse_audio_job.h | 8 | ||||
| -rw-r--r-- | src/lib/job_manager.cc | 2 |
3 files changed, 11 insertions, 9 deletions
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<const Film> film, shared_ptr<const Playlist> playlist, bool whole_film) +AnalyseAudioJob::AnalyseAudioJob(shared_ptr<const Film> film, shared_ptr<const Playlist> playlist, bool whole_film, optional<boost::filesystem::path> 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<const Film>, std::shared_ptr<const Playlist>, bool whole_film); + AnalyseAudioJob(std::shared_ptr<const Film>, std::shared_ptr<const Playlist>, bool whole_film, boost::optional<boost::filesystem::path> path); ~AnalyseAudioJob(); std::string name() const override; @@ -60,7 +60,7 @@ public: return true; } - boost::filesystem::path path() const { + boost::optional<boost::filesystem::path> path() const { return _path; } @@ -71,8 +71,8 @@ private: AudioAnalyser _analyser; std::shared_ptr<const Playlist> _playlist; - /** playlist's audio analysis path when the job was created */ - boost::filesystem::path _path; + /** Path to write analysis file to */ + boost::optional<boost::filesystem::path> _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<AnalyseAudioJob>(film, playlist, from_zero); + job = make_shared<AnalyseAudioJob>(film, playlist, from_zero, film->audio_analysis_path(playlist)); connection = job->Finished.connect(ready); _jobs.push_back(job); _schedule_condition.notify_all(); |
