fixes use of the amix filter with only 1 input
Unified · Split
| @@ -389,6 +389,10 @@ static int request_frame(AVFilterLink *outlink) · 388 unmodified lines | ||
| 389 | 389 | int ret; |
| 390 | 390 | int wanted_samples, available_samples; |
| 391 | 391 | |
| 392 | + ret = calc_active_inputs(s); | |
| 393 | + if (ret < 0) | |
| 394 | + return ret; | |
| 395 | + | |
| 392 | 396 | if (s->input_state[0] == INPUT_OFF) { |
| 393 | 397 | ret = request_samples(ctx, 1); |
| 394 | 398 | if (ret < 0) |
| @@ -419,15 +423,16 @@ static int request_frame(AVFilterLink *outlink) · 24 unmodified lines | ||
| 419 | 423 | av_assert0(s->frame_list->nb_frames > 0); |
| 420 | 424 | |
| 421 | 425 | wanted_samples = frame_list_next_frame_size(s->frame_list); |
| 422 | − ret = request_samples(ctx, wanted_samples); | |
| 423 | − if (ret < 0) | |
| 424 | − return ret; | |
| 425 | − | |
| 426 | − ret = calc_active_inputs(s); | |
| 427 | − if (ret < 0) | |
| 428 | − return ret; | |
| 429 | 426 | |
| 430 | 427 | if (s->active_inputs > 1) { |
| 428 | + ret = request_samples(ctx, wanted_samples); | |
| 429 | + if (ret < 0) | |
| 430 | + return ret; | |
| 431 | + | |
| 432 | + ret = calc_active_inputs(s); | |
| 433 | + if (ret < 0) | |
| 434 | + return ret; | |
| 435 | + | |
| 431 | 436 | available_samples = get_available_samples(s); |
| 432 | 437 | if (!available_samples) |
| 433 | 438 | return 0; |