Message ID | 20191127031158.13389-1-lq@chinaffmpeg.org |
---|---|
State | Superseded |
Headers | show |
On Wed, Nov 27, 2019 at 11:11:58AM +0800, Steven Liu wrote: > Signed-off-by: Steven Liu <lq@chinaffmpeg.org> > --- > fftools/cmdutils.c | 18 ++++++++++++++++++ > fftools/ffmpeg_opt.c | 2 +- > 2 files changed, 19 insertions(+), 1 deletion(-) > > diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c > index 84f98b7c04..96b823f74a 100644 > --- a/fftools/cmdutils.c > +++ b/fftools/cmdutils.c > @@ -1870,6 +1870,22 @@ static void show_help_demuxer(const char *name) > show_help_children(fmt->priv_class, AV_OPT_FLAG_DECODING_PARAM); > } > > +static void show_help_protocol(const char *name) > +{ > + const AVClass *proto_class = avio_protocol_get_class(name); > + > + printf("Protocol [%s]:\n" > + " D. = Input supported\n" > + " .E = Output supported\n" > + " --\n", name); It's better to move the print message after the next NULL pointer checking. > + if (!proto_class) { > + av_log(NULL, AV_LOG_ERROR, "Unknown protocol '%s'.\n", name); > + return; > + } > + > + show_help_children(proto_class, AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_ENCODING_PARAM); > +} > + > static void show_help_muxer(const char *name) > { > const AVCodecDescriptor *desc; > @@ -2000,6 +2016,8 @@ int show_help(void *optctx, const char *opt, const char *arg) > show_help_demuxer(par); > } else if (!strcmp(topic, "muxer")) { > show_help_muxer(par); > + } else if (!strcmp(topic, "protocol")) { > + show_help_protocol(par); > #if CONFIG_AVFILTER > } else if (!strcmp(topic, "filter")) { > show_help_filter(par); > diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c > index 71063cc443..8d73fa8a78 100644 > --- a/fftools/ffmpeg_opt.c > +++ b/fftools/ffmpeg_opt.c > @@ -3194,7 +3194,7 @@ void show_help_default(const char *opt, const char *arg) > " -h -- print basic options\n" > " -h long -- print more options\n" > " -h full -- print all options (including all format and codec specific options, very long)\n" > - " -h type=name -- print all options for the named decoder/encoder/demuxer/muxer/filter/bsf\n" > + " -h type=name -- print all options for the named decoder/encoder/demuxer/muxer/filter/bsf/protocol\n" > " See man %s for detailed description of the options.\n" > "\n", program_name); > > -- > 2.15.1 > > > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
> 在 2019年11月27日,12:52,Limin Wang <lance.lmwang@gmail.com> 写道: > > On Wed, Nov 27, 2019 at 11:11:58AM +0800, Steven Liu wrote: >> Signed-off-by: Steven Liu <lq@chinaffmpeg.org> >> --- >> fftools/cmdutils.c | 18 ++++++++++++++++++ >> fftools/ffmpeg_opt.c | 2 +- >> 2 files changed, 19 insertions(+), 1 deletion(-) >> >> diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c >> index 84f98b7c04..96b823f74a 100644 >> --- a/fftools/cmdutils.c >> +++ b/fftools/cmdutils.c >> @@ -1870,6 +1870,22 @@ static void show_help_demuxer(const char *name) >> show_help_children(fmt->priv_class, AV_OPT_FLAG_DECODING_PARAM); >> } >> >> +static void show_help_protocol(const char *name) >> +{ >> + const AVClass *proto_class = avio_protocol_get_class(name); >> + >> + printf("Protocol [%s]:\n" >> + " D. = Input supported\n" >> + " .E = Output supported\n" >> + " --\n", name); > > It's better to move the print message after the next NULL pointer checking. I think i should remove it, because the encoder/muxer/decoder/demuxer have no this message too. > >> + if (!proto_class) { >> + av_log(NULL, AV_LOG_ERROR, "Unknown protocol '%s'.\n", name); >> + return; >> + } >> + >> + show_help_children(proto_class, AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_ENCODING_PARAM); >> +} >> + >> static void show_help_muxer(const char *name) >> { >> const AVCodecDescriptor *desc; >> @@ -2000,6 +2016,8 @@ int show_help(void *optctx, const char *opt, const char *arg) >> show_help_demuxer(par); >> } else if (!strcmp(topic, "muxer")) { >> show_help_muxer(par); >> + } else if (!strcmp(topic, "protocol")) { >> + show_help_protocol(par); >> #if CONFIG_AVFILTER >> } else if (!strcmp(topic, "filter")) { >> show_help_filter(par); >> diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c >> index 71063cc443..8d73fa8a78 100644 >> --- a/fftools/ffmpeg_opt.c >> +++ b/fftools/ffmpeg_opt.c >> @@ -3194,7 +3194,7 @@ void show_help_default(const char *opt, const char *arg) >> " -h -- print basic options\n" >> " -h long -- print more options\n" >> " -h full -- print all options (including all format and codec specific options, very long)\n" >> - " -h type=name -- print all options for the named decoder/encoder/demuxer/muxer/filter/bsf\n" >> + " -h type=name -- print all options for the named decoder/encoder/demuxer/muxer/filter/bsf/protocol\n" >> " See man %s for detailed description of the options.\n" >> "\n", program_name); >> >> -- >> 2.15.1 >> >> >> >> _______________________________________________ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> >> To unsubscribe, visit link above, or email >> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". Thanks Steven
diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c index 84f98b7c04..96b823f74a 100644 --- a/fftools/cmdutils.c +++ b/fftools/cmdutils.c @@ -1870,6 +1870,22 @@ static void show_help_demuxer(const char *name) show_help_children(fmt->priv_class, AV_OPT_FLAG_DECODING_PARAM); } +static void show_help_protocol(const char *name) +{ + const AVClass *proto_class = avio_protocol_get_class(name); + + printf("Protocol [%s]:\n" + " D. = Input supported\n" + " .E = Output supported\n" + " --\n", name); + if (!proto_class) { + av_log(NULL, AV_LOG_ERROR, "Unknown protocol '%s'.\n", name); + return; + } + + show_help_children(proto_class, AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_ENCODING_PARAM); +} + static void show_help_muxer(const char *name) { const AVCodecDescriptor *desc; @@ -2000,6 +2016,8 @@ int show_help(void *optctx, const char *opt, const char *arg) show_help_demuxer(par); } else if (!strcmp(topic, "muxer")) { show_help_muxer(par); + } else if (!strcmp(topic, "protocol")) { + show_help_protocol(par); #if CONFIG_AVFILTER } else if (!strcmp(topic, "filter")) { show_help_filter(par); diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c index 71063cc443..8d73fa8a78 100644 --- a/fftools/ffmpeg_opt.c +++ b/fftools/ffmpeg_opt.c @@ -3194,7 +3194,7 @@ void show_help_default(const char *opt, const char *arg) " -h -- print basic options\n" " -h long -- print more options\n" " -h full -- print all options (including all format and codec specific options, very long)\n" - " -h type=name -- print all options for the named decoder/encoder/demuxer/muxer/filter/bsf\n" + " -h type=name -- print all options for the named decoder/encoder/demuxer/muxer/filter/bsf/protocol\n" " See man %s for detailed description of the options.\n" "\n", program_name);
Signed-off-by: Steven Liu <lq@chinaffmpeg.org> --- fftools/cmdutils.c | 18 ++++++++++++++++++ fftools/ffmpeg_opt.c | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-)