From: Anton Khirnov Date: Wed, 13 Mar 2013 07:48:16 +0000 (+0100) Subject: lavfi: make AVFilterContext export filter options. X-Git-Tag: n2.0~26^2~637 X-Git-Url: http://git.videolan.org/?p=ffmpeg.git;a=commitdiff_plain;h=4d1f31ea44f82adfb2b712534d71e27233a4f785 lavfi: make AVFilterContext export filter options. --- diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index 1ba91d9821..2fe8dfbe5c 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -321,10 +321,35 @@ static const char *filter_name(void *p) return filter->filter->name; } +static void *filter_child_next(void *obj, void *prev) +{ + AVFilterContext *ctx = obj; + if (!prev && ctx->filter && ctx->filter->priv_class && ctx->priv) + return ctx->priv; + return NULL; +} + +static const AVClass *filter_child_class_next(const AVClass *prev) +{ + AVFilter **f = NULL; + + while (prev && *(f = av_filter_next(f))) + if ((*f)->priv_class == prev) + break; + + while (*(f = av_filter_next(f))) + if ((*f)->priv_class) + return (*f)->priv_class; + + return NULL; +} + static const AVClass avfilter_class = { .class_name = "AVFilter", .item_name = filter_name, .version = LIBAVUTIL_VERSION_INT, + .child_next = filter_child_next, + .child_class_next = filter_child_class_next, }; int avfilter_open(AVFilterContext **filter_ctx, AVFilter *filter, const char *inst_name)