#include <stddef.h>
#include <stdint.h>
#include "libavutil/log.h"
#include "cbs.h"
#include "codec_id.h"
#include "get_bits.h"
#include "put_bits.h"
#include "refstruct.h"
Go to the source code of this file.
|
#define | MAX_UINT_BITS(length) ((UINT64_C(1) << (length)) - 1) |
|
#define | MAX_INT_BITS(length) ((INT64_C(1) << ((length) - 1)) - 1) |
|
#define | MIN_INT_BITS(length) (-(INT64_C(1) << ((length) - 1))) |
|
#define | CBS_TRACE_READ_START() |
|
#define | CBS_TRACE_READ_END() |
|
#define | CBS_TRACE_READ_END_NO_SUBSCRIPTS() |
|
#define | CBS_TRACE_READ_END_VALUE_ONLY() |
|
#define | CBS_TRACE_WRITE_START() |
|
#define | CBS_TRACE_WRITE_END() |
|
#define | CBS_TRACE_WRITE_END_NO_SUBSCRIPTS() |
|
#define | CBS_TRACE_WRITE_END_VALUE_ONLY() |
|
#define | TYPE_LIST(...) { __VA_ARGS__ } |
|
#define | CBS_UNIT_TYPE_POD(type_, structure) |
|
#define | CBS_UNIT_RANGE_POD(range_start, range_end, structure) |
|
#define | CBS_UNIT_TYPES_INTERNAL_REF(types, structure, ref_field) |
|
#define | CBS_UNIT_TYPE_INTERNAL_REF(type, structure, ref_field) CBS_UNIT_TYPES_INTERNAL_REF((type), structure, ref_field) |
|
#define | CBS_UNIT_RANGE_INTERNAL_REF(range_start, range_end, structure, ref_field) |
|
#define | CBS_UNIT_TYPES_COMPLEX(types, structure, free_func) |
|
#define | CBS_UNIT_TYPE_COMPLEX(type, structure, free_func) CBS_UNIT_TYPES_COMPLEX((type), structure, free_func) |
|
#define | CBS_UNIT_TYPE_END_OF_LIST { .nb_unit_types = 0 } |
|
|
void | ff_cbs_trace_header (CodedBitstreamContext *ctx, const char *name) |
|
int | ff_cbs_read_unsigned (CodedBitstreamContext *ctx, GetBitContext *gbc, int width, const char *name, const int *subscripts, uint32_t *write_to, uint32_t range_min, uint32_t range_max) |
|
int | ff_cbs_read_simple_unsigned (CodedBitstreamContext *ctx, GetBitContext *gbc, int width, const char *name, uint32_t *write_to) |
|
int | ff_cbs_write_unsigned (CodedBitstreamContext *ctx, PutBitContext *pbc, int width, const char *name, const int *subscripts, uint32_t value, uint32_t range_min, uint32_t range_max) |
|
int | ff_cbs_write_simple_unsigned (CodedBitstreamContext *ctx, PutBitContext *pbc, int width, const char *name, uint32_t value) |
|
int | ff_cbs_read_signed (CodedBitstreamContext *ctx, GetBitContext *gbc, int width, const char *name, const int *subscripts, int32_t *write_to, int32_t range_min, int32_t range_max) |
|
int | ff_cbs_write_signed (CodedBitstreamContext *ctx, PutBitContext *pbc, int width, const char *name, const int *subscripts, int32_t value, int32_t range_min, int32_t range_max) |
|
◆ MAX_UINT_BITS
#define MAX_UINT_BITS |
( |
|
length | ) |
((UINT64_C(1) << (length)) - 1) |
◆ MAX_INT_BITS
#define MAX_INT_BITS |
( |
|
length | ) |
((INT64_C(1) << ((length) - 1)) - 1) |
◆ MIN_INT_BITS
#define MIN_INT_BITS |
( |
|
length | ) |
(-(INT64_C(1) << ((length) - 1))) |
◆ CBS_TRACE_READ_START
#define CBS_TRACE_READ_START |
( |
| ) |
|
Value:
do { \
trace_start = *gbc; \
} while (0)
Definition at line 208 of file cbs_internal.h.
◆ CBS_TRACE_READ_END
#define CBS_TRACE_READ_END |
( |
| ) |
|
Value: do { \
if (
ctx->trace_enable) { \
av_assert0(start_position <= end_position); \
ctx->trace_read_callback(
ctx->trace_context, &trace_start, \
end_position - start_position, \
} \
} while (0)
Definition at line 216 of file cbs_internal.h.
◆ CBS_TRACE_READ_END_NO_SUBSCRIPTS
#define CBS_TRACE_READ_END_NO_SUBSCRIPTS |
( |
| ) |
|
Value: do { \
const
int *subscripts =
NULL; \
CBS_TRACE_READ_END(); \
} while (0)
Definition at line 229 of file cbs_internal.h.
◆ CBS_TRACE_READ_END_VALUE_ONLY
#define CBS_TRACE_READ_END_VALUE_ONLY |
( |
| ) |
|
Value: do { \
if (
ctx->trace_enable) { \
ctx->trace_read_callback(
ctx->trace_context, &trace_start, 0, \
} \
} while (0)
Definition at line 237 of file cbs_internal.h.
◆ CBS_TRACE_WRITE_START
#define CBS_TRACE_WRITE_START |
( |
| ) |
|
Value: int start_position; \
do { \
} while (0)
Definition at line 246 of file cbs_internal.h.
◆ CBS_TRACE_WRITE_END
#define CBS_TRACE_WRITE_END |
( |
| ) |
|
Value: do { \
if (
ctx->trace_enable) { \
av_assert0(start_position <= end_position); \
ctx->trace_write_callback(
ctx->trace_context, pbc, \
end_position - start_position, \
} \
} while (0)
Definition at line 254 of file cbs_internal.h.
◆ CBS_TRACE_WRITE_END_NO_SUBSCRIPTS
#define CBS_TRACE_WRITE_END_NO_SUBSCRIPTS |
( |
| ) |
|
Value: do { \
const
int *subscripts =
NULL; \
CBS_TRACE_WRITE_END(); \
} while (0)
Definition at line 266 of file cbs_internal.h.
◆ CBS_TRACE_WRITE_END_VALUE_ONLY
#define CBS_TRACE_WRITE_END_VALUE_ONLY |
( |
| ) |
|
Value: do { \
if (
ctx->trace_enable) { \
init_put_bits(&
tmp, pbc->buf, start_position); \
skip_put_bits(&
tmp, start_position); \
ctx->trace_write_callback(
ctx->trace_context, &
tmp, 0, \
} \
} while (0)
Definition at line 276 of file cbs_internal.h.
◆ TYPE_LIST
#define TYPE_LIST |
( |
|
... | ) |
{ __VA_ARGS__ } |
◆ CBS_UNIT_TYPE_POD
#define CBS_UNIT_TYPE_POD |
( |
|
type_, |
|
|
|
structure |
|
) |
| |
Value: { \
.nb_unit_types = 1, \
.unit_type.list = { type_ }, \
.content_size = sizeof(structure), \
.
type.ref = { .nb_offsets = 0 }, \
}
Definition at line 288 of file cbs_internal.h.
◆ CBS_UNIT_RANGE_POD
#define CBS_UNIT_RANGE_POD |
( |
|
range_start, |
|
|
|
range_end, |
|
|
|
structure |
|
) |
| |
Value: { \
.unit_type.range.start = range_start, \
.unit_type.range.end = range_end, \
.content_size = sizeof(structure), \
.
type.ref = { .nb_offsets = 0 }, \
}
Definition at line 295 of file cbs_internal.h.
◆ CBS_UNIT_TYPES_INTERNAL_REF
#define CBS_UNIT_TYPES_INTERNAL_REF |
( |
|
types, |
|
|
|
structure, |
|
|
|
ref_field |
|
) |
| |
Value: { \
.content_size = sizeof(structure), \
.
type.ref = { .nb_offsets = 1, \
.offsets = { offsetof(structure, ref_field) } }, \
}
Definition at line 304 of file cbs_internal.h.
◆ CBS_UNIT_TYPE_INTERNAL_REF
◆ CBS_UNIT_RANGE_INTERNAL_REF
#define CBS_UNIT_RANGE_INTERNAL_REF |
( |
|
range_start, |
|
|
|
range_end, |
|
|
|
structure, |
|
|
|
ref_field |
|
) |
| |
Value: { \
.unit_type.range.start = range_start, \
.unit_type.range.end = range_end, \
.content_size = sizeof(structure), \
.
type.ref = { .nb_offsets = 1, \
.offsets = { offsetof(structure, ref_field) } }, \
}
Definition at line 315 of file cbs_internal.h.
◆ CBS_UNIT_TYPES_COMPLEX
#define CBS_UNIT_TYPES_COMPLEX |
( |
|
types, |
|
|
|
structure, |
|
|
|
free_func |
|
) |
| |
Value: { \
.content_size = sizeof(structure), \
.
type.complex = { .content_free = free_func }, \
}
Definition at line 325 of file cbs_internal.h.
◆ CBS_UNIT_TYPE_COMPLEX
◆ CBS_UNIT_TYPE_END_OF_LIST
#define CBS_UNIT_TYPE_END_OF_LIST { .nb_unit_types = 0 } |
◆ CBSContentType
Enumerator |
---|
CBS_CONTENT_TYPE_INTERNAL_REFS | |
CBS_CONTENT_TYPE_COMPLEX | |
Definition at line 34 of file cbs_internal.h.
◆ anonymous enum
Enumerator |
---|
CBS_MAX_LIST_UNIT_TYPES | |
CBS_MAX_REF_OFFSETS | |
CBS_UNIT_TYPE_RANGE | |
Definition at line 44 of file cbs_internal.h.
◆ ff_cbs_trace_header()
◆ ff_cbs_read_unsigned()
◆ ff_cbs_read_simple_unsigned()
◆ ff_cbs_write_unsigned()
◆ ff_cbs_write_simple_unsigned()
◆ ff_cbs_read_signed()
◆ ff_cbs_write_signed()
◆ ff_cbs_type_av1
◆ ff_cbs_type_h264
◆ ff_cbs_type_h265
◆ ff_cbs_type_h266
◆ ff_cbs_type_jpeg
◆ ff_cbs_type_mpeg2
◆ ff_cbs_type_vp8
◆ ff_cbs_type_vp9