[FFmpeg-devel] [PATCH 1/5] avformat/format: add av_find_input_format2
Andreas Rheinhardt
andreas.rheinhardt at gmail.com
Tue Jan 28 16:38:00 EET 2020
Gyan Doshi:
> Identifies demuxer by extension if search by short name fails.
> ---
> libavformat/avformat.h | 7 +++++++
> libavformat/format.c | 14 +++++++++++++-
> libavformat/version.h | 2 +-
> 3 files changed, 21 insertions(+), 2 deletions(-)
>
> diff --git a/libavformat/avformat.h b/libavformat/avformat.h
> index 9b9b634ec3..c81c4f18fd 100644
> --- a/libavformat/avformat.h
> +++ b/libavformat/avformat.h
> @@ -2246,6 +2246,13 @@ ff_const59 AVInputFormat *av_find_input_format(const char *short_name);
> */
> ff_const59 AVInputFormat *av_probe_input_format(ff_const59 AVProbeData *pd, int is_opened);
>
> +/**
> + * Find AVInputFormat based on the short name of the input format.
> + * If that fails and as_extension is set, find demuxer which has registered the
> + * name as an extension.
> + */
> +ff_const59 AVInputFormat *av_find_input_format2(const char *short_name, int as_extension);
> +
There is no reason not to make this function const-correct from the
beginning, i.e. replace ff_const59 by const.
> /**
> * Guess the file format.
> *
> diff --git a/libavformat/format.c b/libavformat/format.c
> index c47490c8eb..d2382d1cd0 100644
> --- a/libavformat/format.c
> +++ b/libavformat/format.c
> @@ -115,16 +115,28 @@ enum AVCodecID av_guess_codec(ff_const59 AVOutputFormat *fmt, const char *short_
> return AV_CODEC_ID_NONE;
> }
>
> -ff_const59 AVInputFormat *av_find_input_format(const char *short_name)
> +ff_const59 AVInputFormat *av_find_input_format2(const char *short_name, int as_extension)
> {
> const AVInputFormat *fmt = NULL;
> void *i = 0;
> while ((fmt = av_demuxer_iterate(&i)))
> if (av_match_name(short_name, fmt->name))
> return (AVInputFormat*)fmt;
Then you don't need to cast the const away here
> +
> + if (as_extension) {
> + i = 0;
> + while ((fmt = av_demuxer_iterate(&i)))
> + if (fmt->extensions && av_match_name(short_name, fmt->extensions))
> + return (AVInputFormat*)fmt;
and here.
> + }
> return NULL;
> }
>
> +ff_const59 AVInputFormat *av_find_input_format(const char *short_name)
> +{
> + return av_find_input_format2(short_name, 0);
But you will have to cast the const away here.
Not commenting on whether this function should be added at all.
- Andreas
More information about the ffmpeg-devel
mailing list