diff --git a/libavfilter/f_interleave.c b/libavfilter/f_interleave.c index c231b307c1..a18bbe79b3 100644 --- a/libavfilter/f_interleave.c +++ b/libavfilter/f_interleave.c @@ -70,11 +70,9 @@ static int activate(AVFilterContext *ctx) FF_FILTER_FORWARD_STATUS_BACK_ALL(outlink, ctx); for (i = 0; i < ctx->nb_inputs; i++) { - if (!ff_outlink_get_status(ctx->inputs[i])) { - if (!ff_inlink_queued_frames(ctx->inputs[i])) - break; - nb_inputs_with_frames++; - } + if (!ff_inlink_queued_frames(ctx->inputs[i])) + continue; + nb_inputs_with_frames++; } if (nb_inputs_with_frames > 0) { @@ -137,6 +135,11 @@ static int activate(AVFilterContext *ctx) } } + if (i) { + ff_filter_set_ready(ctx, 100); + return 0; + } + return FFERROR_NOT_READY; }