X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Faudio_content.cc;h=6da5afa0c986a22bd45a52f90f434d9fab0df4bf;hb=1f8b45c7fd49714628009f5ed2161fbaa2b4d729;hp=de743571bf218b7e747b7792b46a057aa0965918;hpb=ad10aea1d685e67e0e639f6303fc9c8f8f1f945c;p=dcpomatic.git diff --git a/src/lib/audio_content.cc b/src/lib/audio_content.cc index de743571b..6da5afa0c 100644 --- a/src/lib/audio_content.cc +++ b/src/lib/audio_content.cc @@ -23,6 +23,7 @@ #include "job_manager.h" #include "film.h" #include "exceptions.h" +#include "config.h" #include "i18n.h" @@ -42,7 +43,7 @@ int const AudioContentProperty::AUDIO_MAPPING = 205; AudioContent::AudioContent (shared_ptr f, DCPTime s) : Content (f, s) , _audio_gain (0) - , _audio_delay (0) + , _audio_delay (Config::instance()->default_audio_delay ()) { } @@ -50,7 +51,7 @@ AudioContent::AudioContent (shared_ptr f, DCPTime s) AudioContent::AudioContent (shared_ptr f, boost::filesystem::path p) : Content (f, p) , _audio_gain (0) - , _audio_delay (0) + , _audio_delay (Config::instance()->default_audio_delay ()) { } @@ -140,35 +141,19 @@ AudioContent::audio_analysis_path () const return boost::filesystem::path (); } - return film->audio_analysis_path (dynamic_pointer_cast (shared_from_this ())); + boost::filesystem::path p = film->audio_analysis_dir (); + p /= digest (); + return p; } string AudioContent::technical_summary () const { - return String::compose ("audio: channels %1, length %2, raw rate %3, out rate %4", audio_channels(), audio_length(), content_audio_frame_rate(), output_audio_frame_rate()); -} - -/** Note: this is not particularly fast, as the FrameRateChange lookup - * is not very intelligent. - * - * @param t Some duration to convert. - * @param at The time within the DCP to get the active frame rate change from; i.e. a point at which - * the `controlling' video content is active. - */ -AudioContent::Frame -AudioContent::time_to_content_audio_frames (DCPTime t, DCPTime at) const -{ - shared_ptr film = _film.lock (); - assert (film); - - /* Consider the case where we're running a 25fps video at 24fps (i.e. slow) - Our audio is at 44.1kHz. We will resample it to 48000 * 25 / 24 and then - run it at 48kHz (i.e. slow, to match). - - After 1 second, we'll have run the equivalent of 44.1kHz * 24 / 25 samples - in the source. - */ - - return rint (t * content_audio_frame_rate() * film->active_frame_rate_change(at).speed_up / TIME_HZ); + return String::compose ( + "audio: channels %1, length %2, raw rate %3, out rate %4", + audio_channels(), + audio_length().seconds(), + content_audio_frame_rate(), + output_audio_frame_rate() + ); }