[FFmpeg-devel] [PATCH 2/2] avformat: Make AVChapter.id an int64_t on next major bump
Andreas Rheinhardt
andreas.rheinhardt at gmail.com
Tue Mar 16 11:34:22 EET 2021
Anton Khirnov:
> Quoting Andreas Rheinhardt (2021-03-16 09:29:53)
>> 64 bits are needed in order to retain the uid values of Matroska
>> chapters; the type is kept signed because the semantics of NUT chapters
>> depend upon whether the id is > 0 or < 0.
>>
>> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
>> ---
>> Apologies for being so late.
>>
>> doc/APIchanges | 4 ++++
>> libavformat/aadec.c | 2 +-
>> libavformat/avformat.h | 4 ++++
>> libavformat/internal.h | 4 ++++
>> libavformat/matroskaenc.c | 4 ++++
>> libavformat/nutdec.c | 4 ++--
>> libavformat/utils.c | 4 ++++
>> libavformat/version.h | 5 ++++-
>> 8 files changed, 27 insertions(+), 4 deletions(-)
>>
>> diff --git a/doc/APIchanges b/doc/APIchanges
>> index c0d955b1fa..8b93adebe1 100644
>> --- a/doc/APIchanges
>> +++ b/doc/APIchanges
>> @@ -15,6 +15,10 @@ libavutil: 2017-10-21
>>
>> API changes, most recent first:
>>
>> +2021-03-16 - xxxxxxxxxx - lavf 58.75.100 - avformat.h
>> + AVChapter.id will be changed from int to int64_t
>> + on the next major version bump.
>> +
>> 2021-03-12 - xxxxxxxxxx - lavc 58.131.100 - avcodec.h codec.h
>> Add a get_encode_buffer callback to AVCodecContext, similar to
>> get_buffer2 but for encoders.
>> diff --git a/libavformat/aadec.c b/libavformat/aadec.c
>> index e88cdb89df..80ca2c12d7 100644
>> --- a/libavformat/aadec.c
>> +++ b/libavformat/aadec.c
>> @@ -222,7 +222,7 @@ static int aa_read_header(AVFormatContext *s)
>> c->content_end = start + largest_size;
>>
>> while ((chapter_pos = avio_tell(pb)) >= 0 && chapter_pos < c->content_end) {
>> - int chapter_idx = s->nb_chapters;
>> + unsigned chapter_idx = s->nb_chapters;
>
> unrelated?
>
The chapter ids created by aadec are just 0,1,... And in the
hypothetical scenario that there are more than INT_MAX of them the
INT_MAX+1U chapter would have a negative id if I didn't change it to
unsigned above. (I don't think it can happen, but nb_chapters is an
unsigned, so it is better anyway.)
- Andreas
More information about the ffmpeg-devel
mailing list