[FFmpeg-devel] [PATCH 4/5] avcodec/parser: Schedule av_parser_change for removal

Andreas Rheinhardt andreas.rheinhardt at gmail.com
Mon Mar 1 17:36:59 EET 2021


James Almer:
> On 2/26/2021 10:18 AM, Andreas Rheinhardt wrote:
>> Originally deprecated in 748c2fca7e4d99357c234936aa71212a6282be36,
>> publically deprecated in 9a07c1332cfe092b57b5758f22b686ca58806c60
>> (merged into FFmpeg in 1885ffb03d0af28e6bac2bcc8725fa15b93f6ac9).
>>
>> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
>> ---
>>   libavcodec/avcodec.h | 6 +++++-
>>   libavcodec/parser.c  | 3 ++-
>>   libavcodec/version.h | 3 +++
>>   3 files changed, 10 insertions(+), 2 deletions(-)
>>
>> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
>> index 3178c163b9..a8741df04b 100644
>> --- a/libavcodec/avcodec.h
>> +++ b/libavcodec/avcodec.h
>> @@ -3576,14 +3576,18 @@ int av_parser_parse2(AVCodecParserContext *s,
>>                        int64_t pts, int64_t dts,
>>                        int64_t pos);
>>   +#if FF_API_PARSER_CHANGE
>>   /**
>>    * @return 0 if the output buffer is a subset of the input, 1 if it
>> is allocated and must be freed
>> - * @deprecated use AVBitStreamFilter
>> + * @deprecated Use dump_extradata, remove_extra or extract_extradata
>> + *             bitstream filters instead.
>>    */
>> +attribute_deprecated
>>   int av_parser_change(AVCodecParserContext *s,
>>                        AVCodecContext *avctx,
>>                        uint8_t **poutbuf, int *poutbuf_size,
>>                        const uint8_t *buf, int buf_size, int keyframe);
>> +#endif
>>   void av_parser_close(AVCodecParserContext *s);
>>     /**
>> diff --git a/libavcodec/parser.c b/libavcodec/parser.c
>> index a63f532c48..f4bc00da7d 100644
>> --- a/libavcodec/parser.c
>> +++ b/libavcodec/parser.c
>> @@ -186,6 +186,7 @@ int av_parser_parse2(AVCodecParserContext *s,
>> AVCodecContext *avctx,
>>       return index;
>>   }
>>   +#if FF_API_PARSER_CHANGE
>>   int av_parser_change(AVCodecParserContext *s, AVCodecContext *avctx,
>>                        uint8_t **poutbuf, int *poutbuf_size,
>>                        const uint8_t *buf, int buf_size, int keyframe)
>> @@ -220,7 +221,7 @@ int av_parser_change(AVCodecParserContext *s,
>> AVCodecContext *avctx,
>>         return 0;
>>   }
>> -
>> +#endif
>>   void av_parser_close(AVCodecParserContext *s)
>>   {
>>       if (s) {
>> diff --git a/libavcodec/version.h b/libavcodec/version.h
>> index 488def4c23..815df15628 100644
>> --- a/libavcodec/version.h
>> +++ b/libavcodec/version.h
>> @@ -150,6 +150,9 @@
>>   #ifndef FF_API_MPV_RC_STRATEGY
>>   #define FF_API_MPV_RC_STRATEGY     (LIBAVCODEC_VERSION_MAJOR < 59)
>>   #endif
>> +#ifndef FF_API_PARSER_CHANGE
>> +#define FF_API_PARSER_CHANGE       (LIBAVCODEC_VERSION_MAJOR < 59)
> 
> A doxygen deprecation notice is not enough to consider the function
> deprecated. There was no APIChanges entry and no attribute added to the
> function prototype.
> So this needs the APIChanges entry, and therefore be scheduled as < 60.

I disagree. Of course Doxygen deprecations count and being on the list
of deprecated things [1] for more than eight years is enough.

- Andreas

[1]: https://ffmpeg.org/doxygen/trunk/deprecated.html#_deprecated000007

> 
> LGTM otherwise.
> 
>> +#endif
>>   #ifndef FF_API_THREAD_SAFE_CALLBACKS
>>   #define FF_API_THREAD_SAFE_CALLBACKS (LIBAVCODEC_VERSION_MAJOR < 60)
>>   #endif
>>


More information about the ffmpeg-devel mailing list