summaryrefslogtreecommitdiff
path: root/libavfilter
diff options
context:
space:
mode:
authorHendrik Leppkes <h.leppkes@gmail.com>2022-04-05 22:37:22 +0200
committerHendrik Leppkes <h.leppkes@gmail.com>2022-04-07 16:37:51 +0200
commitcd96211ace22224e27d00ed8bf92955e48ebff73 (patch)
tree78b813e847b18c8ec86fddd1657b74cac21031a5 /libavfilter
parent607ecc27ed9c22c75d063b462b3e78b47e7d742c (diff)
avfilter/f_ebur128: multiply in integer first, before dividing in float
Restores the order of operations from before 15a1104, which reduces errors from floating point calculations, and fixes FATE on mingw64.
Diffstat (limited to 'libavfilter')
-rw-r--r--libavfilter/f_ebur128.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libavfilter/f_ebur128.c b/libavfilter/f_ebur128.c
index 1b1bcf1bff..a036aa0c86 100644
--- a/libavfilter/f_ebur128.c
+++ b/libavfilter/f_ebur128.c
@@ -768,7 +768,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *insamples)
/* get lower loudness to consider */
n = 0;
- nb_pow = LRA_LOWER_PRC * 0.01 * nb_powers + 0.5;
+ nb_pow = LRA_LOWER_PRC * nb_powers * 0.01 + 0.5;
for (i = gate_hist_pos; i < HIST_SIZE; i++) {
n += ebur128->i3000.histogram[i].count;
if (n >= nb_pow) {
@@ -779,7 +779,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *insamples)
/* get higher loudness to consider */
n = nb_powers;
- nb_pow = LRA_HIGHER_PRC * 0.01 * nb_powers + 0.5;
+ nb_pow = LRA_HIGHER_PRC * nb_powers * 0.01 + 0.5;
for (i = HIST_SIZE - 1; i >= 0; i--) {
n -= FFMIN(n, ebur128->i3000.histogram[i].count);
if (n < nb_pow) {