From a9a60106370f862e191dea58e748626da6a8fe97 Mon Sep 17 00:00:00 2001 From: Luca Barbato Date: Fri, 23 Oct 2015 11:11:34 +0200 Subject: avpacket: Provide an alloc and a free function for the struct Pave the way for having the size of the AVPacket struct not part of the ABI. --- libavcodec/avcodec.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'libavcodec/avcodec.h') diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 9eaa2c6ffb..b47aafaac3 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -3425,6 +3425,40 @@ void avsubtitle_free(AVSubtitle *sub); * @{ */ +/** + * Allocate an AVPacket and set its fields to default values. The resulting + * struct must be freed using av_packet_free(). + * + * @return An AVPacket filled with default values or NULL on failure. + * + * @note this only allocates the AVPacket itself, not the data buffers. Those + * must be allocated through other means such as av_new_packet. + * + * @see av_new_packet + */ +AVPacket *av_packet_alloc(void); + +/** + * Create a new packet that references the same data as src. + * + * This is a shortcut for av_packet_alloc()+av_packet_ref(). + * + * @return newly created AVPacket on success, NULL on error. + * + * @see av_packet_alloc + * @see av_packet_ref + */ +AVPacket *av_packet_clone(AVPacket *src); + +/** + * Free the packet, if the packet is reference counted, it will be + * unreferenced first. + * + * @param packet packet to be freed. The pointer will be set to NULL. + * @note passing NULL is a no-op. + */ +void av_packet_free(AVPacket **pkt); + /** * Initialize optional fields of a packet with default values. * -- cgit v1.2.3