diff options
| author | Carl Hetherington <cth@carlh.net> | 2015-06-03 15:31:21 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2015-06-03 15:31:21 +0100 |
| commit | f98caf4af896e9be943046b84586da5c2e103f18 (patch) | |
| tree | 993f719e293667c432c95026dc2bfd53d5b84982 /src/lib/film.cc | |
| parent | 92c377d1b9e781fbb4b1f1b7a76ca7dba0bd637f (diff) | |
Make show audio work on the whole DCP, not individual content.
Diffstat (limited to 'src/lib/film.cc')
| -rw-r--r-- | src/lib/film.cc | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/src/lib/film.cc b/src/lib/film.cc index 90bfad6a2..590acedfd 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -42,6 +42,7 @@ #include "environment_info.h" #include "raw_convert.h" #include "audio_processor.h" +#include "md5_digester.h" #include <libcxml/cxml.h> #include <dcp/cpl.h> #include <dcp/signer.h> @@ -247,9 +248,28 @@ Film::filename_safe_name () const } boost::filesystem::path -Film::audio_analysis_dir () const +Film::audio_analysis_path (shared_ptr<const Playlist> playlist) const { - return dir ("analysis"); + boost::filesystem::path p = dir ("analysis"); + + MD5Digester digester; + BOOST_FOREACH (shared_ptr<Content> i, playlist->content ()) { + shared_ptr<AudioContent> ac = dynamic_pointer_cast<AudioContent> (i); + if (!ac) { + continue; + } + + digester.add (ac->digest ()); + digester.add (ac->audio_mapping().digest ()); + digester.add (ac->audio_gain ()); + } + + if (audio_processor ()) { + digester.add (audio_processor()->id ()); + } + + p /= digester.get (); + return p; } /** Add suitable Jobs to the JobManager to create a DCP for this Film */ |
