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 | int ret; | 389 | int ret; |
| 390 | int wanted_samples, available_samples; | 390 | int wanted_samples, available_samples; |
| 391 | 391 | ||
| 392 | ret = calc_active_inputs(s); | ||
| 393 | if (ret < 0) | ||
| 394 | return ret; | ||
| 395 | |||
| 392 | if (s->input_state[0] == INPUT_OFF) { | 396 | if (s->input_state[0] == INPUT_OFF) { |
| 393 | ret = request_samples(ctx, 1); | 397 | ret = request_samples(ctx, 1); |
| 394 | if (ret < 0) | 398 | if (ret < 0) |
| @@ -419,15 +423,16 @@ static int request_frame(AVFilterLink *outlink) · 24 unmodified lines | |||
| 419 | av_assert0(s->frame_list->nb_frames > 0); | 423 | av_assert0(s->frame_list->nb_frames > 0); |
| 420 | 424 | ||
| 421 | wanted_samples = frame_list_next_frame_size(s->frame_list); | 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 | if (s->active_inputs > 1) { | 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 | available_samples = get_available_samples(s); | 436 | available_samples = get_available_samples(s); |
| 432 | if (!available_samples) | 437 | if (!available_samples) |
| 433 | return 0; | 438 | return 0; |