avfilter/af_dynaudnorm: fix hang with too short input

The only thing we can do at such point is return samples unchanged.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
Paul B Mahol 2017-01-08 20:41:36 +01:00
parent 762bf6f4af
commit 0ddc24d232
1 changed files with 9 additions and 2 deletions

View File

@ -708,8 +708,15 @@ static int request_frame(AVFilterLink *outlink)
ret = ff_request_frame(ctx->inputs[0]);
if (ret == AVERROR_EOF && !ctx->is_disabled && s->delay)
ret = flush_buffer(s, ctx->inputs[0], outlink);
if (ret == AVERROR_EOF && !ctx->is_disabled && s->delay) {
if (!cqueue_empty(s->gain_history_smoothed[0])) {
ret = flush_buffer(s, ctx->inputs[0], outlink);
} else if (s->queue.available) {
AVFrame *out = ff_bufqueue_get(&s->queue);
ret = ff_filter_frame(outlink, out);
}
}
return ret;
}