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