Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2022-11-04 15:35:46 +0300
committerPaul B Mahol <onemda@gmail.com>2022-11-04 20:32:13 +0300
commit4a672f1c0e660cdb7b3e93f0e830d64e8f819ccb (patch)
tree28957f2a972a8300040b7ec17ff78f9c538e6f7c /libavfilter
parent4dda3b165337af9b421ca76835acd5712ec108b5 (diff)
avfilter/af_dynaudnorm: process also short durations
Diffstat (limited to 'libavfilter')
-rw-r--r--libavfilter/af_dynaudnorm.c14
1 files 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)