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
_______________________________________________
ffmpeg-devel mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".