[FFmpeg-devel] [PATCH] avformat: make AVStream.pts_wrap_bits public

James Almer jamrial at gmail.com
Thu Jun 10 21:27:37 EEST 2021


On 6/10/2021 3:18 PM, Michael Niedermayer wrote:
> On Wed, Jun 09, 2021 at 03:07:41PM -0300, James Almer wrote:
>> It can be useful to library users, and is currently being used by ffmpeg.c
>>
>> Suggested-by: Hendrik Leppkes <h.leppkes at gmail.com>
>> Signed-off-by: James Almer <jamrial at gmail.com>
>> ---
>>   doc/APIchanges         |  3 +++
>>   libavformat/avformat.h | 17 +++++++----------
>>   libavformat/version.h  |  4 ++--
>>   3 files changed, 12 insertions(+), 12 deletions(-)
>>
>> diff --git a/doc/APIchanges b/doc/APIchanges
>> index c46f4d5304..1b25bddd43 100644
>> --- a/doc/APIchanges
>> +++ b/doc/APIchanges
>> @@ -14,6 +14,9 @@ libavutil:     2021-04-27
>>   
>>   API changes, most recent first:
>>   
>> +2021-06-09 - xxxxxxxxxx - lavf 59.3.100 - avformat.h
>> +  Add pts_wrap_bits to AVStream
>> +
>>   2021-04-27 - cb3ac722f4 - lavc 59.0.100 - avcodec.h
>>     Constified AVCodecParserContext.parser.
>>   
>> diff --git a/libavformat/avformat.h b/libavformat/avformat.h
>> index 094683f12a..0d12d5b0d2 100644
>> --- a/libavformat/avformat.h
>> +++ b/libavformat/avformat.h
>> @@ -980,17 +980,14 @@ typedef struct AVStream {
>>        */
>>       AVCodecParameters *codecpar;
>>   
>> -    /*****************************************************************
>> -     * All fields below this line are not part of the public API. They
>> -     * may not be used outside of libavformat and can be changed and
>> -     * removed at will.
>> -     * Internal note: be aware that physically removing these fields
>> -     * will break ABI. Replace removed fields with dummy fields, and
>> -     * add new fields to AVStreamInternal.
>> -     *****************************************************************
>> +    /**
>> +     * Number of bits in pts. Used for wrapping control.
>> +     *
>> +     * - demuxing: set by libavformat
>> +     * - muxing: set by libavformat
>> +     *
>>        */
>> -
>> -    int pts_wrap_bits; /**< number of bits in pts (used for wrapping control) */
>> +    int pts_wrap_bits;
>>   
>>       /**
>>        * An opaque field for libavformat internal usage.
> 
> The "All fields below this line..." thing should be moved down instead of
> removed as i realize that this was not the last field

No, the remaining field is the AVStreamInternal opaque one. Like in 
other structs, it's public in the sense its offset is fixed, but should 
not be accessed by the user.

One of purposes of this patch is precisely get rid of that ugly notice, 
so new fields are added directly at the end, and existing offsets can 
remain fixed within a given soname.

> 
> thx
> 
> [...]
> 
> 
> _______________________________________________
> 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