[FFmpeg-cvslog] avtools: add -h demuxer/muxer
Anton Khirnov
git at videolan.org
Mon Aug 20 17:10:49 CEST 2012
ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Tue Aug 14 07:57:56 2012 +0200| [1136bd362a873156d9eb99f38a3edd09ae553eee] | committer: Anton Khirnov
avtools: add -h demuxer/muxer
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1136bd362a873156d9eb99f38a3edd09ae553eee
---
cmdutils.c | 55 ++++++++++++++++++++++++++++++++++++++++++
doc/avtools-common-opts.texi | 9 +++++++
2 files changed, 64 insertions(+)
diff --git a/cmdutils.c b/cmdutils.c
index 55cf3f0..50076c2 100644
--- a/cmdutils.c
+++ b/cmdutils.c
@@ -936,6 +936,57 @@ static void show_help_codec(const char *name, int encoder)
}
}
+static void show_help_demuxer(const char *name)
+{
+ const AVInputFormat *fmt = av_find_input_format(name);
+
+ if (!fmt) {
+ av_log(NULL, AV_LOG_ERROR, "Unknown format '%s'.\n", name);
+ return;
+ }
+
+ printf("Demuxer %s [%s]:\n", fmt->name, fmt->long_name);
+
+ if (fmt->extensions)
+ printf(" Common extensions: %s.\n", fmt->extensions);
+
+ if (fmt->priv_class)
+ show_help_children(fmt->priv_class, AV_OPT_FLAG_DECODING_PARAM);
+}
+
+static void show_help_muxer(const char *name)
+{
+ const AVCodecDescriptor *desc;
+ const AVOutputFormat *fmt = av_guess_format(name, NULL, NULL);
+
+ if (!fmt) {
+ av_log(NULL, AV_LOG_ERROR, "Unknown format '%s'.\n", name);
+ return;
+ }
+
+ printf("Muxer %s [%s]:\n", fmt->name, fmt->long_name);
+
+ if (fmt->extensions)
+ printf(" Common extensions: %s.\n", fmt->extensions);
+ if (fmt->mime_type)
+ printf(" Mime type: %s.\n", fmt->mime_type);
+ if (fmt->video_codec != AV_CODEC_ID_NONE &&
+ (desc = avcodec_descriptor_get(fmt->video_codec))) {
+ printf(" Default video codec: %s.\n", desc->name);
+ }
+ if (fmt->audio_codec != AV_CODEC_ID_NONE &&
+ (desc = avcodec_descriptor_get(fmt->audio_codec))) {
+ printf(" Default audio codec: %s.\n", desc->name);
+ }
+ if (fmt->subtitle_codec != AV_CODEC_ID_NONE &&
+ (desc = avcodec_descriptor_get(fmt->subtitle_codec))) {
+ printf(" Default subtitle codec: %s.\n", desc->name);
+ }
+
+ if (fmt->priv_class)
+ show_help_children(fmt->priv_class, AV_OPT_FLAG_ENCODING_PARAM);
+}
+
int show_help(const char *opt, const char *arg)
{
char *topic, *par;
@@ -952,6 +1003,10 @@ int show_help(const char *opt, const char *arg)
show_help_codec(par, 0);
} else if (!strcmp(topic, "encoder")) {
show_help_codec(par, 1);
+ } else if (!strcmp(topic, "demuxer")) {
+ show_help_demuxer(par);
+ } else if (!strcmp(topic, "muxer")) {
+ show_help_muxer(par);
} else {
show_help_default(topic, par);
}
diff --git a/doc/avtools-common-opts.texi b/doc/avtools-common-opts.texi
index eefb37b..d07505d 100644
--- a/doc/avtools-common-opts.texi
+++ b/doc/avtools-common-opts.texi
@@ -64,6 +64,15 @@ Print detailed information about the decoder named @var{decoder_name}. Use the
@item encoder=@var{encoder_name}
Print detailed information about the encoder named @var{encoder_name}. Use the
@option{-encoders} option to get a list of all encoders.
+
+ at item demuxer=@var{demuxer_name}
+Print detailed information about the demuxer named @var{demuxer_name}. Use the
+ at option{-formats} option to get a list of all demuxers and muxers.
+
+ at item muxer=@var{muxer_name}
+Print detailed information about the muxer named @var{muxer_name}. Use the
+ at option{-formats} option to get a list of all muxers and demuxers.
+
@end table
@item -version
More information about the ffmpeg-cvslog
mailing list