From be97d2a825a12c9c01a61b985d44eb7424628fd6 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sun, 2 Jan 2022 18:38:02 +0100 Subject: [PATCH] lavf: add a flag for experimental (de)muxers --- doc/APIchanges | 3 +++ libavformat/avformat.h | 7 +++++++ libavformat/format.c | 2 ++ libavformat/version.h | 2 +- 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/doc/APIchanges b/doc/APIchanges index 670a59329e..29c235630e 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -14,6 +14,9 @@ libavutil: 2021-04-27 API changes, most recent first: +2022-01-xx - xxxxxxxxxx - lavf 59.13.100 - avformat.h + Add AVFMT_EXPERIMENTAL flag. + 2021-12-xx - xxxxxxxxxx - lavu 57.13.100 - hwcontext_videotoolbox.h Add av_vt_pixbuf_set_attachments diff --git a/libavformat/avformat.h b/libavformat/avformat.h index 70b36d7682..6ce367e854 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -463,6 +463,13 @@ typedef struct AVProbeData { /// Demuxer will use avio_open, no opened file should be provided by the caller. #define AVFMT_NOFILE 0x0001 #define AVFMT_NEEDNUMBER 0x0002 /**< Needs '%d' in filename. */ +/** + * The muxer/demuxer is experimental and should be used with caution. + * + * - demuxers: will not be selected automatically by probing, must be specified + * explicitly. + */ +#define AVFMT_EXPERIMENTAL 0x0004 #define AVFMT_SHOW_IDS 0x0008 /**< Show format stream IDs numbers. */ #define AVFMT_GLOBALHEADER 0x0040 /**< Format wants global header. */ #define AVFMT_NOTIMESTAMPS 0x0080 /**< Format does not need / have any timestamps. */ diff --git a/libavformat/format.c b/libavformat/format.c index 387627009e..52b85c16a2 100644 --- a/libavformat/format.c +++ b/libavformat/format.c @@ -158,6 +158,8 @@ const AVInputFormat *av_probe_input_format3(const AVProbeData *pd, } while ((fmt1 = av_demuxer_iterate(&i))) { + if (fmt1->flags & AVFMT_EXPERIMENTAL) + continue; if (!is_opened == !(fmt1->flags & AVFMT_NOFILE) && strcmp(fmt1->name, "image2")) continue; score = 0; diff --git a/libavformat/version.h b/libavformat/version.h index f372380dcf..79eb22c230 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 59 -#define LIBAVFORMAT_VERSION_MINOR 12 +#define LIBAVFORMAT_VERSION_MINOR 13 #define LIBAVFORMAT_VERSION_MICRO 100 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \