From: François Cartegnie Date: Sun, 7 Jul 2024 09:14:05 +0000 (+0200) Subject: mux: avformat: fix avio callbacks signature with ffmpeg 6.1 X-Git-Tag: archive/raspbian/3.0.21-6+rpi1^2~47 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=fa553702ee284748d4409ffe41c7cf3fb0df6fb1;p=vlc.git mux: avformat: fix avio callbacks signature with ffmpeg 6.1 API signature changes introduced depending on a positive define, then removed later, making it break prior or post removal... (adapted from commit 503c04fad9239420be26d67aab4d5f63c53eb4f7) Gbp-Pq: Name 0078-mux-avformat-fix-avio-callbacks-signature-with-ffmpe.patch --- diff --git a/modules/codec/avcodec/avcommon_compat.h b/modules/codec/avcodec/avcommon_compat.h index 9d16b3dc..561ad83f 100644 --- a/modules/codec/avcodec/avcommon_compat.h +++ b/modules/codec/avcodec/avcommon_compat.h @@ -77,6 +77,9 @@ #ifndef FF_MAX_B_FRAMES # define FF_MAX_B_FRAMES 16 // FIXME: remove this #endif +#ifndef FF_API_AVIO_WRITE_NONCONST // removed in ffmpeg 7 +# define FF_API_AVIO_WRITE_NONCONST (LIBAVFORMAT_VERSION_MAJOR < 61) +#endif #endif /* HAVE_LIBAVCODEC_AVCODEC_H */ diff --git a/modules/demux/avformat/mux.c b/modules/demux/avformat/mux.c index 8bf87358..033a87bd 100644 --- a/modules/demux/avformat/mux.c +++ b/modules/demux/avformat/mux.c @@ -74,11 +74,20 @@ static int AddStream( sout_mux_t *, sout_input_t * ); static void DelStream( sout_mux_t *, sout_input_t * ); static int Mux ( sout_mux_t * ); +#if FF_API_AVIO_WRITE_NONCONST static int IOWrite( void *opaque, uint8_t *buf, int buf_size ); +#else +static int IOWrite( void *opaque, const uint8_t *buf, int buf_size ); +#endif static int64_t IOSeek( void *opaque, int64_t offset, int whence ); #if LIBAVFORMAT_VERSION_CHECK( 57, 7, 0, 40, 100 ) +# if FF_API_AVIO_WRITE_NONCONST static int IOWriteTyped(void *opaque, uint8_t *buf, int buf_size, enum AVIODataMarkerType type, int64_t time); +# else +int IOWriteTyped(void *opaque, const uint8_t *buf, int buf_size, + enum AVIODataMarkerType type, int64_t time); +# endif #endif /***************************************************************************** @@ -411,8 +420,13 @@ static int MuxBlock( sout_mux_t *p_mux, sout_input_t *p_input ) } #if LIBAVFORMAT_VERSION_CHECK( 57, 7, 0, 40, 100 ) +# if FF_API_AVIO_WRITE_NONCONST int IOWriteTyped(void *opaque, uint8_t *buf, int buf_size, enum AVIODataMarkerType type, int64_t time) +# else +int IOWriteTyped(void *opaque, const uint8_t *buf, int buf_size, + enum AVIODataMarkerType type, int64_t time) +# endif { VLC_UNUSED(time); @@ -512,7 +526,11 @@ static int Control( sout_mux_t *p_mux, int i_query, va_list args ) /***************************************************************************** * I/O wrappers for libavformat *****************************************************************************/ +#if FF_API_AVIO_WRITE_NONCONST static int IOWrite( void *opaque, uint8_t *buf, int buf_size ) +#else +static int IOWrite( void *opaque, const uint8_t *buf, int buf_size ) +#endif { sout_mux_t *p_mux = opaque; sout_mux_sys_t *p_sys = p_mux->p_sys;