diff options
-rw-r--r-- | doc/APIchanges | 1 | ||||
-rw-r--r-- | libavfilter/af_amix.c | 2 | ||||
-rw-r--r-- | libavfilter/af_channelsplit.c | 2 | ||||
-rw-r--r-- | libavfilter/af_join.c | 2 | ||||
-rw-r--r-- | libavfilter/avfilter.h | 18 | ||||
-rw-r--r-- | libavfilter/split.c | 4 |
6 files changed, 29 insertions, 0 deletions
diff --git a/doc/APIchanges b/doc/APIchanges index 40af3655d7..8837b0db7e 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -169,6 +169,7 @@ API changes, most recent first: filter. Add avfilter_init_str(), deprecate avfilter_init_filter(). Add avfilter_init_dict(). + Add AVFilter.flags field and AVFILTER_FLAG_DYNAMIC_{INPUTS,OUTPUTS} flags. 2013-xx-xx - lavfi 3.7.0 - avfilter.h Add AVFilter.priv_class for exporting filter options through the AVOptions API diff --git a/libavfilter/af_amix.c b/libavfilter/af_amix.c index 1981365fec..75736e6544 100644 --- a/libavfilter/af_amix.c +++ b/libavfilter/af_amix.c @@ -557,4 +557,6 @@ AVFilter avfilter_af_amix = { .inputs = NULL, .outputs = avfilter_af_amix_outputs, + + .flags = AVFILTER_FLAG_DYNAMIC_INPUTS, }; diff --git a/libavfilter/af_channelsplit.c b/libavfilter/af_channelsplit.c index 89743c6909..e3a30d83c4 100644 --- a/libavfilter/af_channelsplit.c +++ b/libavfilter/af_channelsplit.c @@ -146,4 +146,6 @@ AVFilter avfilter_af_channelsplit = { .inputs = avfilter_af_channelsplit_inputs, .outputs = NULL, + + .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, }; diff --git a/libavfilter/af_join.c b/libavfilter/af_join.c index f3fdccafc1..88aef10b5b 100644 --- a/libavfilter/af_join.c +++ b/libavfilter/af_join.c @@ -525,4 +525,6 @@ AVFilter avfilter_af_join = { .inputs = NULL, .outputs = avfilter_af_join_outputs, + + .flags = AVFILTER_FLAG_DYNAMIC_INPUTS, }; diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h index 05effe47de..8dad5dc041 100644 --- a/libavfilter/avfilter.h +++ b/libavfilter/avfilter.h @@ -411,6 +411,19 @@ const char *avfilter_pad_get_name(const AVFilterPad *pads, int pad_idx); enum AVMediaType avfilter_pad_get_type(const AVFilterPad *pads, int pad_idx); /** + * The number of the filter inputs is not determined just by AVFilter.inputs. + * The filter might add additional inputs during initialization depending on the + * options supplied to it. + */ +#define AVFILTER_FLAG_DYNAMIC_INPUTS (1 << 0) +/** + * The number of the filter outputs is not determined just by AVFilter.outputs. + * The filter might add additional outputs during initialization depending on + * the options supplied to it. + */ +#define AVFILTER_FLAG_DYNAMIC_OUTPUTS (1 << 1) + +/** * Filter definition. This defines the pads a filter contains, and all the * callback functions used to interact with the filter. */ @@ -432,6 +445,11 @@ typedef struct AVFilter { */ const AVClass *priv_class; + /** + * A combination of AVFILTER_FLAG_* + */ + int flags; + /***************************************************************** * All fields below this line are not part of the public API. They * may not be used outside of libavfilter and can be changed and diff --git a/libavfilter/split.c b/libavfilter/split.c index 39d2da41b5..7268ec107e 100644 --- a/libavfilter/split.c +++ b/libavfilter/split.c @@ -133,6 +133,8 @@ AVFilter avfilter_vf_split = { .inputs = avfilter_vf_split_inputs, .outputs = NULL, + + .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, }; static const AVFilterPad avfilter_af_asplit_inputs[] = { @@ -157,4 +159,6 @@ AVFilter avfilter_af_asplit = { .inputs = avfilter_af_asplit_inputs, .outputs = NULL, + + .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, }; |