[FFmpeg-devel] [PATCH 01/21] avformat/avio: Don't use incompatible function pointer type for call
Tomas Härdin
git at haerdin.se
Sat Sep 9 09:37:58 EEST 2023
fre 2023-09-08 klockan 22:38 +0200 skrev Marton Balint:
>
>
> On Thu, 7 Sep 2023, Andreas Rheinhardt wrote:
>
> > It is undefined behaviour even in cases where it works
> > (it works because it is only a const uint8_t* vs. uint8_t*
> > difference).
> >
> > Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
> > ---
> > libavformat/avio.c | 25 ++++++++++++++++---------
> > 1 file changed, 16 insertions(+), 9 deletions(-)
> >
> > diff --git a/libavformat/avio.c b/libavformat/avio.c
> > index ab1c19a58d..d53da5cb0c 100644
> > --- a/libavformat/avio.c
> > +++ b/libavformat/avio.c
> > @@ -354,10 +354,15 @@ fail:
> > }
> >
> > static inline int retry_transfer_wrapper(URLContext *h, uint8_t
> > *buf,
> > + const uint8_t *cbuf,
> > int size, int size_min,
> > - int
> > (*transfer_func)(URLContext *h,
> > -
> > uint8_t *buf,
> > - int
> > size))
> > + int
> > (*read_func)(URLContext *h,
> > + uint8_t
> > *buf,
> > + int
> > size),
> > + int
> > (*write_func)(URLContext *h,
> > + const
> > uint8_t *buf,
> > + int
> > size),
> > + int read)
>
> These extra parameters are very ugly, can't we think of another way
> to
> properly support this?
>
> One idea is putting retry_transfer_wrapper in a template file and
> include
> it twice with proper defines-s for the read and write flavours.
Seems like a lot of work for a function that's internal to avio.c
/Tomas
More information about the ffmpeg-devel
mailing list