avtools: add -h demuxer/muxer
This commit is contained in:
55
cmdutils.c
55
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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user