Unified · Split
| @@ -445,7 +445,7 @@ skip: · 444 unmodified lines | ||
| 445 | 445 | return 0; |
| 446 | 446 | } |
| 447 | 447 | |
| 448 | −static int check_ir(AVFilterLink *link) | |
| 448 | +static int check_ir(AVFilterLink *link, int selir) | |
| 449 | 449 | { |
| 450 | 450 | AVFilterContext *ctx = link->dst; |
| 451 | 451 | AudioFIRContext *s = ctx->priv; |
| @@ -458,6 +458,9 @@ static int check_ir(AVFilterLink *link) · 6 unmodified lines | ||
| 458 | 458 | return AVERROR(EINVAL); |
| 459 | 459 | } |
| 460 | 460 | |
| 461 | + if (ff_inlink_check_available_samples(link, nb_taps + 1) == 1) | |
| 462 | + s->eof_coeffs[selir] = 1; | |
| 463 | + | |
| 461 | 464 | return 0; |
| 462 | 465 | } |
| 463 | 466 | |
| @@ -480,13 +483,10 @@ static int activate(AVFilterContext *ctx) · 16 unmodified lines | ||
| 480 | 483 | continue; |
| 481 | 484 | |
| 482 | 485 | if (!s->eof_coeffs[selir]) { |
| 483 | − ret = check_ir(ctx->inputs[1 + selir]); | |
| 486 | + ret = check_ir(ctx->inputs[1 + selir], selir); | |
| 484 | 487 | if (ret < 0) |
| 485 | 488 | return ret; |
| 486 | 489 | |
| 487 | − if (ff_outlink_get_status(ctx->inputs[1 + selir]) == AVERROR_EOF) | |
| 488 | − s->eof_coeffs[selir] = 1; | |
| 489 | − | |
| 490 | 490 | if (!s->eof_coeffs[selir]) { |
| 491 | 491 | if (ff_outlink_frame_wanted(ctx->outputs[0])) |
| 492 | 492 | ff_inlink_request_frame(ctx->inputs[1 + selir]); |
| @@ -543,15 +543,13 @@ static int activate(AVFilterContext *ctx) · 50 unmodified lines | ||
| 543 | 543 | } |
| 544 | 544 | } |
| 545 | 545 | |
| 546 | − if (ff_outlink_frame_wanted(ctx->outputs[0]) && | |
| 547 | − !ff_outlink_get_status(ctx->inputs[0])) { | |
| 546 | + if (ff_outlink_frame_wanted(ctx->outputs[0])) { | |
| 548 | 547 | ff_inlink_request_frame(ctx->inputs[0]); |
| 549 | 548 | return 0; |
| 550 | 549 | } |
| 551 | 550 | |
| 552 | 551 | if (s->response && |
| 553 | − ff_outlink_frame_wanted(ctx->outputs[1]) && | |
| 554 | − !ff_outlink_get_status(ctx->inputs[0])) { | |
| 552 | + ff_outlink_frame_wanted(ctx->outputs[1])) { | |
| 555 | 553 | ff_inlink_request_frame(ctx->inputs[0]); |
| 556 | 554 | return 0; |
| 557 | 555 | } |