diff mbox series

[FFmpeg-devel,v4,04/21] cbs: Add macros to support defining unit type tables

Message ID 20200223234124.17689-4-sw@jkqxz.net
State New
Headers show
Series [FFmpeg-devel,v4,01/21] cbs: Mention all codecs in unit type comment
Related show

Checks

Context Check Description
andriy/ffmpeg-patchwork pending
andriy/ffmpeg-patchwork success Applied patch
andriy/ffmpeg-patchwork success Configure finished
andriy/ffmpeg-patchwork success Make finished
andriy/ffmpeg-patchwork success Make fate finished

Commit Message

Mark Thompson Feb. 23, 2020, 11:41 p.m. UTC
---
 libavcodec/cbs_internal.h | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)
diff mbox series

Patch

diff --git a/libavcodec/cbs_internal.h b/libavcodec/cbs_internal.h
index 615f514a85..2922878ed0 100644
--- a/libavcodec/cbs_internal.h
+++ b/libavcodec/cbs_internal.h
@@ -166,6 +166,30 @@  int ff_cbs_write_signed(CodedBitstreamContext *ctx, PutBitContext *pbc,
 #define MIN_INT_BITS(length) (-(INT64_C(1) << ((length) - 1)))
 
 
+#define CBS_UNIT_TYPE_POD(type, structure) { \
+        .nb_unit_types  = 1, \
+        .unit_types     = { type }, \
+        .content_type   = CBS_CONTENT_TYPE_POD, \
+        .content_size   = sizeof(structure), \
+    }
+#define CBS_UNIT_TYPE_INTERNAL_REF(type, structure, ref_field) { \
+        .nb_unit_types  = 1, \
+        .unit_types     = { type }, \
+        .content_type   = CBS_CONTENT_TYPE_INTERNAL_REFS, \
+        .content_size   = sizeof(structure), \
+        .nb_ref_offsets = 1, \
+        .ref_offsets    = { offsetof(structure, ref_field) }, \
+    }
+#define CBS_UNIT_TYPE_COMPLEX(type, structure, free_func) { \
+        .nb_unit_types  = 1, \
+        .unit_types     = { type }, \
+        .content_type   = CBS_CONTENT_TYPE_COMPLEX, \
+        .content_size   = sizeof(structure), \
+        .content_free   = free_func, \
+    }
+#define CBS_UNIT_TYPE_END_OF_LIST { .nb_unit_types = 0 }
+
+
 extern const CodedBitstreamType ff_cbs_type_av1;
 extern const CodedBitstreamType ff_cbs_type_h264;
 extern const CodedBitstreamType ff_cbs_type_h265;