diff options
author | Niklas Haas <git@haasn.dev> | 2025-06-23 20:47:22 +0200 |
---|---|---|
committer | Niklas Haas <git@haasn.dev> | 2025-06-24 12:12:37 +0200 |
commit | f67ca10f2e1e0c7aa53de12ebcc2c17ed63240a2 (patch) | |
tree | 7cb750291921214518ac26039189194b5d6d2e98 | |
parent | 60fc0288ae39c3294091c2a4e06816836be95740 (diff) | |
download | ffmpeg-f67ca10f2e1e0c7aa53de12ebcc2c17ed63240a2.tar.gz |
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
-rw-r--r-- | libavfilter/f_ebur128.c | 4 |
1 files changed, 3 insertions, 1 deletions
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 |