[FFmpeg-cvslog] avfilter/af_dynaudnorm: process also short durations
Paul B Mahol
git at videolan.org
Fri Nov 4 19:28:38 EET 2022
ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Fri Nov 4 13:35:46 2022 +0100| [4a672f1c0e660cdb7b3e93f0e830d64e8f819ccb] | committer: Paul B Mahol
avfilter/af_dynaudnorm: process also short durations
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4a672f1c0e660cdb7b3e93f0e830d64e8f819ccb
---
libavfilter/af_dynaudnorm.c | 14 ++++----------
1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/libavfilter/af_dynaudnorm.c b/libavfilter/af_dynaudnorm.c
index 9505c33b49..5aecefff5e 100644
--- a/libavfilter/af_dynaudnorm.c
+++ b/libavfilter/af_dynaudnorm.c
@@ -824,19 +824,13 @@ static int flush(AVFilterLink *outlink)
AVFilterContext *ctx = outlink->src;
AVFilterLink *inlink = ctx->inputs[0];
DynamicAudioNormalizerContext *s = ctx->priv;
- int ret = 0;
- if (!cqueue_empty(s->gain_history_smoothed[0])) {
- ret = flush_buffer(s, inlink, outlink);
- } else if (s->queue.available) {
- AVFrame *out = ff_bufqueue_get(&s->queue);
-
- s->pts = out->pts + av_rescale_q(out->nb_samples, av_make_q(1, outlink->sample_rate),
- outlink->time_base);
- ret = ff_filter_frame(outlink, out);
+ while (s->eof && cqueue_empty(s->gain_history_smoothed[0])) {
+ for (int c = 0; c < s->channels; c++)
+ update_gain_history(s, c, (local_gain){ cqueue_peek(s->gain_history_original[c], 0), 1.0});
}
- return ret;
+ return flush_buffer(s, inlink, outlink);
}
static int activate(AVFilterContext *ctx)
More information about the ffmpeg-cvslog
mailing list