[FFmpeg-devel] [PATCH 00/18] AVPacketList public API
James Almer
jamrial at gmail.com
Wed Nov 18 18:52:29 EET 2020
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
More information about the ffmpeg-devel
mailing list