diff options
| author | Carl Hetherington <cth@carlh.net> | 2018-03-26 16:26:32 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2018-03-26 16:26:32 +0100 |
| commit | f0192490565c72aa9838f40cbab56c4c0c60e522 (patch) | |
| tree | cf0f287a164f3a25607f0df13210a5dcc0ffd235 /src/lib | |
| parent | 00dffac67c88b509c1c77da85fe2769049714135 (diff) | |
Add time axis to audio analysis (part of #1082).
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/analyse_audio_job.cc | 2 | ||||
| -rw-r--r-- | src/lib/audio_analysis.cc | 12 | ||||
| -rw-r--r-- | src/lib/audio_analysis.h | 20 |
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; }; |
