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

James Almer jamrial at gmail.com
Mon Mar 1 21:35:55 EET 2021


On 3/1/2021 12:36 PM, Andreas Rheinhardt wrote:
> 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.

If there was no APIChanges entry that references a library version, then 
this can not be considered deprecated and can not be removed until a 
bump at least 2 years from now. Even more so when there was no 
deprecation attribute on the function to warn its users.

So please, change it to < 60. It's an absolutely harmless standalone 
function and can stay around for a proper deprecation period.

> 
> - 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
>>>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
> 



More information about the ffmpeg-devel mailing list