diff options
author | Paul B Mahol <onemda@gmail.com> | 2022-03-18 11:21:52 +0100 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2022-03-18 11:24:44 +0100 |
commit | b6af56c034759b81985f8ea094e41cbd5f7fecfb (patch) | |
tree | 377ef9a8b640d475bcc8a7bf6c3379e87d18dd69 /libavfilter | |
parent | 28447a4290e2a0c653f985e5d66181bffc372b06 (diff) | |
download | ffmpeg-b6af56c034759b81985f8ea094e41cbd5f7fecfb.tar.gz |
avfilter/af_afftdn: do not profile noise if number of sampled blocks is 0
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/af_afftdn.c | 6 |
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; } |