From 999a46b12c8ac378fb099ec2e8dc498baea8ddef Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cl=C3=A9ment=20B=C5=93sch?= <ubitux@gmail.com>
Date: Sun, 31 Mar 2013 15:04:04 +0200
Subject: [PATCH] cmdutils: support filters in the help topic system.

---
 cmdutils.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/cmdutils.c b/cmdutils.c
index a280ff3d7cc..09a5ce139c2 100644
--- a/cmdutils.c
+++ b/cmdutils.c
@@ -1613,6 +1613,28 @@ static void show_help_muxer(const char *name)
         show_help_children(fmt->priv_class, AV_OPT_FLAG_ENCODING_PARAM);
 }
 
+static void show_help_filter(const char *name)
+{
+    const AVFilter *filter;
+
+    if (!name) {
+        av_log(NULL, AV_LOG_ERROR, "No filter name specified.\n");
+        return;
+    }
+    filter = avfilter_get_by_name(name);
+    if (!filter) {
+        av_log(NULL, AV_LOG_ERROR, "Filter '%s' not found.\n", name);
+        return;
+    }
+    printf("Filter %s\n", filter->name);
+    if (filter->description)
+        printf("  %s\n", filter->description);
+    if (filter->priv_class)
+        show_help_children(filter->priv_class, AV_OPT_FLAG_FILTERING_PARAM);
+    else
+        printf("No AVOption available\n");
+}
+
 int show_help(void *optctx, const char *opt, const char *arg)
 {
     char *topic, *par;
@@ -1633,6 +1655,8 @@ int show_help(void *optctx, const char *opt, const char *arg)
         show_help_demuxer(par);
     } else if (!strcmp(topic, "muxer")) {
         show_help_muxer(par);
+    } else if (!strcmp(topic, "filter")) {
+        show_help_filter(par);
     } else {
         show_help_default(topic, par);
     }
-- 
GitLab