From f67ca10f2e1e0c7aa53de12ebcc2c17ed63240a2 Mon Sep 17 00:00:00 2001 From: Niklas Haas Date: Mon, 23 Jun 2025 20:47:22 +0200 Subject: [PATCH] avfilter/f_ebur128: properly propagate true peak After 3b26b782ee, `ebur128->true_peak` was only set to the maximum of the current "true peak per frame" values, when it should report the true peak for the entire stream. Fixes: 3b26b782eeded9b9ab7fac013cd1a83a30d68206 --- libavfilter/f_ebur128.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavfilter/f_ebur128.c b/libavfilter/f_ebur128.c index 80cbe20330..63669b71de 100644 --- a/libavfilter/f_ebur128.c +++ b/libavfilter/f_ebur128.c @@ -692,11 +692,13 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *insamples) double peak = dsp->find_peak(ebur128->true_peaks_per_frame, nb_channels, swr_samples, ret); - ebur128->true_peak = DBFS(peak); for (int ch = 0; ch < nb_channels; ch++) { + peak = FFMAX(peak, ebur128->true_peaks[ch]); ebur128->true_peaks[ch] = FFMAX(ebur128->true_peaks[ch], ebur128->true_peaks_per_frame[ch]); } + + ebur128->true_peak = DBFS(peak); } #endif