diff options
author | Hendrik Leppkes <h.leppkes@gmail.com> | 2015-10-29 16:18:03 +0300 |
---|---|---|
committer | Hendrik Leppkes <h.leppkes@gmail.com> | 2015-10-29 16:18:03 +0300 |
commit | 3ec049b85dacdb5e3f598e4ddab87b1d5a877783 (patch) | |
tree | 9f2b1b7d6a9c0715155d162f5bd993b945361e71 /libavcodec/avpacket.c | |
parent | 87a6f532b46fb16eea07943325f5d322d08e13ed (diff) | |
parent | a9a60106370f862e191dea58e748626da6a8fe97 (diff) |
Merge commit 'a9a60106370f862e191dea58e748626da6a8fe97'
* commit 'a9a60106370f862e191dea58e748626da6a8fe97':
avpacket: Provide an alloc and a free function for the struct
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
Diffstat (limited to 'libavcodec/avpacket.c')
-rw-r--r-- | libavcodec/avpacket.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/libavcodec/avpacket.c b/libavcodec/avpacket.c index 34ef2659ef..1cc10eba05 100644 --- a/libavcodec/avpacket.c +++ b/libavcodec/avpacket.c @@ -48,6 +48,26 @@ FF_ENABLE_DEPRECATION_WARNINGS pkt->side_data_elems = 0; } +AVPacket *av_packet_alloc(void) +{ + AVPacket *pkt = av_mallocz(sizeof(AVPacket)); + if (!pkt) + return pkt; + + av_packet_unref(pkt); + + return pkt; +} + +void av_packet_free(AVPacket **pkt) +{ + if (!pkt || !*pkt) + return; + + av_packet_unref(*pkt); + av_freep(pkt); +} + static int packet_alloc(AVBufferRef **buf, int size) { int ret; @@ -542,6 +562,19 @@ fail: return ret; } +AVPacket *av_packet_clone(AVPacket *src) +{ + AVPacket *ret = av_packet_alloc(); + + if (!ret) + return ret; + + if (av_packet_ref(ret, src)) + av_packet_free(&ret); + + return ret; +} + void av_packet_move_ref(AVPacket *dst, AVPacket *src) { *dst = *src; |