* commit '7cdd737ba81b5c2c9521c4509edf0ac315fabc65': lavfi: mark filters with dynamic number of inputs or outputs with special flags
Unified · Split
| @@ -169,6 +169,7 @@ API changes, most recent first: · 168 unmodified lines | ||
| 169 | 169 | filter. |
| 170 | 170 | Add avfilter_init_str(), deprecate avfilter_init_filter(). |
| 171 | 171 | Add avfilter_init_dict(). |
| 172 | + Add AVFilter.flags field and AVFILTER_FLAG_DYNAMIC_{INPUTS,OUTPUTS} flags. | |
| 172 | 173 | |
| 173 | 174 | 2013-xx-xx - lavfi 3.7.0 - avfilter.h |
| 174 | 175 | Add AVFilter.priv_class for exporting filter options through the AVOptions API |
| @@ -557,4 +557,6 @@ AVFilter avfilter_af_amix = { · 556 unmodified lines | ||
| 557 | 557 | |
| 558 | 558 | .inputs = NULL, |
| 559 | 559 | .outputs = avfilter_af_amix_outputs, |
| 560 | + | |
| 561 | + .flags = AVFILTER_FLAG_DYNAMIC_INPUTS, | |
| 560 | 562 | }; |
| @@ -146,4 +146,6 @@ AVFilter avfilter_af_channelsplit = { · 145 unmodified lines | ||
| 146 | 146 | |
| 147 | 147 | .inputs = avfilter_af_channelsplit_inputs, |
| 148 | 148 | .outputs = NULL, |
| 149 | + | |
| 150 | + .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, | |
| 149 | 151 | }; |
| @@ -525,4 +525,6 @@ AVFilter avfilter_af_join = { · 524 unmodified lines | ||
| 525 | 525 | |
| 526 | 526 | .inputs = NULL, |
| 527 | 527 | .outputs = avfilter_af_join_outputs, |
| 528 | + | |
| 529 | + .flags = AVFILTER_FLAG_DYNAMIC_INPUTS, | |
| 528 | 530 | }; |
| @@ -410,6 +410,19 @@ const char *avfilter_pad_get_name(const AVFilterPad *pads, int pad_idx); · 409 unmodified lines | ||
| 410 | 410 | */ |
| 411 | 411 | enum AVMediaType avfilter_pad_get_type(const AVFilterPad *pads, int pad_idx); |
| 412 | 412 | |
| 413 | +/** | |
| 414 | + * The number of the filter inputs is not determined just by AVFilter.inputs. | |
| 415 | + * The filter might add additional inputs during initialization depending on the | |
| 416 | + * options supplied to it. | |
| 417 | + */ | |
| 418 | +#define AVFILTER_FLAG_DYNAMIC_INPUTS (1 << 0) | |
| 419 | +/** | |
| 420 | + * The number of the filter outputs is not determined just by AVFilter.outputs. | |
| 421 | + * The filter might add additional outputs during initialization depending on | |
| 422 | + * the options supplied to it. | |
| 423 | + */ | |
| 424 | +#define AVFILTER_FLAG_DYNAMIC_OUTPUTS (1 << 1) | |
| 425 | + | |
| 413 | 426 | /** |
| 414 | 427 | * Filter definition. This defines the pads a filter contains, and all the |
| 415 | 428 | * callback functions used to interact with the filter. |
| @@ -432,6 +445,11 @@ typedef struct AVFilter { · 16 unmodified lines | ||
| 432 | 445 | */ |
| 433 | 446 | const AVClass *priv_class; |
| 434 | 447 | |
| 448 | + /** | |
| 449 | + * A combination of AVFILTER_FLAG_* | |
| 450 | + */ | |
| 451 | + int flags; | |
| 452 | + | |
| 435 | 453 | /***************************************************************** |
| 436 | 454 | * All fields below this line are not part of the public API. They |
| 437 | 455 | * may not be used outside of libavfilter and can be changed and |
| @@ -133,6 +133,8 @@ AVFilter avfilter_vf_split = { · 132 unmodified lines | ||
| 133 | 133 | |
| 134 | 134 | .inputs = avfilter_vf_split_inputs, |
| 135 | 135 | .outputs = NULL, |
| 136 | + | |
| 137 | + .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, | |
| 136 | 138 | }; |
| 137 | 139 | |
| 138 | 140 | static const AVFilterPad avfilter_af_asplit_inputs[] = { |
| @@ -157,4 +159,6 @@ AVFilter avfilter_af_asplit = { · 18 unmodified lines | ||
| 157 | 159 | |
| 158 | 160 | .inputs = avfilter_af_asplit_inputs, |
| 159 | 161 | .outputs = NULL, |
| 162 | + | |
| 163 | + .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, | |
| 160 | 164 | }; |