diff options
author | Mark Thompson <sw@jkqxz.net> | 2018-02-11 00:51:33 +0000 |
---|---|---|
committer | Mark Thompson <sw@jkqxz.net> | 2018-02-20 22:04:12 +0000 |
commit | ce5870a3a8f2b10668ee4f04c2ae0287f66f31b2 (patch) | |
tree | 612022db516c9a96d051e9a55c89b503b99d5112 /libavcodec/cbs_mpeg2.h | |
parent | 13ca5d34ba5c473211daaae0a101123bcaada3e6 (diff) | |
download | ffmpeg-ce5870a3a8f2b10668ee4f04c2ae0287f66f31b2.tar.gz |
cbs: Refcount all the things!
This makes it easier for users of the CBS API to get alloc/free right -
all subelements use the buffer API so that it's clear how to free them.
It also allows eliding some redundant copies: the packet -> fragment copy
disappears after this change if the input packet is refcounted, and more
codec-specific cases are now possible (but not included in this patch).
Diffstat (limited to 'libavcodec/cbs_mpeg2.h')
-rw-r--r-- | libavcodec/cbs_mpeg2.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libavcodec/cbs_mpeg2.h b/libavcodec/cbs_mpeg2.h index 0b6cb998dc..31e57ce36b 100644 --- a/libavcodec/cbs_mpeg2.h +++ b/libavcodec/cbs_mpeg2.h @@ -22,6 +22,8 @@ #include <stddef.h> #include <stdint.h> +#include "libavutil/buffer.h" + enum { MPEG2_START_PICTURE = 0x00, @@ -76,6 +78,7 @@ typedef struct MPEG2RawUserData { uint8_t *user_data; size_t user_data_length; + AVBufferRef *user_data_ref; } MPEG2RawUserData; typedef struct MPEG2RawSequenceExtension { @@ -195,6 +198,7 @@ typedef struct MPEG2RawSliceHeader { size_t extra_information_length; uint8_t *extra_information; + AVBufferRef *extra_information_ref; } MPEG2RawSliceHeader; typedef struct MPEG2RawSlice { @@ -203,6 +207,7 @@ typedef struct MPEG2RawSlice { uint8_t *data; size_t data_size; int data_bit_start; + AVBufferRef *data_ref; } MPEG2RawSlice; |