summaryrefslogtreecommitdiff
path: root/libavcodec/cbs_mpeg2.h
diff options
context:
space:
mode:
authorMark Thompson <sw@jkqxz.net>2018-02-11 00:51:33 +0000
committerMark Thompson <sw@jkqxz.net>2018-02-20 22:04:12 +0000
commitce5870a3a8f2b10668ee4f04c2ae0287f66f31b2 (patch)
tree612022db516c9a96d051e9a55c89b503b99d5112 /libavcodec/cbs_mpeg2.h
parent13ca5d34ba5c473211daaae0a101123bcaada3e6 (diff)
downloadffmpeg-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.h5
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;