summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-03-26 16:26:32 +0100
committerCarl Hetherington <cth@carlh.net>2018-03-26 16:26:32 +0100
commitf0192490565c72aa9838f40cbab56c4c0c60e522 (patch)
treecf0f287a164f3a25607f0df13210a5dcc0ffd235 /src/lib
parent00dffac67c88b509c1c77da85fe2769049714135 (diff)
Add time axis to audio analysis (part of #1082).
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/analyse_audio_job.cc2
-rw-r--r--src/lib/audio_analysis.cc12
-rw-r--r--src/lib/audio_analysis.h20
3 files changed, 32 insertions, 2 deletions
diff --git a/src/lib/analyse_audio_job.cc b/src/lib/analyse_audio_job.cc
index b96c7047b..db917301a 100644
--- a/src/lib/analyse_audio_job.cc
+++ b/src/lib/analyse_audio_job.cc
@@ -163,6 +163,8 @@ AnalyseAudioJob::run ()
_analysis->set_analysis_gain (ac->gain ());
}
+ _analysis->set_samples_per_point (_samples_per_point);
+ _analysis->set_sample_rate (_film->audio_frame_rate ());
_analysis->write (_film->audio_analysis_path (_playlist));
set_progress (1);
diff --git a/src/lib/audio_analysis.cc b/src/lib/audio_analysis.cc
index 61cdd5fcc..b58a3127d 100644
--- a/src/lib/audio_analysis.cc
+++ b/src/lib/audio_analysis.cc
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2012-2016 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2012-2018 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
@@ -90,6 +90,8 @@ AudioAnalysis::AudioAnalysis (boost::filesystem::path filename)
_loudness_range = f.optional_number_child<float> ("LoudnessRange");
_analysis_gain = f.optional_number_child<double> ("AnalysisGain");
+ _samples_per_point = f.optional_number_child<int64_t> ("SamplesPerPoint");
+ _sample_rate = f.optional_number_child<int64_t> ("SampleRate");
}
void
@@ -156,6 +158,14 @@ AudioAnalysis::write (boost::filesystem::path filename)
root->add_child("AnalysisGain")->add_child_text (raw_convert<string> (_analysis_gain.get ()));
}
+ if (_samples_per_point) {
+ root->add_child("SamplesPerPoint")->add_child_text (raw_convert<string> (_samples_per_point.get()));
+ }
+
+ if (_sample_rate) {
+ root->add_child("SampleRate")->add_child_text (raw_convert<string> (_sample_rate.get()));
+ }
+
doc->write_to_file_formatted (filename.string ());
}
diff --git a/src/lib/audio_analysis.h b/src/lib/audio_analysis.h
index 6da651c95..0a5e6194d 100644
--- a/src/lib/audio_analysis.h
+++ b/src/lib/audio_analysis.h
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2012-2018 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
@@ -100,6 +100,22 @@ public:
_analysis_gain = gain;
}
+ boost::optional<int64_t> samples_per_point () const {
+ return _samples_per_point;
+ }
+
+ void set_samples_per_point (int64_t spp) {
+ _samples_per_point = spp;
+ }
+
+ boost::optional<int> sample_rate () const {
+ return _sample_rate;
+ }
+
+ void set_sample_rate (int sr) {
+ _sample_rate = sr;
+ }
+
void write (boost::filesystem::path);
float gain_correction (boost::shared_ptr<const Playlist> playlist);
@@ -115,6 +131,8 @@ private:
* happened.
*/
boost::optional<double> _analysis_gain;
+ boost::optional<int64_t> _samples_per_point;
+ boost::optional<int> _sample_rate;
static int const _current_state_version;
};