This is an attempt at introducing a public packet list API, after the need for it outside of libavformat became evident.
It reuses the existing AVPacketList struct by making it opaque, so we can have a head and tail pointers internally instead of having to expose them in a very awkward way in the functions, like it's currently the case with the private packet list functions. Since AVPacketList is already a public struct, the only way to reuse it was by deprecating all of its fields and scheduling making it opaque in a soname bump >= 2 years from now. James Almer (18): avcodec/packet_internal: add a PacketListEntry struct avformat/internal: make last_in_packet_buffer of type PacketListEntry avcodec/avpacket: make avpriv_packet_* use PacketListEntry avcodec/avpacket: add a new public AVPacketList API avcodec/decode: port to the new packet list API avformat: port AVFormatInternal->packet_buffer to the new packet list API avformat: port AVFormatInternal->raw_packet_buffer to the new packet list API avformat: port AVFormatInternal->parse_queue to the new packet list API avdevice/dshow: port to the new packet list API avdevice/decklink_dec: port to the new packet list API avdevice/vfwcap: port to the new packet list API avformat/ttaenc: port to the new packet list API avformat/mp3enc: port to the new packet list API avformat/flacenc: port to the new packet list API avformat/aiffenc: port to the new packet list API avformat/matroskadec: port to the new packet list API avcodec/avpacket: schedule the removal of avpriv_packet_list_* avcodec/avpacket: make the AVPacketList API thread safe libavcodec/avpacket.c | 189 ++++++++++++++++++++++++++++++++-- libavcodec/decode.c | 20 ++-- libavcodec/internal.h | 1 - libavcodec/packet.h | 88 +++++++++++++++- libavcodec/packet_internal.h | 24 ++++- libavcodec/utils.c | 11 +- libavcodec/version.h | 3 + libavdevice/decklink_common.h | 2 +- libavdevice/decklink_dec.cpp | 53 ++++------ libavdevice/dshow.c | 52 +++++----- libavdevice/vfwcap.c | 49 ++++----- libavformat/aiffenc.c | 22 ++-- libavformat/flacenc.c | 13 ++- libavformat/internal.h | 6 +- libavformat/matroskadec.c | 29 +++--- libavformat/mp3enc.c | 13 ++- libavformat/mux.c | 64 +++++++----- libavformat/mxfenc.c | 23 +++-- libavformat/options.c | 13 +++ libavformat/ttaenc.c | 14 +-- libavformat/utils.c | 128 ++++++++++++++++------- 21 files changed, 583 insertions(+), 234 deletions(-) -- 2.29.2 _______________________________________________ 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".