X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fanalyse_audio_job.cc;h=88cd65fee64f0227d24960600b6664dc46721ae1;hb=78c78cdb5c4c6c62ba98fa54c9ba54812149ef7b;hp=ca316f70ebe80d2ce4ccc2734dbd9f99459cb570;hpb=dd7cf1ef6e860243b80f4c47a99393244f63a3d5;p=dcpomatic.git diff --git a/src/lib/analyse_audio_job.cc b/src/lib/analyse_audio_job.cc index ca316f70e..88cd65fee 100644 --- a/src/lib/analyse_audio_job.cc +++ b/src/lib/analyse_audio_job.cc @@ -29,6 +29,7 @@ using std::string; using std::max; +using std::min; using std::cout; using boost::shared_ptr; @@ -66,8 +67,8 @@ AnalyseAudioJob::run () decoders.audio->set_audio_stream (_film->audio_stream ()); decoders.audio->Audio.connect (bind (&AnalyseAudioJob::audio, this, _1)); - int64_t total_audio_frames = video_frames_to_audio_frames (_film->length().get(), _film->audio_stream()->sample_rate(), _film->frames_per_second()); - _samples_per_point = total_audio_frames / _num_points; + int64_t total_audio_frames = video_frames_to_audio_frames (_film->length().get(), _film->audio_stream()->sample_rate(), _film->source_frame_rate()); + _samples_per_point = max (int64_t (1), total_audio_frames / _num_points); _current.resize (_film->audio_stream()->channels ()); _analysis.reset (new AudioAnalysis (_film->audio_stream()->channels())); @@ -83,7 +84,7 @@ AnalyseAudioJob::run () } void -AnalyseAudioJob::audio (shared_ptr b) +AnalyseAudioJob::audio (shared_ptr b) { for (int i = 0; i < b->frames(); ++i) { for (int j = 0; j < b->channels(); ++j) {