[FFmpeg-devel] [PATCH 3/7] cbs: Add macros to support defining unit type tables

Mark Thompson sw at jkqxz.net
Thu Jan 24 01:01:10 EET 2019


---
 libavcodec/cbs_internal.h | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/libavcodec/cbs_internal.h b/libavcodec/cbs_internal.h
index 667c90cb14..aefe1a81e7 100644
--- a/libavcodec/cbs_internal.h
+++ b/libavcodec/cbs_internal.h
@@ -117,6 +117,27 @@ int ff_cbs_write_unsigned(CodedBitstreamContext *ctx, PutBitContext *pbc,
 #define MAX_UINT_BITS(length) ((UINT64_C(1) << (length)) - 1)
 
 
+#define CBS_UNIT_TYPE_POD(type, structure) { \
+        .unit_type    = type, \
+        .content_type = CBS_CONTENT_TYPE_POD, \
+        .content_size = sizeof(structure), \
+    }
+#define CBS_UNIT_TYPE_INTERNAL_REFS(type, structure, nb_offsets, offsets) { \
+        .unit_type      = type, \
+        .content_type   = CBS_CONTENT_TYPE_INTERNAL_REFS, \
+        .content_size   = sizeof(structure), \
+        .nb_ref_offsets = nb_offsets, \
+        .ref_offsets    = offsets, \
+    }
+#define CBS_UNIT_TYPE_COMPLEX(type, structure, free_func) { \
+        .unit_type     = type, \
+        .content_type  = CBS_CONTENT_TYPE_COMPLEX, \
+        .content_size  = sizeof(structure), \
+        .content_free  = free_func, \
+    }
+#define CBS_UNIT_TYPE_END_OF_LIST { CBS_INVALID_UNIT_TYPE }
+
+
 extern const CodedBitstreamType ff_cbs_type_av1;
 extern const CodedBitstreamType ff_cbs_type_h264;
 extern const CodedBitstreamType ff_cbs_type_h265;
-- 
2.19.2



More information about the ffmpeg-devel mailing list