[FFmpeg-cvslog] avfilter/f_ebur128: properly propagate true peak
Niklas Haas
git at videolan.org
Tue Jun 24 13:14:43 EEST 2025
ffmpeg | branch: master | Niklas Haas <git at haasn.dev> | Mon Jun 23 20:47:22 2025 +0200| [f67ca10f2e1e0c7aa53de12ebcc2c17ed63240a2] | committer: Niklas Haas
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
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f67ca10f2e1e0c7aa53de12ebcc2c17ed63240a2
---
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
More information about the ffmpeg-cvslog
mailing list