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>
This commit is contained in:
		
							parent
							
								
									d29ec02d48
								
							
						
					
					
						commit
						2ff40b98ec
					
				| @ -15,6 +15,10 @@ libavutil:     2017-10-21 | |||||||
| 
 | 
 | ||||||
| API changes, most recent first: | API changes, most recent first: | ||||||
| 
 | 
 | ||||||
|  | 2021-03-03 - xxxxxxxxxx - lavf 58.70.100 - avformat.h | ||||||
|  |   Deprecate AVFMT_FLAG_PRIV_OPT. It will do nothing | ||||||
|  |   as soon as av_demuxer_open() is removed. | ||||||
|  | 
 | ||||||
| 2021-02-27 - xxxxxxxxxx - lavc 58.126.100 - avcodec.h | 2021-02-27 - xxxxxxxxxx - lavc 58.126.100 - avcodec.h | ||||||
|   Deprecated avcodec_get_frame_class(). |   Deprecated avcodec_get_frame_class(). | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1379,7 +1379,9 @@ typedef struct AVFormatContext { | |||||||
| #define AVFMT_FLAG_MP4A_LATM    0x8000 ///< Deprecated, does nothing.
 | #define AVFMT_FLAG_MP4A_LATM    0x8000 ///< Deprecated, does nothing.
 | ||||||
| #endif | #endif | ||||||
| #define AVFMT_FLAG_SORT_DTS    0x10000 ///< try to interleave outputted packets by dts (using this flag can slow demuxing down)
 | #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)
 | #if FF_API_LAVF_PRIV_OPT | ||||||
|  | #define AVFMT_FLAG_PRIV_OPT    0x20000 ///< Enable use of private options by delaying codec open (deprecated, will do nothing once av_demuxer_open() is removed)
 | ||||||
|  | #endif | ||||||
| #if FF_API_LAVF_KEEPSIDE_FLAG | #if FF_API_LAVF_KEEPSIDE_FLAG | ||||||
| #define AVFMT_FLAG_KEEP_SIDE_DATA 0x40000 ///< Deprecated, does nothing.
 | #define AVFMT_FLAG_KEEP_SIDE_DATA 0x40000 ///< Deprecated, does nothing.
 | ||||||
| #endif | #endif | ||||||
| @ -2210,8 +2212,13 @@ int av_probe_input_buffer(AVIOContext *pb, ff_const59 AVInputFormat **fmt, | |||||||
|  */ |  */ | ||||||
| int avformat_open_input(AVFormatContext **ps, const char *url, ff_const59 AVInputFormat *fmt, AVDictionary **options); | int avformat_open_input(AVFormatContext **ps, const char *url, ff_const59 AVInputFormat *fmt, AVDictionary **options); | ||||||
| 
 | 
 | ||||||
|  | #if FF_API_DEMUXER_OPEN | ||||||
|  | /**
 | ||||||
|  |  * @deprecated Use an AVDictionary to pass options to a demuxer. | ||||||
|  |  */ | ||||||
| attribute_deprecated | attribute_deprecated | ||||||
| int av_demuxer_open(AVFormatContext *ic); | int av_demuxer_open(AVFormatContext *ic); | ||||||
|  | #endif | ||||||
| 
 | 
 | ||||||
| /**
 | /**
 | ||||||
|  * Read packets of a media file to get stream information. This |  * Read packets of a media file to get stream information. This | ||||||
|  | |||||||
| @ -392,6 +392,7 @@ FF_ENABLE_DEPRECATION_WARNINGS | |||||||
| /************************************************************/ | /************************************************************/ | ||||||
| /* input media file */ | /* input media file */ | ||||||
| 
 | 
 | ||||||
|  | #if FF_API_DEMUXER_OPEN | ||||||
| int av_demuxer_open(AVFormatContext *ic) { | int av_demuxer_open(AVFormatContext *ic) { | ||||||
|     int err; |     int err; | ||||||
| 
 | 
 | ||||||
| @ -411,7 +412,7 @@ int av_demuxer_open(AVFormatContext *ic) { | |||||||
| 
 | 
 | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
| 
 | #endif | ||||||
| /* Open input file and probe the format if necessary. */ | /* Open input file and probe the format if necessary. */ | ||||||
| static int init_input(AVFormatContext *s, const char *filename, | static int init_input(AVFormatContext *s, const char *filename, | ||||||
|                       AVDictionary **options) |                       AVDictionary **options) | ||||||
| @ -594,8 +595,11 @@ FF_ENABLE_DEPRECATION_WARNINGS | |||||||
|     if (s->pb) |     if (s->pb) | ||||||
|         ff_id3v2_read_dict(s->pb, &s->internal->id3v2_meta, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta); |         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) |     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) |         if ((ret = s->iformat->read_header(s)) < 0) | ||||||
|             goto fail; |             goto fail; | ||||||
| 
 | 
 | ||||||
| @ -624,7 +628,11 @@ FF_ENABLE_DEPRECATION_WARNINGS | |||||||
|     if ((ret = avformat_queue_attached_pictures(s)) < 0) |     if ((ret = avformat_queue_attached_pictures(s)) < 0) | ||||||
|         goto close; |         goto close; | ||||||
| 
 | 
 | ||||||
|  | #if FF_API_DEMUXER_OPEN | ||||||
|     if (!(s->flags&AVFMT_FLAG_PRIV_OPT) && s->pb && !s->internal->data_offset) |     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->data_offset = avio_tell(s->pb); | ||||||
| 
 | 
 | ||||||
|     s->internal->raw_packet_buffer_remaining_size = RAW_PACKET_BUFFER_SIZE; |     s->internal->raw_packet_buffer_remaining_size = RAW_PACKET_BUFFER_SIZE; | ||||||
|  | |||||||
| @ -32,7 +32,7 @@ | |||||||
| // Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium)
 | // Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium)
 | ||||||
| // Also please add any ticket numbers that you believe might be affected here
 | // Also please add any ticket numbers that you believe might be affected here
 | ||||||
| #define LIBAVFORMAT_VERSION_MAJOR  58 | #define LIBAVFORMAT_VERSION_MAJOR  58 | ||||||
| #define LIBAVFORMAT_VERSION_MINOR  69 | #define LIBAVFORMAT_VERSION_MINOR  70 | ||||||
| #define LIBAVFORMAT_VERSION_MICRO 100 | #define LIBAVFORMAT_VERSION_MICRO 100 | ||||||
| 
 | 
 | ||||||
| #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ | #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ | ||||||
| @ -106,6 +106,12 @@ | |||||||
| #ifndef FF_API_AVIOFORMAT | #ifndef FF_API_AVIOFORMAT | ||||||
| #define FF_API_AVIOFORMAT               (LIBAVFORMAT_VERSION_MAJOR < 59) | #define FF_API_AVIOFORMAT               (LIBAVFORMAT_VERSION_MAJOR < 59) | ||||||
| #endif | #endif | ||||||
|  | #ifndef FF_API_DEMUXER_OPEN | ||||||
|  | #define FF_API_DEMUXER_OPEN             (LIBAVFORMAT_VERSION_MAJOR < 59) | ||||||
|  | #endif | ||||||
|  | #ifndef FF_API_LAVF_PRIV_OPT | ||||||
|  | #define FF_API_LAVF_PRIV_OPT            (LIBAVFORMAT_VERSION_MAJOR < 60) | ||||||
|  | #endif | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| #ifndef FF_API_R_FRAME_RATE | #ifndef FF_API_R_FRAME_RATE | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user