mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2026-02-04 14:30:55 +08:00
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.
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user