avtools: add -h demuxer/muxer

This commit is contained in:
Anton Khirnov 2012-08-14 07:57:56 +02:00
parent a3ad68d36c
commit 1136bd362a
2 changed files with 64 additions and 0 deletions

View File

@ -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) int show_help(const char *opt, const char *arg)
{ {
char *topic, *par; char *topic, *par;
@ -952,6 +1003,10 @@ int show_help(const char *opt, const char *arg)
show_help_codec(par, 0); show_help_codec(par, 0);
} else if (!strcmp(topic, "encoder")) { } else if (!strcmp(topic, "encoder")) {
show_help_codec(par, 1); show_help_codec(par, 1);
} else if (!strcmp(topic, "demuxer")) {
show_help_demuxer(par);
} else if (!strcmp(topic, "muxer")) {
show_help_muxer(par);
} else { } else {
show_help_default(topic, par); show_help_default(topic, par);
} }

View File

@ -64,6 +64,15 @@ Print detailed information about the decoder named @var{decoder_name}. Use the
@item encoder=@var{encoder_name} @item encoder=@var{encoder_name}
Print detailed information about the encoder named @var{encoder_name}. Use the Print detailed information about the encoder named @var{encoder_name}. Use the
@option{-encoders} option to get a list of all encoders. @option{-encoders} option to get a list of all encoders.
@item demuxer=@var{demuxer_name}
Print detailed information about the demuxer named @var{demuxer_name}. Use the
@option{-formats} option to get a list of all demuxers and muxers.
@item muxer=@var{muxer_name}
Print detailed information about the muxer named @var{muxer_name}. Use the
@option{-formats} option to get a list of all muxers and demuxers.
@end table @end table
@item -version @item -version