cbs_h2645.c File Reference
Go to the source code of this file.
Macros
#define
SUBSCRIPTS(subs, ...) (subs > 0 ? ((int[subs + 1]){ subs, __VA_ARGS__ }) :
NULL)
#define
ue(
name, range_min, range_max)
xue(
name, current->
name, range_min, range_max, 0, )
#define
se(
name, range_min, range_max)
xse(
name, current->
name, range_min, range_max, 0, )
#define
us(
width,
name, range_min, range_max, subs, ...)
xu(
width,
name, current->
name, range_min, range_max, subs, __VA_ARGS__)
#define
ues(
name, range_min, range_max, subs, ...)
xue(
name, current->
name, range_min, range_max, subs, __VA_ARGS__)
#define
is(
width,
name, range_min, range_max, subs, ...)
xi(
width,
name, current->
name, range_min, range_max, subs, __VA_ARGS__)
#define
ses(
name, range_min, range_max, subs, ...)
xse(
name, current->
name, range_min, range_max, subs, __VA_ARGS__)
#define
xu(
width,
name, var, range_min, range_max, subs, ...)
#define
xue(
name, var, range_min, range_max, subs, ...)
#define
xi(
width,
name, var, range_min, range_max, subs, ...)
#define
xse(
name, var, range_min, range_max, subs, ...)
#define
xu(
width,
name, var, range_min, range_max, subs, ...)
#define
xue(
name, var, range_min, range_max, subs, ...)
#define
xi(
width,
name, var, range_min, range_max, subs, ...)
#define
xse(
name, var, range_min, range_max, subs, ...)
Functions
Find the type descriptor for the given payload type.
More...
Variables
Macro Definition Documentation
◆ HEADER
◆ CHECK
Value: do { \
err = (call); \
if (err < 0) \
return err; \
} while (0)
Definition at line 226 of file cbs_h2645.c.
◆ FUNC_NAME2
#define FUNC_NAME2
(
rw,
codec,
)
cbs_ ## codec ##
_ ## rw ##
_ ##
name
◆ FUNC_NAME1
#define FUNC_NAME1
(
rw,
codec,
◆ FUNC_H264
◆ FUNC_H265
◆ FUNC_H266
◆ FUNC_SEI
◆ SEI_FUNC
Value:
RWContext *rw, void *cur, \
SEIMessageState *
state) \
{ \
} \
Definition at line 239 of file cbs_h2645.c.
◆ SUBSCRIPTS
#define SUBSCRIPTS
(
subs,
...
)
(subs > 0 ? ((int[subs + 1]){ subs, __VA_ARGS__ }) :
NULL)
◆ flag
◆ ue
- Examples
- decode_audio.c, decode_video.c, demux_decode.c, encode_audio.c, encode_video.c, extract_mvs.c, ffhash.c, filter_audio.c, hw_decode.c, mux.c, qsv_decode.c, qsv_transcode.c, remux.c, resample_audio.c, scale_video.c, and transcode.c.
Definition at line 256 of file cbs_h2645.c.
◆ ib
◆ se
◆ us
range_min,
range_max,
subs,
...
◆ ubs
◆ flags
subs,
...
)
xu(1,
name, current->
name, 0, 1, subs, __VA_ARGS__)
◆ ues
range_min,
range_max,
subs,
...
)
xue(
name, current->
name, range_min, range_max, subs, __VA_ARGS__)
◆ is
range_min,
range_max,
subs,
...
◆ ibs
◆ ses
range_min,
range_max,
subs,
...
)
xse(
name, current->
name, range_min, range_max, subs, __VA_ARGS__)
◆ fixed
Value: do { \
av_unused uint32_t fixed_value =
value; \
} while (0)
Definition at line 278 of file cbs_h2645.c.
◆ READ
◆ READWRITE [1/2]
◆ RWContext [1/2]
◆ ub [1/2]
◆ xu [1/2]
var,
range_min,
range_max,
subs,
...
)
Value: do { \
&
value, range_min, range_max)); \
} while (0)
Definition at line 406 of file cbs_h2645.c.
◆ xue [1/2]
var,
range_min,
range_max,
subs,
...
)
Value: do { \
&
value, range_min, range_max)); \
} while (0)
Definition at line 412 of file cbs_h2645.c.
◆ xi [1/2]
var,
range_min,
range_max,
subs,
...
)
Value: do { \
&
value, range_min, range_max)); \
} while (0)
Definition at line 418 of file cbs_h2645.c.
◆ xse [1/2]
var,
range_min,
range_max,
subs,
...
)
Value: do { \
&
value, range_min, range_max)); \
} while (0)
Definition at line 424 of file cbs_h2645.c.
◆ infer [1/2]
◆ more_rbsp_data [1/2]
◆ bit_position [1/2]
◆ byte_alignment [1/2]
◆ allocate [1/3]
◆ FUNC [1/8]
◆ allocate [2/3]
Value: do { \
name =
name ## _ref->data; \
} while (0)
Definition at line 446 of file cbs_h2645.c.
◆ FUNC [2/8]
◆ FUNC [3/8]
◆ FUNC [4/8]
◆ WRITE
◆ READWRITE [2/2]
◆ RWContext [2/2]
◆ ub [2/2]
Value: do { \
uint32_t
value = current->name; \
} while (0)
Definition at line 401 of file cbs_h2645.c.
◆ xu [2/2]
var,
range_min,
range_max,
subs,
...
)
Value: do { \
value, range_min, range_max)); \
} while (0)
Definition at line 406 of file cbs_h2645.c.
◆ xue [2/2]
var,
range_min,
range_max,
subs,
...
)
Value: do { \
value, range_min, range_max)); \
} while (0)
Definition at line 412 of file cbs_h2645.c.
◆ xi [2/2]
var,
range_min,
range_max,
subs,
...
)
Value: do { \
value, range_min, range_max)); \
} while (0)
Definition at line 418 of file cbs_h2645.c.
◆ xse [2/2]
var,
range_min,
range_max,
subs,
...
)
Value: do { \
value, range_min, range_max)); \
} while (0)
Definition at line 424 of file cbs_h2645.c.
◆ infer [2/2]
Value: do { \
if (current->name != (
value)) { \
"%s does not match inferred value: " \
"%"PRId64", but should be %"PRId64".\n", \
} \
} while (0)
Definition at line 431 of file cbs_h2645.c.
◆ more_rbsp_data [2/2]
#define more_rbsp_data
(
var )
(var)
◆ bit_position [2/2]
◆ byte_alignment [2/2]
◆ allocate [3/3]
Value: do { \
"for writing.\n", #
name); \
} \
} while (0)
Definition at line 446 of file cbs_h2645.c.
◆ FUNC [5/8]
◆ FUNC [6/8]
◆ FUNC [7/8]
◆ FUNC [8/8]
◆ cbs_h2645_replace_ps
#define cbs_h2645_replace_ps
(
h26n,
ps_name,
ps_var,
id_element
)
Value:
{ \
CodedBitstreamH26 ## h26n ## Context *priv =
ctx->
priv_data; \
H26 ## h26n ## Raw ## ps_name *ps_var = unit->content; \
unsigned int id = ps_var->id_element; \
int err = ff_cbs_make_unit_refcounted(
ctx, unit); \
if (err < 0) \
return err; \
if (priv->ps_var[id] == priv->active_ ## ps_var) \
priv->active_ ## ps_var =
NULL ; \
av_assert0(unit->content_ref); \
av_refstruct_replace(&priv->ps_var[id], unit->content_ref); \
return 0; \
}
Definition at line 759 of file cbs_h2645.c.
◆ cbs_h266_replace_ps
#define cbs_h266_replace_ps
(
h26n,
ps_name,
ps_var,
id_element
)
Value:
{ \
CodedBitstreamH26 ## h26n ## Context *priv =
ctx->
priv_data; \
H26 ## h26n ## Raw ## ps_name *ps_var = unit->content; \
unsigned int id = ps_var->id_element; \
int err = ff_cbs_make_unit_refcounted(
ctx, unit); \
if (err < 0) \
return err; \
av_assert0(unit->content_ref); \
av_refstruct_replace(&priv->ps_var[id], unit->content_ref); \
return 0; \
}
◆ SEI_MESSAGE_RW
#define SEI_MESSAGE_RW
(
codec,
)
Value: .read = cbs_ ## codec ## _read_ ##
name ## _internal, \
.write = cbs_ ## codec ## _write_ ##
name ## _internal
Definition at line 2149 of file cbs_h2645.c.
Function Documentation
◆ cbs_read_ue_golomb()
const char *
name,
const int *
subscripts,
uint32_t *
write_to,
uint32_t
range_min,
uint32_t
range_max
)
static
◆ cbs_read_se_golomb()
const char *
name,
const int *
subscripts,
)
static
◆ cbs_write_ue_golomb()
const char *
name,
const int *
subscripts,
uint32_t
value,
uint32_t
range_min,
uint32_t
range_max
)
static
◆ cbs_write_se_golomb()
const char *
name,
const int *
subscripts,
)
static
◆ cbs_h265_payload_extension_present()
static int cbs_h265_payload_extension_present
(
GetBitContext *
gbc,
uint32_t
payload_size,
int
cur_pos
)
static
◆ cbs_h2645_read_more_rbsp_data()
◆ cbs_h2645_fragment_add_nals()
◆ cbs_h2645_split_fragment()
◆ cbs_h2645_replace_ps()
cbs_h2645_replace_ps
(
cbs_h2645_replace_ps(
4,
cbs_h2645_replace_ps(
SPS,
cbs_h2645_replace_ps(
sps,
seq_parameter_set_id
)
◆ cbs_h266_replace_ph()
◆ cbs_h264_read_nal_unit()
◆ cbs_h265_read_nal_unit()
◆ cbs_h266_read_nal_unit()
◆ cbs_h2645_write_slice_data()
const uint8_t *
data,
size_t
data_size,
int
data_bit_start
)
static
◆ cbs_h264_write_nal_unit()
◆ cbs_h265_write_nal_unit()
◆ cbs_h264_discarded_nal_unit()
◆ cbs_h265_discarded_nal_unit()
◆ cbs_h266_write_nal_unit()
◆ cbs_h2645_unit_requires_zero_byte()
static int cbs_h2645_unit_requires_zero_byte
(
enum
AVCodecID
codec_id,
int
nal_unit_index
)
static
◆ cbs_h2645_assemble_fragment()
◆ cbs_h264_flush()
◆ cbs_h264_close()
◆ cbs_h265_flush()
◆ cbs_h265_close()
◆ cbs_h266_flush()
◆ cbs_h266_close()
◆ cbs_h264_free_sei()
◆ cbs_h265_free_sei()
◆ cbs_h266_free_slice()
◆ cbs_h266_free_sei()
◆ ff_cbs_sei_find_type()
Variable Documentation
◆ cbs_h264_unit_types
◆ cbs_h265_unit_types
◆ cbs_h266_unit_types
◆ ff_cbs_type_h264
◆ ff_cbs_type_h265
◆ ff_cbs_type_h266
◆ cbs_sei_common_types
◆ cbs_sei_h264_types
◆ cbs_sei_h265_types
◆ cbs_sei_h266_types
◆ cbs_sei_h274_types
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option name
#define CBS_UNIT_TYPE_COMPLEX(type, structure, free_func)
Filter the word "frame" indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample they are references to shared objects When the negotiation mechanism computes the intersection of the formats supported at each end of a all references to both lists are replaced with a reference to the intersection And when a single format is eventually chosen for a link amongst the remaining all references to the list are updated That means that if a filter requires that its input and output have the same format amongst a supported all it has to do is use a reference to the same list of formats query_formats can leave some formats unset and return AVERROR(EAGAIN) to cause the negotiation mechanism toagain later. That can be used by filters with complex requirements to use the format negotiated on one link to set the formats supported on another. Frame references ownership and permissions
static av_cold void cbs_h265_close(CodedBitstreamContext *ctx)
static av_cold void cbs_h264_close(CodedBitstreamContext *ctx)
static const CodedBitstreamUnitTypeDescriptor cbs_h266_unit_types[]
Context structure for coded bitstream operations.
static av_cold void cbs_h266_flush(CodedBitstreamContext *ctx)
static int cbs_h2645_split_fragment(CodedBitstreamContext *ctx, CodedBitstreamFragment *frag, int header)
Coded bitstream unit structure.
static av_cold void cbs_h264_flush(CodedBitstreamContext *ctx)
static av_cold void close(AVCodecParserContext *s)
static void cbs_h264_free_sei(AVRefStructOpaque unused, void *content)
#define CBS_UNIT_TYPE_INTERNAL_REF(type, structure, ref_field)
static av_cold void cbs_h265_flush(CodedBitstreamContext *ctx)
static void * av_refstruct_allocz(size_t size)
Equivalent to av_refstruct_alloc_ext(size, 0, NULL, NULL)
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
static int FUNC() extension_data(CodedBitstreamContext *ctx, RWContext *rw, H265RawExtensionData *current)
static int cbs_read_ue_golomb(CodedBitstreamContext *ctx, GetBitContext *gbc, const char *name, const int *subscripts, uint32_t *write_to, uint32_t range_min, uint32_t range_max)
#define SEI_MESSAGE_TYPE_END
static int cbs_h266_read_nal_unit(CodedBitstreamContext *ctx, CodedBitstreamUnit *unit)
static int cbs_h265_write_nal_unit(CodedBitstreamContext *ctx, CodedBitstreamUnit *unit, PutBitContext *pbc)
void(* flush)(AVBSFContext *ctx)
#define CBS_UNIT_RANGE_INTERNAL_REF(range_start, range_end, structure, ref_field)
static int FUNC() sei(CodedBitstreamContext *ctx, RWContext *rw, H264RawSEI *current)
static const CodedBitstreamUnitTypeDescriptor cbs_h264_unit_types[]
#define CBS_UNIT_TYPE_POD(type_, structure)
static int cbs_h264_discarded_nal_unit(CodedBitstreamContext *ctx, const CodedBitstreamUnit *unit, enum AVDiscard skip)
#define CBS_UNIT_TYPES_COMPLEX(types, structure, free_func)
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default value
@ SEI_TYPE_DISPLAY_ORIENTATION
static int cbs_write_se_golomb(CodedBitstreamContext *ctx, PutBitContext *pbc, const char *name, const int *subscripts, int32_t value, int32_t range_min, int32_t range_max)
#define SEI_MESSAGE_RW(codec, name)
#define CBS_UNIT_TYPE_END_OF_LIST
static int cbs_read_se_golomb(CodedBitstreamContext *ctx, GetBitContext *gbc, const char *name, const int *subscripts, int32_t *write_to, int32_t range_min, int32_t range_max)
AVBufferRef * av_buffer_allocz(size_t size)
Same as av_buffer_alloc(), except the returned buffer will be initialized to zero.
#define AV_INPUT_BUFFER_PADDING_SIZE
@ H264_NAL_AUXILIARY_SLICE
static int cbs_write_ue_golomb(CodedBitstreamContext *ctx, PutBitContext *pbc, const char *name, const int *subscripts, uint32_t value, uint32_t range_min, uint32_t range_max)
static int cbs_h265_discarded_nal_unit(CodedBitstreamContext *ctx, const CodedBitstreamUnit *unit, enum AVDiscard skip)
static void cbs_h265_free_sei(AVRefStructOpaque unused, void *content)
static int cbs_h265_read_nal_unit(CodedBitstreamContext *ctx, CodedBitstreamUnit *unit)
#define CBS_UNIT_TYPES_INTERNAL_REF(types, structure, ref_field)
static const CodedBitstreamUnitTypeDescriptor cbs_h265_unit_types[]
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
@ SEI_TYPE_FRAME_FIELD_INFO
static int cbs_h264_read_nal_unit(CodedBitstreamContext *ctx, CodedBitstreamUnit *unit)
@ SEI_TYPE_FILM_GRAIN_CHARACTERISTICS
static av_cold void cbs_h266_close(CodedBitstreamContext *ctx)
void * priv_data
Format private data.
static int cbs_h264_write_nal_unit(CodedBitstreamContext *ctx, CodedBitstreamUnit *unit, PutBitContext *pbc)
static int cbs_h2645_assemble_fragment(CodedBitstreamContext *ctx, CodedBitstreamFragment *frag)
static int cbs_h266_write_nal_unit(CodedBitstreamContext *ctx, CodedBitstreamUnit *unit, PutBitContext *pbc)
#define SUBSCRIPTS(subs,...)
Generated on Thu Oct 16 2025 19:23:56 for FFmpeg by
doxygen
1.8.17