diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-04-12 16:14:36 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-04-12 16:16:21 +0200 |
commit | 7e68491367ce60af078c0b53069a8011842bcd84 (patch) | |
tree | 57a938592f1afe5e994f15a960c5d69949f0c049 /cmdutils.c | |
parent | 608d86013a8663ef5f2fc8c74998750ed2019149 (diff) | |
parent | 921046008f5335601f9d76dc3a768eb5cd91e1b9 (diff) | |
download | ffmpeg-7e68491367ce60af078c0b53069a8011842bcd84.tar.gz |
Merge commit '921046008f5335601f9d76dc3a768eb5cd91e1b9'
* commit '921046008f5335601f9d76dc3a768eb5cd91e1b9':
cmdutils: allow -h filter=<name> to print information about a filter.
Conflicts:
cmdutils.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'cmdutils.c')
-rw-r--r-- | cmdutils.c | 41 |
1 files changed, 29 insertions, 12 deletions
diff --git a/cmdutils.c b/cmdutils.c index bdcbebd4c2..991ca4acba 100644 --- a/cmdutils.c +++ b/cmdutils.c @@ -1638,24 +1638,41 @@ static void show_help_muxer(const char *name) static void show_help_filter(const char *name) { #if CONFIG_AVFILTER - const AVFilter *filter; + const AVFilter *f = avfilter_get_by_name(name); + int i, count; 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); + } else if (!f) { + av_log(NULL, AV_LOG_ERROR, "Unknown filter '%s'.\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"); + + printf("Filter %s\n", f->name); + if (f->description) + printf(" %s\n", f->description); + printf(" Inputs:\n"); + count = avfilter_pad_count(f->inputs); + for (i = 0; i < count; i++) { + printf(" %d %s (%s)\n", i, avfilter_pad_get_name(f->inputs, i), + media_type_string(avfilter_pad_get_type(f->inputs, i))); + } + if (f->flags & AVFILTER_FLAG_DYNAMIC_INPUTS) + printf(" dynamic (depending on the options)\n"); + + printf(" Outputs:\n"); + count = avfilter_pad_count(f->outputs); + for (i = 0; i < count; i++) { + printf(" %d %s (%s)\n", i, avfilter_pad_get_name(f->outputs, i), + media_type_string(avfilter_pad_get_type(f->outputs, i))); + } + if (f->flags & AVFILTER_FLAG_DYNAMIC_OUTPUTS) + printf(" dynamic (depending on the options)\n"); + + if (f->priv_class) + show_help_children(f->priv_class, AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_FILTERING_PARAM | + AV_OPT_FLAG_AUDIO_PARAM); #else av_log(NULL, AV_LOG_ERROR, "Build without libavfilter; " "can not to satisfy request\n"); |