+#ifdef DCPOMATIC_HAVE_EBUR128_PATCHED_FFMPEG
+ _filters.push_back (new Filter ("ebur128", "ebur128", "audio", "ebur128=peak=true"));
+ _ebur128->setup (_filters);
+#endif
+
+ for (int i = 0; i < film->audio_channels(); ++i) {
+ _sample_peak[i] = 0;
+ _sample_peak_frame[i] = 0;
+ }
+
+ if (!_from_zero) {
+ _start = _playlist->start().get_value_or(DCPTime());
+ }
+
+ /* XXX: is this right? Especially for more than 5.1? */
+ vector<double> channel_corrections(film->audio_channels(), 1);
+ add_if_required (channel_corrections, 4, -3); // Ls
+ add_if_required (channel_corrections, 5, -3); // Rs
+ add_if_required (channel_corrections, 6, -144); // HI
+ add_if_required (channel_corrections, 7, -144); // VI
+ add_if_required (channel_corrections, 8, -3); // Lc
+ add_if_required (channel_corrections, 9, -3); // Rc
+ add_if_required (channel_corrections, 10, -3); // Lc
+ add_if_required (channel_corrections, 11, -3); // Rc
+ add_if_required (channel_corrections, 12, -144); // DBox
+ add_if_required (channel_corrections, 13, -144); // Sync
+ add_if_required (channel_corrections, 14, -144); // Sign Language
+ add_if_required (channel_corrections, 15, -144); // Unused