AnalyseAudioJob::AnalyseAudioJob (shared_ptr<const Film> film, shared_ptr<const Playlist> playlist, bool from_zero)
: Job (film)
, _playlist (playlist)
+ , _path (film->audio_analysis_path(playlist))
, _from_zero (from_zero)
, _done (0)
, _samples_per_point (1)
string
AnalyseAudioJob::name () const
{
- return _("Analyse audio");
+ return _("Analysing audio");
}
string
{
shared_ptr<Player> player (new Player (_film, _playlist));
player->set_ignore_video ();
- player->set_ignore_subtitle ();
+ player->set_ignore_text ();
player->set_fast ();
player->set_play_referenced ();
player->Audio.connect (bind (&AnalyseAudioJob::analyse, this, _1, _2));
- DCPTime const length = _playlist->length ();
+ DCPTime const length = _playlist->length (_film);
Frame const len = DCPTime (length - _start).frames_round (_film->audio_frame_rate());
_samples_per_point = max (int64_t (1), len / _num_points);
gain was when we analysed it.
*/
shared_ptr<const AudioContent> ac = _playlist->content().front()->audio;
- DCPOMATIC_ASSERT (ac);
- _analysis->set_analysis_gain (ac->gain ());
+ if (ac) {
+ _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));
+ _analysis->write (_path);
set_progress (1);
set_state (FINISHED_OK);
_done += frames;
- DCPTime const length = _playlist->length ();
+ DCPTime const length = _playlist->length (_film);
set_progress ((time.seconds() - _start.seconds()) / (length.seconds() - _start.seconds()));
}