|
|
|
@ -998,6 +998,7 @@ static int filter_channel(AVFilterContext *ctx, void *arg, int ch, int nb_jobs) |
|
|
|
|
is_noise *= in->sample_rate; |
|
|
|
|
is_noise /= s->nb_samples; |
|
|
|
|
for (int level = 0; level <= s->levels; level++) { |
|
|
|
|
const double percent = ctx->is_disabled ? 0. : s->percent; |
|
|
|
|
const int length = cp->output_length[level]; |
|
|
|
|
const double scale = sqrt(2.0 * log(length)); |
|
|
|
|
|
|
|
|
@ -1008,7 +1009,7 @@ static int filter_channel(AVFilterContext *ctx, void *arg, int ch, int nb_jobs) |
|
|
|
|
|
|
|
|
|
noise_filter(stddev[level], cp->output_coefs[level], filter, absmean[level], |
|
|
|
|
s->softness, new_stddev[level], length); |
|
|
|
|
denoise_level(cp->filter_coefs[level], cp->output_coefs[level], filter, s->percent, length); |
|
|
|
|
denoise_level(cp->filter_coefs[level], cp->output_coefs[level], filter, percent, length); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ret = inverse(s, cp->filter_coefs, cp->filter_length, dst, out->nb_samples, ch, s->sn); |
|
|
|
@ -1332,5 +1333,6 @@ const AVFilter ff_af_afwtdn = { |
|
|
|
|
FILTER_INPUTS(inputs), |
|
|
|
|
FILTER_OUTPUTS(outputs), |
|
|
|
|
.process_command = process_command, |
|
|
|
|
.flags = AVFILTER_FLAG_SLICE_THREADS, |
|
|
|
|
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | |
|
|
|
|
AVFILTER_FLAG_SLICE_THREADS, |
|
|
|
|
}; |
|
|
|
|