[FFmpeg-devel] [PATCH 1/5] avformat/format: add av_find_input_format2
Gyan Doshi
ffmpeg at gyani.pro
Tue Jan 28 09:44:42 EET 2020
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);
+
/**
* 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;
+
+ if (as_extension) {
+ i = 0;
+ while ((fmt = av_demuxer_iterate(&i)))
+ if (fmt->extensions && av_match_name(short_name, fmt->extensions))
+ return (AVInputFormat*)fmt;
+ }
return NULL;
}
+ff_const59 AVInputFormat *av_find_input_format(const char *short_name)
+{
+ return av_find_input_format2(short_name, 0);
+}
+
ff_const59 AVInputFormat *av_probe_input_format3(ff_const59 AVProbeData *pd, int is_opened,
int *score_ret)
{
diff --git a/libavformat/version.h b/libavformat/version.h
index f72fb9478a..15fdb73e3e 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -32,7 +32,7 @@
// Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium)
// Also please add any ticket numbers that you believe might be affected here
#define LIBAVFORMAT_VERSION_MAJOR 58
-#define LIBAVFORMAT_VERSION_MINOR 36
+#define LIBAVFORMAT_VERSION_MINOR 37
#define LIBAVFORMAT_VERSION_MICRO 100
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
--
2.24.1
More information about the ffmpeg-devel
mailing list