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

Filip Mašić shoutplenty at gmail.com
Mon Sep 16 22:27:37 EEST 2024


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?
2. Does this mean the solution would be to fork
av_get_frame_filename2(int) again
into av_get_frame_filename3(int64_t) and implement versions #1 and #2 to
call #3? Come to think of it, that's probably why there are two of those
functions in the first place. Seems like mess begets more mess though.

– Filip


More information about the ffmpeg-devel mailing list