From 4d1f31ea44f82adfb2b712534d71e27233a4f785 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Wed, 13 Mar 2013 08:48:16 +0100 Subject: [PATCH] lavfi: make AVFilterContext export filter options. --- libavfilter/avfilter.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) 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) -- GitLab