summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2025-10-23 21:40:47 +0200
committerCarl Hetherington <cth@carlh.net>2025-10-23 22:30:46 +0200
commitc91f1e6aed0eebe98363ff9d5ba5bf87c6acb48e (patch)
tree806a9d177e76429f67a50363ab2a05c3b6e976f4 /src
parentddd17c51b6810b03826cc7c7b27ffcb9788cf230 (diff)
Make it possible to not write audio analysis files.
Diffstat (limited to 'src')
-rw-r--r--src/lib/analyse_audio_job.cc10
-rw-r--r--src/lib/analyse_audio_job.h8
-rw-r--r--src/lib/job_manager.cc2
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();