As the subject says, this puts AVPacket in line with AVFrame, allowing easier extensibility of the struct, and preventing some corner cases when packets are used uninitialized on stack. Compared to V1, i included the entire set here, plus a few changes to ffplay and avformat/utils.
This removes all av_init_packet() instances in the tree, and all uses of AVPacket on stack i could find. It's not exhaustive, as i probably missed a few, but they can be removed any time between the deprecation of public sizeof(AVPacket) and it's removal 2+ years from now. Then there's the few cases where an AVPacket is part of another public struct, as is the case of AVPacketList, or attached_pic in AVSteam. The latter i could adapt right now, but it would mean a lot of preprocessor checks littering the codebase until removed, so i refrained from doing so. FATE passes, but a few of these patches are untested as FATE doesn't cover some of these modules. James Almer (50): avcodec/packet: deprecate av_init_packet() avcodec/cri: use av_packet_alloc() to allocate packets avcodec/frame_thread_encoder: remove av_init_packet() call avcodec/mmal: use av_packet_alloc() to allocate packets avcodec/libxvid: use av_packet_alloc() to allocate packets avcodec/mpegvideo_enc: use av_packet_alloc() to allocate packets avcodec/pthread_frame: use av_packet_alloc() to allocate packets avcodec/tdsc: use av_packet_alloc() to allocate packets avcodec/tiff: use av_packet_alloc() to allocate AVPackets avcodec/webp: use av_packet_alloc() to allocate packets avcodec/tests/avpacket: use av_packet_alloc() to allocate packets avformat/amvenc: use av_packet_alloc() to allocate packets avformat/asfdec_o: use av_packet_alloc() to allocate packets avformat/avidec: use av_packet_alloc() to allocate packets avformat/avienc: use av_packet_alloc() to allocate packets avformat/dv: use av_packet_alloc() to allocate packets avformat/flac_picture: replace call to av_init_packet() avformat/id3v2: replace call to av_init_packet() avformat/flacdec: use av_packet_alloc() to allocate packets avformat/hls: use av_packet_alloc() to allocate packets avformat/matroskadec: use av_packet_alloc() to allocate packets avformat/matroskaenc: use av_packet_alloc() to allocate packets avformat/mux: use av_packet_alloc() to allocate packets avformat/movenc: use av_packet_alloc() to allocate packets avformat/mpegts: use av_packet_alloc() to allocate packets avformat/mpegtsenc: use av_packet_alloc() to allocate packets avformat/rtpdec: use av_packet_alloc() to allocate packets avformat/rtpenc_mpegts: use av_packet_alloc() to allocate packets avformat/utils: use av_packet_alloc() to allocate packets avformat/subtitles: use av_packet_alloc() to allocate packets avformat/wc3movie: use av_packet_alloc() to allocate packets avformat/tests/fifo_muxer: use av_packet_alloc() to allocate packets avformat/tests/movenc: use av_packet_alloc() to allocate packets avdevice/decklink_dec: stop using av_init_packet() avdevice/xcbgrab: stop using av_init_packet() avfilter/vf_mcdeint: use av_packet_alloc() to allocate packets avfilter/vf_uspp: use av_packet_alloc() to allocate packets tools/pktdumper: use av_packet_alloc() to allocate packets tools/target_dec_fuzzer: use av_packet_alloc() to allocate packets tools/target_dem_fuzzer: use av_packet_alloc() to allocate packets tools/target_bsf_fuzzer: use av_packet_alloc() to allocate packets tests/api/api-flac-test: use av_packet_alloc() to allocate packets doc/examples/demuxing_decoding: use av_packet_alloc() to allocate packets doc/examples/transcode_aac: use av_packet_alloc() to allocate packets doc/examples/transcoding: use av_packet_alloc() to allocate packets doc/examples/vaapi_encode: use av_packet_alloc() to allocate packets doc/examples/vaapi_transcode: use av_packet_alloc() to allocate packets fftools/ffprobe: use av_packet_alloc() to allocate packets fftools/ffmpeg: use av_packet_alloc() to allocate packets fftools/ffplay: use av_packet_alloc() to allocate packets doc/examples/demuxing_decoding.c | 25 +-- doc/examples/transcode_aac.c | 46 +++-- doc/examples/transcoding.c | 48 +++-- doc/examples/vaapi_encode.c | 16 +- doc/examples/vaapi_transcode.c | 45 +++-- fftools/ffmpeg.c | 318 ++++++++++++++++-------------- fftools/ffmpeg.h | 4 + fftools/ffmpeg_opt.c | 5 +- fftools/ffplay.c | 204 +++++++++++-------- fftools/ffprobe.c | 34 ++-- libavcodec/avpacket.c | 23 ++- libavcodec/cri.c | 16 +- libavcodec/frame_thread_encoder.c | 3 +- libavcodec/libxvid.c | 13 +- libavcodec/mmaldec.c | 15 +- libavcodec/mpegvideo_enc.c | 23 ++- libavcodec/packet.h | 23 ++- libavcodec/pthread_frame.c | 20 +- libavcodec/tdsc.c | 14 +- libavcodec/tests/avpacket.c | 19 +- libavcodec/tiff.c | 14 +- libavcodec/version.h | 3 + libavcodec/webp.c | 24 ++- libavdevice/decklink_dec.cpp | 12 +- libavdevice/iec61883.c | 2 +- libavdevice/xcbgrab.c | 4 - libavfilter/vf_mcdeint.c | 13 +- libavfilter/vf_uspp.c | 14 +- libavformat/amvenc.c | 41 ++-- libavformat/asfdec_o.c | 63 +++--- libavformat/avformat.h | 4 + libavformat/avidec.c | 24 ++- libavformat/avienc.c | 18 +- libavformat/dv.c | 56 ++++-- libavformat/flac_picture.c | 2 +- libavformat/flacdec.c | 20 +- libavformat/hls.c | 73 +++---- libavformat/id3v2.c | 2 +- libavformat/internal.h | 6 + libavformat/jacosubdec.c | 2 +- libavformat/matroskadec.c | 17 +- libavformat/matroskaenc.c | 21 +- libavformat/movenc.c | 116 ++++++----- libavformat/movenc.h | 4 +- libavformat/movenchint.c | 19 +- libavformat/mpeg.c | 4 +- libavformat/mpegts.c | 36 ++-- libavformat/mpegtsenc.c | 19 +- libavformat/mpsubdec.c | 4 +- libavformat/mux.c | 44 +++-- libavformat/options.c | 9 + libavformat/rtpdec.c | 2 +- libavformat/rtpdec_qt.c | 63 +++--- libavformat/rtpenc_mpegts.c | 23 ++- libavformat/subtitles.c | 64 +++--- libavformat/subtitles.h | 2 +- libavformat/tedcaptionsdec.c | 4 +- libavformat/tests/fifo_muxer.c | 28 ++- libavformat/tests/movenc.c | 81 ++++---- libavformat/utils.c | 101 ++++++---- libavformat/wc3movie.c | 21 +- tests/api/api-flac-test.c | 21 +- tools/pktdumper.c | 23 ++- tools/target_bsf_fuzzer.c | 33 ++-- tools/target_dec_fuzzer.c | 73 ++++--- tools/target_dem_fuzzer.c | 13 +- 66 files changed, 1259 insertions(+), 897 deletions(-) -- 2.30.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".