avfilter/af_afir: do not use ff_outlink_get_status() on inlinks

This commit is contained in:
Paul B Mahol 2023-05-30 14:06:40 +02:00
parent 4ab1184fae
commit 447bdddeac
1 changed files with 7 additions and 9 deletions

View File

@ -445,7 +445,7 @@ skip:
return 0;
}
static int check_ir(AVFilterLink *link)
static int check_ir(AVFilterLink *link, int selir)
{
AVFilterContext *ctx = link->dst;
AudioFIRContext *s = ctx->priv;
@ -458,6 +458,9 @@ static int check_ir(AVFilterLink *link)
return AVERROR(EINVAL);
}
if (ff_inlink_check_available_samples(link, nb_taps + 1) == 1)
s->eof_coeffs[selir] = 1;
return 0;
}
@ -480,13 +483,10 @@ static int activate(AVFilterContext *ctx)
continue;
if (!s->eof_coeffs[selir]) {
ret = check_ir(ctx->inputs[1 + selir]);
ret = check_ir(ctx->inputs[1 + selir], selir);
if (ret < 0)
return ret;
if (ff_outlink_get_status(ctx->inputs[1 + selir]) == AVERROR_EOF)
s->eof_coeffs[selir] = 1;
if (!s->eof_coeffs[selir]) {
if (ff_outlink_frame_wanted(ctx->outputs[0]))
ff_inlink_request_frame(ctx->inputs[1 + selir]);
@ -543,15 +543,13 @@ static int activate(AVFilterContext *ctx)
}
}
if (ff_outlink_frame_wanted(ctx->outputs[0]) &&
!ff_outlink_get_status(ctx->inputs[0])) {
if (ff_outlink_frame_wanted(ctx->outputs[0])) {
ff_inlink_request_frame(ctx->inputs[0]);
return 0;
}
if (s->response &&
ff_outlink_frame_wanted(ctx->outputs[1]) &&
!ff_outlink_get_status(ctx->inputs[0])) {
ff_outlink_frame_wanted(ctx->outputs[1])) {
ff_inlink_request_frame(ctx->inputs[0]);
return 0;
}