[FFmpeg-devel] [PATCH] avpacket: RFC for ABI bump additions

James Almer jamrial at gmail.com
Wed Jan 27 17:07:27 EET 2021


On 1/27/2021 6:16 AM, Anton Khirnov wrote:
> Quoting James Almer (2021-01-26 20:11:16)
>> On 1/26/2021 1:17 PM, Anton Khirnov wrote:
>>> We could start by adding a field to AVPacket that would be set to a
>>> magic value by av_packet_alloc().
>>> Then have e.g. AVCodecContext/AVFormatContext warn when they see a
>>> packet without this magic value.
>>
>> I don't like much the idea of adding a public field just to emit a
>> deprecation warning.
> 
> 
> int internal_do_not_touch; // do not touch
> 
> is not really public. It is visible in the public headers, but so are
> all the AVFooInternal. I agree that it is not the prettiest thing ever,
> but it's not too bad.
> 
> And I believe it would solve a real problem, since we have few other
> ways to let our users know they need to change something. Most of them
> do not follow development closely, I'd think.

If sizeof(AVPacket) stops being part of the ABI, then av_init_packet() 
becomes unnecessary, right? av_packet_unref() will be the only valid way 
for the user to reuse the AVPacket. So that deprecation warning might be 
enough for stack users.

Regarding a new internal field that lavf could check, i don't think it's 
enough since it may be uninitialized for packets on stack. And you can't 
make av_init_packet() set it to 0/NULL because then av_packet_unref() 
will also reset it, and lavf will start printing bogus warnings for 
allocated packet users.


More information about the ffmpeg-devel mailing list