48 #define INPUT_INACTIVE 2
50 #define DURATION_LONGEST 0
51 #define DURATION_SHORTEST 1
52 #define DURATION_FIRST 2
79 while (frame_list->
list) {
92 if (!frame_list->
list)
99 if (!frame_list->
list)
110 while (samples > 0) {
116 if (!frame_list->
list)
140 if (!frame_list->
list) {
141 frame_list->
list = info;
142 frame_list->
end = info;
146 frame_list->
end = info;
175 #define OFFSET(x) offsetof(MixContext, x)
176 #define A AV_OPT_FLAG_AUDIO_PARAM
178 {
"inputs",
"Number of inputs.",
180 {
"duration",
"How to determine the end-of-stream.",
185 {
"dropout_transition",
"Transition time, in seconds, for volume "
186 "renormalization when an input stream ends.",
265 "inputs:%d fmt:%s srate:%d cl:%s\n", s->
nb_inputs,
295 int planes, plane_size, p;
302 plane_size =
FFALIGN(plane_size, 16);
304 for (p = 0; p < planes; p++) {
327 int available_samples = INT_MAX;
336 available_samples =
FFMIN(available_samples, nb_samples);
338 if (available_samples == INT_MAX)
340 return available_samples;
379 int active_inputs = 0;
384 if (!active_inputs ||
396 int wanted_samples, available_samples;
412 if (!available_samples)
445 if (!available_samples)
447 available_samples =
FFMIN(available_samples, wanted_samples);
449 available_samples = wanted_samples;
466 if (ctx->
inputs[i] == inlink)
509 snprintf(name,
sizeof(name),
"input%d", i);
572 .
outputs = avfilter_af_amix_outputs,