Unified · Split
| @@ -824,19 +824,13 @@ static int flush(AVFilterLink *outlink) · 823 unmodified lines | ||
| 824 | 824 | AVFilterContext *ctx = outlink->src; |
| 825 | 825 | AVFilterLink *inlink = ctx->inputs[0]; |
| 826 | 826 | DynamicAudioNormalizerContext *s = ctx->priv; |
| 827 | − int ret = 0; | |
| 828 | 827 | |
| 829 | − if (!cqueue_empty(s->gain_history_smoothed[0])) { | |
| 830 | − ret = flush_buffer(s, inlink, outlink); | |
| 831 | − } else if (s->queue.available) { | |
| 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); | |
| 828 | + while (s->eof && cqueue_empty(s->gain_history_smoothed[0])) { | |
| 829 | + for (int c = 0; c < s->channels; c++) | |
| 830 | + update_gain_history(s, c, (local_gain){ cqueue_peek(s->gain_history_original[c], 0), 1.0}); | |
| 837 | 831 | } |
| 838 | 832 | |
| 839 | − return ret; | |
| 833 | + return flush_buffer(s, inlink, outlink); | |
| 840 | 834 | } |
| 841 | 835 | |
| 842 | 836 | static int activate(AVFilterContext *ctx) |