summaryrefslogtreecommitdiff
authorMichael Niedermayer <michaelni@gmx.at>2013-04-12 14:14:36 (GMT)
committer Michael Niedermayer <michaelni@gmx.at>2013-04-12 14:16:21 (GMT)
commit7e68491367ce60af078c0b53069a8011842bcd84 (patch)
tree57a938592f1afe5e994f15a960c5d69949f0c049
parent608d86013a8663ef5f2fc8c74998750ed2019149 (diff)
parent921046008f5335601f9d76dc3a768eb5cd91e1b9 (diff)
downloadffmpeg-7e68491367ce60af078c0b53069a8011842bcd84.zip
ffmpeg-7e68491367ce60af078c0b53069a8011842bcd84.tar.gz
ffmpeg-7e68491367ce60af078c0b53069a8011842bcd84.tar.bz2
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
-rw-r--r--cmdutils.c41
-rw-r--r--doc/avtools-common-opts.texi4
2 files changed, 33 insertions, 12 deletions
diff --git a/cmdutils.c b/cmdutils.c
index bdcbebd..991ca4a 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");
diff --git a/doc/avtools-common-opts.texi b/doc/avtools-common-opts.texi
index 4b52b58..0921a87 100644
--- a/doc/avtools-common-opts.texi
+++ b/doc/avtools-common-opts.texi
@@ -79,6 +79,10 @@ Print detailed information about the demuxer named @var{demuxer_name}. Use the
Print detailed information about the muxer named @var{muxer_name}. Use the
@option{-formats} option to get a list of all muxers and demuxers.
+@item filter=@var{filter_name}
+Print detailed information about the filter name @var{filter_name}. Use the
+@option{-filters} option to get a list of all filters.
+
@end table
@item -version