X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Ffilm.cc;h=590acedfd370f56dd04a5b2077c3a5758b78fc9f;hb=fc7c87692f090b9233210335dfb7c4f53e0f58be;hp=90bfad6a2cbba3c7d0b80e8e2fd08c58920b5b98;hpb=fa61fc99549264810e17fcd35abffe9e8ddab5b2;p=dcpomatic.git 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 #include #include @@ -247,9 +248,28 @@ Film::filename_safe_name () const } boost::filesystem::path -Film::audio_analysis_dir () const +Film::audio_analysis_path (shared_ptr playlist) const { - return dir ("analysis"); + boost::filesystem::path p = dir ("analysis"); + + MD5Digester digester; + BOOST_FOREACH (shared_ptr i, playlist->content ()) { + shared_ptr ac = dynamic_pointer_cast (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 */