[FFmpeg-devel] [PATCH 2/2] avformat: add a deprecated attribute to AVStream.attached_pic

James Almer jamrial at gmail.com
Sun Mar 21 19:09:00 EET 2021


And mention how the field is not being removed but changed, with instructions
for library users to migrate their code.

Signed-off-by: James Almer <jamrial at gmail.com>
---
 libavformat/avformat.h | 8 ++++++++
 libavformat/utils.c    | 4 ++++
 2 files changed, 12 insertions(+)

diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 822aa4c631..9fa8049149 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -953,8 +953,16 @@ typedef struct AVStream {
      *
      * decoding: set by libavformat, must not be modified by the caller.
      * encoding: unused
+     *
+     * @deprecated This field will not be removed but become a pointer to an AVPacket
+     *             owned by libavformat instead.
+     *             Callers that want to be forward compatible with future libavformat
+     *             versions should wrap access to this field with a
+     *             LIBAVFORMAT_VERSION_MAJOR preoprocessor check and start treating it
+     *             as a pointer from version 60 onwards.
      */
 #if FF_API_INIT_PACKET
+    attribute_deprecated
     AVPacket attached_pic;
 #else
     AVPacket *attached_pic;
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 3db12af1b6..f7a3b96dab 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -4384,8 +4384,10 @@ static void free_stream(AVStream **pst)
         av_parser_close(st->parser);
 
 #if FF_API_INIT_PACKET
+FF_DISABLE_DEPRECATION_WARNINGS
     if (st->attached_pic.data)
         av_packet_unref(&st->attached_pic);
+FF_ENABLE_DEPRECATION_WARNINGS
 #else
     av_packet_free(st->attached_pic);
 #endif
@@ -5864,7 +5866,9 @@ FF_ENABLE_DEPRECATION_WARNINGS
 AVPacket *ff_stream_get_attached_pic(AVStream *st)
 {
 #if FF_API_INIT_PACKET
+FF_DISABLE_DEPRECATION_WARNINGS
     return &st->attached_pic;
+FF_ENABLE_DEPRECATION_WARNINGS
 #else
     return st->attached_pic;
 #endif
-- 
2.30.2



More information about the ffmpeg-devel mailing list