summaryrefslogtreecommitdiff
path: root/libavformat/utils.c
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2021-02-26 17:25:54 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2021-03-03 14:41:08 +0100
commit2ff40b98ecbd9befadddc8fe665a391f99bfca32 (patch)
tree6b470bdc5349e1c28be6a208ee2d094444a61b18 /libavformat/utils.c
parentd29ec02d48a7fae1e3ed5a7bd79ab3fd73b42a96 (diff)
avformat: Deprecate AVFMT_FLAG_PRIV_OPT, remove av_demuxer_open on bump
This flag was added in 492026209b9b58eaf6d2ea56423f6b1e1a8a76a5 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 e37f161e66e042d6c2c7470c4d9881df9427fc4a 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 of the flag and schedules av_demuxer_open for removal on the next major bump. Given that av_demuxer_open() has been deprecated in 2012 and that this flag is useless without it, the flag will be ignored after the next major version bump. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Diffstat (limited to 'libavformat/utils.c')
-rw-r--r--libavformat/utils.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 6e92bd777a..36164e0f0d 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -392,6 +392,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
/************************************************************/
/* input media file */
+#if FF_API_DEMUXER_OPEN
int av_demuxer_open(AVFormatContext *ic) {
int err;
@@ -411,7 +412,7 @@ int av_demuxer_open(AVFormatContext *ic) {
return 0;
}
-
+#endif
/* Open input file and probe the format if necessary. */
static int init_input(AVFormatContext *s, const char *filename,
AVDictionary **options)
@@ -594,8 +595,11 @@ FF_ENABLE_DEPRECATION_WARNINGS
if (s->pb)
ff_id3v2_read_dict(s->pb, &s->internal->id3v2_meta, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta);
-
+#if FF_API_DEMUXER_OPEN
if (!(s->flags&AVFMT_FLAG_PRIV_OPT) && s->iformat->read_header)
+#else
+ if (s->iformat->read_header)
+#endif
if ((ret = s->iformat->read_header(s)) < 0)
goto fail;
@@ -624,7 +628,11 @@ FF_ENABLE_DEPRECATION_WARNINGS
if ((ret = avformat_queue_attached_pictures(s)) < 0)
goto close;
+#if FF_API_DEMUXER_OPEN
if (!(s->flags&AVFMT_FLAG_PRIV_OPT) && s->pb && !s->internal->data_offset)
+#else
+ if (s->pb && !s->internal->data_offset)
+#endif
s->internal->data_offset = avio_tell(s->pb);
s->internal->raw_packet_buffer_remaining_size = RAW_PACKET_BUFFER_SIZE;