[FFmpeg-devel] [PATCH] avformat/avformat: Deprecate AVFMT_FLAG_PRIV_OPT

Andreas Rheinhardt andreas.rheinhardt at gmail.com
Thu Apr 2 07:57:04 EEST 2020


This flag was added in 492026209 in conjunction with av_demuxer_open()
to allow to pass private options to demuxers. It worked as follows:
av_open_input_stream() (the predecessor of avformat_open_input()) would
not call the read_header function if this flag is set. Instead the user
could set private options of the demuxer via the format's private class
after avformat_open_input() and then call av_demuxer_open() which called
the format's read_header function.

This approach was abandoned in e37f161e and av_demuxer_open() deprecated;
instead the AVDictionary based way of passing private options to the
demuxer was choosen. Yet AVFMT_FLAG_PRIV_OPT has never been deprecated
(and av_demuxer_open() never removed). This commit implements the
deprecation. Given that av_demuxer_open() has been deprecated in 2012
and that this flag is useless without it, the flag is slated to be
ignored at the next major version bump.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
---
I really wonder how av_demuxer_open() could survive that long despite
having been deprecated more than eight years ago. Is it because it was
just deprecated, but without any #if around it to be slated for removal?

 doc/APIchanges         | 4 ++++
 libavformat/avformat.h | 2 +-
 libavformat/version.h  | 2 +-
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/doc/APIchanges b/doc/APIchanges
index f1d7eac2ee..c7ce019b1a 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -15,6 +15,10 @@ libavutil:     2017-10-21
 
 API changes, most recent first:
 
+2020-04-02 - xxxxxxxxxx - lavf 58.43.100 - avformat.h
+  Deprecate AVFMT_FLAG_PRIV_OPT. It will be ignored after the next
+  major bump and avformat_open_input() will behave as if it were unset.
+
 2020-03-29 - xxxxxxxxxx - lavf 58.42.100 - avformat.h
   av_read_frame() now guarantees to handle uninitialized input packets
   and to return refcounted packets on success.
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 39b99b4481..b7049b69a0 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -1489,7 +1489,7 @@ typedef struct AVFormatContext {
 #define AVFMT_FLAG_MP4A_LATM    0x8000 ///< Deprecated, does nothing.
 #endif
 #define AVFMT_FLAG_SORT_DTS    0x10000 ///< try to interleave outputted packets by dts (using this flag can slow demuxing down)
-#define AVFMT_FLAG_PRIV_OPT    0x20000 ///< Enable use of private options by delaying codec open (this could be made default once all code is converted)
+#define AVFMT_FLAG_PRIV_OPT    0x20000 ///< Enable use of private options by delaying codec open; deprecated.
 #if FF_API_LAVF_KEEPSIDE_FLAG
 #define AVFMT_FLAG_KEEP_SIDE_DATA 0x40000 ///< Deprecated, does nothing.
 #endif
diff --git a/libavformat/version.h b/libavformat/version.h
index 18c2f5fec2..493a0b337f 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  42
+#define LIBAVFORMAT_VERSION_MINOR  43
 #define LIBAVFORMAT_VERSION_MICRO 100
 
 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
-- 
2.20.1



More information about the ffmpeg-devel mailing list