for different streams correctly.
Reported-by: Markus Raab
2014-03-08 Carl Hetherington <cth@carlh.net>
2014-03-08 Carl Hetherington <cth@carlh.net>
+ * Fix incorrect audio analyses on multiple-stream content.
+
* Support for unsigned 8-bit audio (hmm!).
2014-03-06 Carl Hetherington <cth@carlh.net>
* Support for unsigned 8-bit audio (hmm!).
2014-03-06 Carl Hetherington <cth@carlh.net>
return boost::filesystem::path ();
}
return boost::filesystem::path ();
}
- return film->audio_analysis_path (dynamic_pointer_cast<const AudioContent> (shared_from_this ()));
+ boost::filesystem::path p = film->audio_analysis_dir ();
+ p /= digest ();
+ return p;
virtual int output_audio_frame_rate () const = 0;
virtual AudioMapping audio_mapping () const = 0;
virtual void set_audio_mapping (AudioMapping) = 0;
virtual int output_audio_frame_rate () const = 0;
virtual AudioMapping audio_mapping () const = 0;
virtual void set_audio_mapping (AudioMapping) = 0;
+ virtual boost::filesystem::path audio_analysis_path () const;
boost::signals2::connection analyse_audio (boost::function<void()>);
boost::signals2::connection analyse_audio (boost::function<void()>);
- boost::filesystem::path audio_analysis_path () const;
void set_audio_gain (float);
void set_audio_delay (int);
void set_audio_gain (float);
void set_audio_delay (int);
+boost::filesystem::path
+FFmpegContent::audio_analysis_path () const
+{
+ shared_ptr<const Film> film = _film.lock ();
+ if (!film) {
+ return boost::filesystem::path ();
+ }
+
+ /* We need to include the stream ID in this path so that we get different
+ analyses for each stream.
+ */
+
+ boost::filesystem::path p = film->audio_analysis_dir ();
+ string name = digest ();
+ if (audio_stream ()) {
+ name += "_" + audio_stream()->identifier ();
+ }
+ p /= name;
+ return p;
+}
int output_audio_frame_rate () const;
AudioMapping audio_mapping () const;
void set_audio_mapping (AudioMapping);
int output_audio_frame_rate () const;
AudioMapping audio_mapping () const;
void set_audio_mapping (AudioMapping);
+ boost::filesystem::path audio_analysis_path () const;
void set_filters (std::vector<Filter const *> const &);
void set_filters (std::vector<Filter const *> const &);
}
boost::filesystem::path
}
boost::filesystem::path
-Film::audio_analysis_path (shared_ptr<const AudioContent> c) const
+Film::audio_analysis_dir () const
- boost::filesystem::path p = dir ("analysis");
- p /= c->digest();
- return p;
+ return dir ("analysis");
}
/** Add suitable Jobs to the JobManager to create a DCP for this Film */
}
/** Add suitable Jobs to the JobManager to create a DCP for this Film */
boost::filesystem::path info_path (int, Eyes) const;
boost::filesystem::path internal_video_mxf_dir () const;
boost::filesystem::path internal_video_mxf_filename () const;
boost::filesystem::path info_path (int, Eyes) const;
boost::filesystem::path internal_video_mxf_dir () const;
boost::filesystem::path internal_video_mxf_filename () const;
- boost::filesystem::path audio_analysis_path (boost::shared_ptr<const AudioContent>) const;
+ boost::filesystem::path audio_analysis_dir () const;
boost::filesystem::path video_mxf_filename () const;
boost::filesystem::path audio_mxf_filename () const;
boost::filesystem::path video_mxf_filename () const;
boost::filesystem::path audio_mxf_filename () const;