avfilter/f_interleave: no need to check for inlink eof if non-empty queue

Also set state to ready if there is any inlink with queued frame.
pull/336/head
Paul B Mahol 5 years ago
parent ec3b5deab4
commit 35bcbfd6da
  1. 13
      libavfilter/f_interleave.c

@ -70,11 +70,9 @@ static int activate(AVFilterContext *ctx)
FF_FILTER_FORWARD_STATUS_BACK_ALL(outlink, ctx); FF_FILTER_FORWARD_STATUS_BACK_ALL(outlink, ctx);
for (i = 0; i < ctx->nb_inputs; i++) { for (i = 0; i < ctx->nb_inputs; i++) {
if (!ff_outlink_get_status(ctx->inputs[i])) { if (!ff_inlink_queued_frames(ctx->inputs[i]))
if (!ff_inlink_queued_frames(ctx->inputs[i])) continue;
break; nb_inputs_with_frames++;
nb_inputs_with_frames++;
}
} }
if (nb_inputs_with_frames > 0) { 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; return FFERROR_NOT_READY;
} }

Loading…
Cancel
Save