diff options
author | Paul B Mahol <onemda@gmail.com> | 2019-11-20 13:05:50 +0100 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2019-11-20 13:05:50 +0100 |
commit | a16de215c917a2d17595116033a7013264aeca44 (patch) | |
tree | b9f004eb3401e22dd3ac0af2d466c7f7b681bc7e | |
parent | e21d4a7ca43effff6d9b91896b7584866e617cc1 (diff) |
avfilter/af_rubberband: fix sample overqueueing
Fixes #8389
-rw-r--r-- | libavfilter/af_rubberband.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/libavfilter/af_rubberband.c b/libavfilter/af_rubberband.c index e002d9de17..1dfd74422c 100644 --- a/libavfilter/af_rubberband.c +++ b/libavfilter/af_rubberband.c @@ -121,8 +121,9 @@ static int query_formats(AVFilterContext *ctx) static int filter_frame(AVFilterLink *inlink, AVFrame *in) { - RubberBandContext *s = inlink->dst->priv; - AVFilterLink *outlink = inlink->dst->outputs[0]; + AVFilterContext *ctx = inlink->dst; + RubberBandContext *s = ctx->priv; + AVFilterLink *outlink = ctx->outputs[0]; AVFrame *out; int ret = 0, nb_samples; @@ -149,7 +150,9 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) } av_frame_free(&in); - return ret < 0 ? ret : nb_samples; + if (ff_inlink_queued_samples(inlink) >= s->nb_samples) + ff_filter_set_ready(ctx, 100); + return ret < 0 ? ret : nb_samples; } static int config_input(AVFilterLink *inlink) |