From f0192490565c72aa9838f40cbab56c4c0c60e522 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 26 Mar 2018 16:26:32 +0100 Subject: Add time axis to audio analysis (part of #1082). --- src/lib/analyse_audio_job.cc | 2 ++ src/lib/audio_analysis.cc | 12 +++++++++++- src/lib/audio_analysis.h | 20 +++++++++++++++++++- 3 files changed, 32 insertions(+), 2 deletions(-) (limited to 'src/lib') 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 + Copyright (C) 2012-2018 Carl Hetherington This file is part of DCP-o-matic. @@ -90,6 +90,8 @@ AudioAnalysis::AudioAnalysis (boost::filesystem::path filename) _loudness_range = f.optional_number_child ("LoudnessRange"); _analysis_gain = f.optional_number_child ("AnalysisGain"); + _samples_per_point = f.optional_number_child ("SamplesPerPoint"); + _sample_rate = f.optional_number_child ("SampleRate"); } void @@ -156,6 +158,14 @@ AudioAnalysis::write (boost::filesystem::path filename) root->add_child("AnalysisGain")->add_child_text (raw_convert (_analysis_gain.get ())); } + if (_samples_per_point) { + root->add_child("SamplesPerPoint")->add_child_text (raw_convert (_samples_per_point.get())); + } + + if (_sample_rate) { + root->add_child("SampleRate")->add_child_text (raw_convert (_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 + Copyright (C) 2012-2018 Carl Hetherington This file is part of DCP-o-matic. @@ -100,6 +100,22 @@ public: _analysis_gain = gain; } + boost::optional samples_per_point () const { + return _samples_per_point; + } + + void set_samples_per_point (int64_t spp) { + _samples_per_point = spp; + } + + boost::optional 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 playlist); @@ -115,6 +131,8 @@ private: * happened. */ boost::optional _analysis_gain; + boost::optional _samples_per_point; + boost::optional _sample_rate; static int const _current_state_version; }; -- cgit v1.2.3