Module: libav
Branch: master
Commit: 4d1f31ea44f82adfb2b712534d71e27233a4f785

Author:    Anton Khirnov <[email protected]>
Committer: Anton Khirnov <[email protected]>
Date:      Wed Mar 13 08:48:16 2013 +0100

lavfi: make AVFilterContext export filter options.

---

 libavfilter/avfilter.c |   25 +++++++++++++++++++++++++
 1 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index 1ba91d9..2fe8dfb 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)

_______________________________________________
libav-commits mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to