summaryrefslogtreecommitdiff
path: root/libavfilter/af_afftdn.c
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2022-03-18 11:21:52 +0100
committerPaul B Mahol <onemda@gmail.com>2022-03-18 11:24:44 +0100
commitb6af56c034759b81985f8ea094e41cbd5f7fecfb (patch)
tree377ef9a8b640d475bcc8a7bf6c3379e87d18dd69 /libavfilter/af_afftdn.c
parent28447a4290e2a0c653f985e5d66181bffc372b06 (diff)
avfilter/af_afftdn: do not profile noise if number of sampled blocks is 0
Diffstat (limited to 'libavfilter/af_afftdn.c')
-rw-r--r--libavfilter/af_afftdn.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libavfilter/af_afftdn.c b/libavfilter/af_afftdn.c
index 75895fa3d9..c66545ac2e 100644
--- a/libavfilter/af_afftdn.c
+++ b/libavfilter/af_afftdn.c
@@ -125,6 +125,7 @@ typedef struct AudioFFTDeNoiseContext {
int channels;
int sample_noise;
+ int sample_noise_blocks;
int sample_noise_mode;
float sample_rate;
int buffer_length;
@@ -1039,6 +1040,7 @@ static int output_frame(AVFilterLink *inlink, AVFrame *in)
}
s->sample_noise_mode = SAMPLE_NONE;
s->sample_noise = 1;
+ s->sample_noise_blocks = 0;
}
if (s->sample_noise) {
@@ -1047,6 +1049,7 @@ static int output_frame(AVFilterLink *inlink, AVFrame *in)
sample_noise_block(s, dnch, s->winframe, ch);
}
+ s->sample_noise_blocks++;
}
if (s->sample_noise_mode == SAMPLE_STOP) {
@@ -1054,11 +1057,14 @@ static int output_frame(AVFilterLink *inlink, AVFrame *in)
DeNoiseChannel *dnch = &s->dnch[ch];
double sample_noise[NB_PROFILE_BANDS];
+ if (s->sample_noise_blocks <= 0)
+ break;
finish_sample_noise(s, dnch, sample_noise);
set_noise_profile(s, dnch, sample_noise);
set_parameters(s, dnch, 1, 1);
}
s->sample_noise = 0;
+ s->sample_noise_blocks = 0;
s->sample_noise_mode = SAMPLE_NONE;
}