[FFmpeg-devel] [PATCH] avfilter/f_ebur128: properly propagate true peak

Niklas Haas ffmpeg at haasn.xyz
Mon Jun 23 21:51:07 EEST 2025


From: Niklas Haas <git at haasn.dev>

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
 
-- 
2.49.0



More information about the ffmpeg-devel mailing list