* 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 | filter. | 169 | filter. |
| 170 | Add avfilter_init_str(), deprecate avfilter_init_filter(). | 170 | Add avfilter_init_str(), deprecate avfilter_init_filter(). |
| 171 | Add avfilter_init_dict(). | 171 | Add avfilter_init_dict(). |
| 172 | Add AVFilter.flags field and AVFILTER_FLAG_DYNAMIC_{INPUTS,OUTPUTS} flags. | ||
| 172 | 173 | ||
| 173 | 2013-xx-xx - lavfi 3.7.0 - avfilter.h | 174 | 2013-xx-xx - lavfi 3.7.0 - avfilter.h |
| 174 | Add AVFilter.priv_class for exporting filter options through the AVOptions API | 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 | .inputs = NULL, | 558 | .inputs = NULL, |
| 559 | .outputs = avfilter_af_amix_outputs, | 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 | .inputs = avfilter_af_channelsplit_inputs, | 147 | .inputs = avfilter_af_channelsplit_inputs, |
| 148 | .outputs = NULL, | 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 | .inputs = NULL, | 526 | .inputs = NULL, |
| 527 | .outputs = avfilter_af_join_outputs, | 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 | enum AVMediaType avfilter_pad_get_type(const AVFilterPad *pads, int pad_idx); | 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 | * Filter definition. This defines the pads a filter contains, and all the | 427 | * Filter definition. This defines the pads a filter contains, and all the |
| 415 | * callback functions used to interact with the filter. | 428 | * callback functions used to interact with the filter. |
| @@ -432,6 +445,11 @@ typedef struct AVFilter { · 16 unmodified lines | |||
| 432 | */ | 445 | */ |
| 433 | const AVClass *priv_class; | 446 | const AVClass *priv_class; |
| 434 | 447 | ||
| 448 | /** | ||
| 449 | * A combination of AVFILTER_FLAG_* | ||
| 450 | */ | ||
| 451 | int flags; | ||
| 452 | |||
| 435 | /***************************************************************** | 453 | /***************************************************************** |
| 436 | * All fields below this line are not part of the public API. They | 454 | * All fields below this line are not part of the public API. They |
| 437 | * may not be used outside of libavfilter and can be changed and | 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 | .inputs = avfilter_vf_split_inputs, | 134 | .inputs = avfilter_vf_split_inputs, |
| 135 | .outputs = NULL, | 135 | .outputs = NULL, |
| 136 | |||
| 137 | .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, | ||
| 136 | }; | 138 | }; |
| 137 | 139 | ||
| 138 | static const AVFilterPad avfilter_af_asplit_inputs[] = { | 140 | static const AVFilterPad avfilter_af_asplit_inputs[] = { |
| @@ -157,4 +159,6 @@ AVFilter avfilter_af_asplit = { · 18 unmodified lines | |||
| 157 | 159 | ||
| 158 | .inputs = avfilter_af_asplit_inputs, | 160 | .inputs = avfilter_af_asplit_inputs, |
| 159 | .outputs = NULL, | 161 | .outputs = NULL, |
| 162 | |||
| 163 | .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, | ||
| 160 | }; | 164 | }; |