Mark Thompson: > --- > libavcodec/cbs_internal.h | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/libavcodec/cbs_internal.h b/libavcodec/cbs_internal.h > index 06a8f9b979..439fa7934b 100644 > --- a/libavcodec/cbs_internal.h > +++ b/libavcodec/cbs_internal.h > @@ -140,6 +140,27 @@ 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) { \ > + .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, \ > + }
Wouldn't it be appropriate to also add (and use) a macro for the common case of a structure with exactly one internal ref? Something like #define CBS_UNIT_TYPE_INTERNAL_REF(type, structure, offset) \ CBS_UNIT_TYPE_INTERNAL_REFS(type, structure, 1, { offsetof(structure, offset) }) > +#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; > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".