diff options
author | Luca Barbato <lu_zero@gentoo.org> | 2013-07-10 10:52:56 +0200 |
---|---|---|
committer | Luca Barbato <lu_zero@gentoo.org> | 2013-08-10 13:41:35 +0200 |
commit | 5a9a9d4a2abefa63d9a898ce26715453c569e89d (patch) | |
tree | d0cdb9354e5c484bf213b63ef325f9e261fb6bcb /libavcodec/avcodec.h | |
parent | c1076d8479a6c0ee2e0c4b0e2151df5b0228438e (diff) | |
download | ffmpeg-5a9a9d4a2abefa63d9a898ce26715453c569e89d.tar.gz |
lavc: Add refcounted api to AVPacket
Provide a clean way to manipulate packets.
Diffstat (limited to 'libavcodec/avcodec.h')
-rw-r--r-- | libavcodec/avcodec.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index adfd25a230..caf828496d 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -3229,6 +3229,66 @@ uint8_t* av_packet_get_side_data(AVPacket *pkt, enum AVPacketSideDataType type, int *size); /** + * Convenience function to free all the side data stored. + * All the other fields stay untouched. + * + * @param pkt packet + */ +void av_packet_free_side_data(AVPacket *pkt); + +/** + * Setup a new reference to the data described by a given packet + * + * If src is reference-counted, setup dst as a new reference to the + * buffer in src. Otherwise allocate a new buffer in dst and copy the + * data from src into it. + * + * All the other fields are copied from src. + * + * @see av_packet_unref + * + * @param dst Destination packet + * @param src Source packet + * + * @return 0 on success, a negative AVERROR on error. + */ +int av_packet_ref(AVPacket *dst, AVPacket *src); + +/** + * Wipe the packet. + * + * Unreference the buffer referenced by the packet and reset the + * remaining packet fields to their default values. + * + * @param pkt The packet to be unreferenced. + */ +void av_packet_unref(AVPacket *pkt); + +/** + * Move every field in src to dst and reset src. + * + * @see av_packet_unref + * + * @param src Source packet, will be reset + * @param dst Destination packet + */ +void av_packet_move_ref(AVPacket *dst, AVPacket *src); + +/** + * Copy only "properties" fields from src to dst. + * + * Properties for the purpose of this function are all the fields + * beside those related to the packet data (buf, data, size) + * + * @param dst Destination packet + * @param src Source packet + * + * @return 0 on success AVERROR on failure. + * + */ +int av_packet_copy_props(AVPacket *dst, const AVPacket *src); + +/** * @} */ |