[FFmpeg-devel] [PATCH] av_get_frame_filename2 parameter int -> int64_t

Marcus B Spencer marcus at marcusspencer.xyz
Mon Sep 16 22:46:29 EEST 2024


On Monday, September 16th, 2024 at 2:27 PM, Filip Mašić shoutplenty at gmail.com wrote:

> On Mon, 16 Sept 2024 at 19:59, Leo Izen leo.izen at gmail.com wrote:
>
>> On 9/16/24 2:22 PM, Filip Mašić wrote:
>>
>>> my apologies for re-sending; i didn't spot that there was a header file.
>>> my previous email may be disregarded.
>>>
>>> suggested fix for ticket 11194; see ticket for more info. i haven't been
>>> able to test this since i don't have any build tools installed, but decided
>>> to submit it since it seems to be a trivial change and easy to test
>>>
>>> Signed-off-by: Filip Mašić shoutplenty at gmail.com
>>> ---
>>> libavformat/avformat.h | 4 ++--
>>> libavformat/utils.c | 4 ++--
>>> 2 files changed, 4 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/libavformat/avformat.h b/libavformat/avformat.h
>>> index 4a3fb00529..76ffb008b4 100644
>>> --- a/libavformat/avformat.h
>>> +++ b/libavformat/avformat.h
>>> @@ -2911,10 +2911,10 @@ void av_dump_format(AVFormatContext *ic,
>>> * @return 0 if OK, -1 on format error
>>> */
>>> int av_get_frame_filename2(char *buf, int buf_size,
>>> - const char *path, int number, int flags);
>>> + const char *path, int64_t number, int flags);
>>>
>>> int av_get_frame_filename(char *buf, int buf_size,
>>> - const char *path, int number);
>>> + const char *path, int64_t number);
>>
>> This is a breaking change, because you're changing the function
>> signature (including the size of arguments) for a function exposed as
>> a public API. You'll need to figure out a solution that doesn't break
>> public interfaces.
>>
>> - Leo Izen (Traneptora)
>
> Fair, thanks for reviewing. Two questions:
> 1. Can a widening conversion in a parameter really be a breaking change if
> everywhere the function would be called, it would still work as expected
> with no changes, provided the implementation is correct?

Yes, because this breaks programs that are already compiled against the library. This kind of breaking change is called an ABI breaking change, and requires such programs to be recompiled.

This patch might also break the API in some ways, but I'm not sure.


More information about the ffmpeg-devel mailing list