Showing the changes to libavfilter (1 of 1 file). Show all
Unified · Split
| @@ -824,19 +824,13 @@ static int flush(AVFilterLink *outlink) · 823 unmodified lines | |||
| 824 | AVFilterContext *ctx = outlink->src; | 824 | AVFilterContext *ctx = outlink->src; |
| 825 | AVFilterLink *inlink = ctx->inputs[0]; | 825 | AVFilterLink *inlink = ctx->inputs[0]; |
| 826 | DynamicAudioNormalizerContext *s = ctx->priv; | 826 | DynamicAudioNormalizerContext *s = ctx->priv; |
| 827 | int ret = 0; | ||
| 828 | 827 | ||
| 829 | if (!cqueue_empty(s->gain_history_smoothed[0])) { | 828 | while (s->eof && cqueue_empty(s->gain_history_smoothed[0])) { |
| 830 | ret = flush_buffer(s, inlink, outlink); | 829 | for (int c = 0; c < s->channels; c++) |
| 831 | } else if (s->queue.available) { | 830 | update_gain_history(s, c, (local_gain){ cqueue_peek(s->gain_history_original[c], 0), 1.0}); |
| 832 | AVFrame *out = ff_bufqueue_get(&s->queue); | ||
| 833 | |||
| 834 | s->pts = out->pts + av_rescale_q(out->nb_samples, av_make_q(1, outlink->sample_rate), | ||
| 835 | outlink->time_base); | ||
| 836 | ret = ff_filter_frame(outlink, out); | ||
| 837 | } | 831 | } |
| 838 | 832 | ||
| 839 | return ret; | 833 | return flush_buffer(s, inlink, outlink); |
| 840 | } | 834 | } |
| 841 | 835 | ||
| 842 | static int activate(AVFilterContext *ctx) | 836 | static int activate(AVFilterContext *ctx) |