// Split frag->data into coded bitstream units, creating the
// frag->units array. Fill data but not content on each unit.
- // header is set if the fragment came from a header block, which
- // may require different parsing for some codecs (e.g. the AVCC
- // header in H.264).
+ // The header argument should be set if the fragment came from
+ // a header block, which may require different parsing for some
+ // codecs (e.g. the AVCC header in H.264).
int (*split_fragment)(CodedBitstreamContext *ctx,
CodedBitstreamFragment *frag,
int header);
int (*assemble_fragment)(CodedBitstreamContext *ctx,
CodedBitstreamFragment *frag);
- // Free the content and data of a single unit.
- void (*free_unit)(CodedBitstreamUnit *unit);
-
// Free the codec internal state.
void (*close)(CodedBitstreamContext *ctx);
} CodedBitstreamType;
int width, const char *name, uint32_t value,
uint32_t range_min, uint32_t range_max);
+// The largest value representable in N bits, suitable for use as
+// range_max in the above functions.
+#define MAX_UINT_BITS(length) ((UINT64_C(1) << (length)) - 1)
+
extern const CodedBitstreamType ff_cbs_type_h264;
extern const CodedBitstreamType ff_cbs_type_h265;