diff --git a/cmdutils.c b/cmdutils.c index a280ff3d7cce2c6c77c0503aa65157377748c9de..09a5ce139c2b88878c4cecb60ffe1908ef802aba 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); }