From 7e8fe4be5fb4c98aa3c6a4ed3cec999f4e3cc3aa Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Thu, 28 Mar 2013 08:59:13 +0100 Subject: lavfi: add a function for counting elements in AVFilterPad arrays. The caller needs to know what valid indices can be passed to avfilter_pad_get_name/type. --- doc/APIchanges | 1 + libavfilter/avfilter.c | 6 +++--- libavfilter/avfilter.h | 6 ++++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/doc/APIchanges b/doc/APIchanges index 87a472b679..106f9126ca 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -23,6 +23,7 @@ API changes, most recent first: Add avfilter_init_str(), deprecate avfilter_init_filter(). Add avfilter_init_dict(). Add AVFilter.flags field and AVFILTER_FLAG_DYNAMIC_{INPUTS,OUTPUTS} flags. + Add avfilter_pad_count() for counting filter inputs/outputs. 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/avfilter.c b/libavfilter/avfilter.c index e127bd35d0..a707c0dfdb 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -304,7 +304,7 @@ void avfilter_uninit(void) next_registered_avfilter_idx = 0; } -static int pad_count(const AVFilterPad *pads) +int avfilter_pad_count(const AVFilterPad *pads) { int count; @@ -377,7 +377,7 @@ AVFilterContext *ff_filter_alloc(const AVFilter *filter, const char *inst_name) av_opt_set_defaults(ret->priv); } - ret->nb_inputs = pad_count(filter->inputs); + ret->nb_inputs = avfilter_pad_count(filter->inputs); if (ret->nb_inputs ) { ret->input_pads = av_malloc(sizeof(AVFilterPad) * ret->nb_inputs); if (!ret->input_pads) @@ -388,7 +388,7 @@ AVFilterContext *ff_filter_alloc(const AVFilter *filter, const char *inst_name) goto err; } - ret->nb_outputs = pad_count(filter->outputs); + ret->nb_outputs = avfilter_pad_count(filter->outputs); if (ret->nb_outputs) { ret->output_pads = av_malloc(sizeof(AVFilterPad) * ret->nb_outputs); if (!ret->output_pads) diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h index dd29ec0564..73dbd886fc 100644 --- a/libavfilter/avfilter.h +++ b/libavfilter/avfilter.h @@ -350,6 +350,12 @@ struct AVFilterPad { }; #endif +/** + * Get the number of elements in a NULL-terminated array of AVFilterPads (e.g. + * AVFilter.inputs/outputs). + */ +int avfilter_pad_count(const AVFilterPad *pads); + /** * Get the name of an AVFilterPad. * -- cgit v1.2.3