- DCPTime const block = DCPTime::from_seconds (1.0 / 8);
- for (DCPTime t; t < _film->length(); t += block) {
- analyse (player->get_audio (t, block, false));
- set_progress (t.seconds() / _film->length().seconds());
+ while (!player->pass ()) {}
+ }
+
+ vector<AudioAnalysis::PeakTime> sample_peak;
+ for (int i = 0; i < _film->audio_channels(); ++i) {
+ sample_peak.push_back (
+ AudioAnalysis::PeakTime (_sample_peak[i], DCPTime::from_frames (_sample_peak_frame[i], _film->audio_frame_rate ()))
+ );
+ }
+ _analysis->set_sample_peak (sample_peak);
+
+#ifdef DCPOMATIC_HAVE_EBUR128_PATCHED_FFMPEG
+ if (Config::instance()->analyse_ebur128 ()) {
+ void* eb = _ebur128->get("Parsed_ebur128_0")->priv;
+ vector<float> true_peak;
+ for (int i = 0; i < _film->audio_channels(); ++i) {
+ true_peak.push_back (av_ebur128_get_true_peaks(eb)[i]);