FFmpeg
Macros | Functions | Variables
cbs_h265.c File Reference
#include "libavutil/mem.h"
#include "libavutil/refstruct.h"
#include "bytestream.h"
#include "cbs.h"
#include "cbs_internal.h"
#include "cbs_h2645.h"
#include "cbs_h265.h"
#include "cbs_sei.h"
#include "get_bits.h"
#include "cbs_h265_syntax_template.c"

Go to the source code of this file.

Macros

#define HEADER(name)
 
#define CHECK(call)
 
#define FUNC_NAME2(rw, codec, name)   cbs_ ## codec ## _ ## rw ## _ ## name
 
#define FUNC_NAME1(rw, codec, name)   FUNC_NAME2(rw, codec, name)
 
#define FUNC_H265(name)   FUNC_NAME1(READWRITE, h265, name)
 
#define FUNC_NAME2_EXPORT(rw, codec, name)   ff_cbs_ ## codec ## _ ## rw ## _ ## name
 
#define FUNC_NAME1_EXPORT(rw, codec, name)   FUNC_NAME2_EXPORT(rw, codec, name)
 
#define FUNC_SEI(name)   FUNC_NAME1_EXPORT(READWRITE, sei, name)
 
#define SEI_FUNC(name, args)
 
#define SUBSCRIPTS(subs, ...)   (subs > 0 ? ((int[subs + 1]){ subs, __VA_ARGS__ }) : NULL)
 
#define u(width, name, range_min, range_max)   xu(width, name, current->name, range_min, range_max, 0, )
 
#define flag(name)   ub(1, name)
 
#define ue(name, range_min, range_max)   xue(name, current->name, range_min, range_max, 0, )
 
#define i(width, name, range_min, range_max)   xi(width, name, current->name, range_min, range_max, 0, )
 
#define ib(width, name)   xi(width, name, current->name, MIN_INT_BITS(width), MAX_INT_BITS(width), 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 ubs(width, name, subs, ...)   xu(width, name, current->name, 0, MAX_UINT_BITS(width), subs, __VA_ARGS__)
 
#define flags(name, subs, ...)   xu(1, name, current->name, 0, 1, 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 ibs(width, name, subs, ...)   xi(width, name, current->name, MIN_INT_BITS(width), MAX_INT_BITS(width), subs, __VA_ARGS__)
 
#define ses(name, range_min, range_max, subs, ...)   xse(name, current->name, range_min, range_max, subs, __VA_ARGS__)
 
#define fixed(width, name, value)
 
#define READ
 
#define READWRITE   read
 
#define RWContext   GetBitContext
 
#define ub(width, name)
 
#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 infer(name, value)
 
#define more_rbsp_data(var)   ((var) = ff_cbs_h2645_read_more_rbsp_data(rw))
 
#define bit_position(rw)   (get_bits_count(rw))
 
#define byte_alignment(rw)   (get_bits_count(rw) % 8)
 
#define allocate(name, size)
 
#define FUNC(name)   FUNC_H265(name)
 
#define WRITE
 
#define READWRITE   write
 
#define RWContext   PutBitContext
 
#define ub(width, name)
 
#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 infer(name, value)
 
#define more_rbsp_data(var)   (var)
 
#define bit_position(rw)   (put_bits_count(rw))
 
#define byte_alignment(rw)   (put_bits_count(rw) % 8)
 
#define allocate(name, size)
 
#define FUNC(name)   FUNC_H265(name)
 
#define cbs_h2645_replace_ps(ps_name, ps_var, id_element)
 
#define SEI_MESSAGE_RW(codec, name)
 

Functions

static int cbs_h265_split_fragment (CodedBitstreamContext *ctx, CodedBitstreamFragment *frag, int header)
 
 cbs_h2645_replace_ps (VPS, vps, vps_video_parameter_set_id)
 
static int cbs_h265_write_nal_unit (CodedBitstreamContext *ctx, CodedBitstreamUnit *unit, PutBitContext *pbc)
 
static int cbs_h265_discarded_nal_unit (CodedBitstreamContext *ctx, const CodedBitstreamUnit *unit, enum AVDiscard skip)
 
static av_cold void cbs_h265_flush (CodedBitstreamContext *ctx)
 
static av_cold void cbs_h265_close (CodedBitstreamContext *ctx)
 
static void cbs_h265_free_sei (AVRefStructOpaque unused, void *content)
 

Variables

static CodedBitstreamUnitTypeDescriptor cbs_h265_unit_types []
 
const SEIMessageTypeDescriptor ff_cbs_sei_h265_types []
 
const CodedBitstreamType ff_cbs_type_h265
 

Macro Definition Documentation

◆ HEADER

#define HEADER (   name)
Value:
do { \
ff_cbs_trace_header(ctx, name); \
} while (0)

Definition at line 29 of file cbs_h265.c.

◆ CHECK

#define CHECK (   call)
Value:
do { \
err = (call); \
if (err < 0) \
return err; \
} while (0)

Definition at line 33 of file cbs_h265.c.

◆ FUNC_NAME2

#define FUNC_NAME2 (   rw,
  codec,
  name 
)    cbs_ ## codec ## _ ## rw ## _ ## name

Definition at line 39 of file cbs_h265.c.

◆ FUNC_NAME1

#define FUNC_NAME1 (   rw,
  codec,
  name 
)    FUNC_NAME2(rw, codec, name)

Definition at line 40 of file cbs_h265.c.

◆ FUNC_H265

#define FUNC_H265 (   name)    FUNC_NAME1(READWRITE, h265, name)

Definition at line 41 of file cbs_h265.c.

◆ FUNC_NAME2_EXPORT

#define FUNC_NAME2_EXPORT (   rw,
  codec,
  name 
)    ff_cbs_ ## codec ## _ ## rw ## _ ## name

Definition at line 42 of file cbs_h265.c.

◆ FUNC_NAME1_EXPORT

#define FUNC_NAME1_EXPORT (   rw,
  codec,
  name 
)    FUNC_NAME2_EXPORT(rw, codec, name)

Definition at line 43 of file cbs_h265.c.

◆ FUNC_SEI

#define FUNC_SEI (   name)    FUNC_NAME1_EXPORT(READWRITE, sei, name)

Definition at line 44 of file cbs_h265.c.

◆ SEI_FUNC

#define SEI_FUNC (   name,
  args 
)
Value:
static int FUNC_H265(name) args; \
static int FUNC_H265(name ## _internal)(CodedBitstreamContext *ctx, \
RWContext *rw, void *cur, \
SEIMessageState *state) \
{ \
return FUNC_H265(name)(ctx, rw, cur, state); \
} \
static int FUNC_H265(name) args

Definition at line 46 of file cbs_h265.c.

◆ SUBSCRIPTS

#define SUBSCRIPTS (   subs,
  ... 
)    (subs > 0 ? ((int[subs + 1]){ subs, __VA_ARGS__ }) : NULL)

Definition at line 56 of file cbs_h265.c.

◆ u

#define u (   width,
  name,
  range_min,
  range_max 
)    xu(width, name, current->name, range_min, range_max, 0, )

Definition at line 58 of file cbs_h265.c.

◆ flag

#define flag (   name)    ub(1, name)

Definition at line 60 of file cbs_h265.c.

◆ ue

#define ue (   name,
  range_min,
  range_max 
)    xue(name, current->name, range_min, range_max, 0, )

Definition at line 61 of file cbs_h265.c.

◆ i

#define i (   width,
  name,
  range_min,
  range_max 
)    xi(width, name, current->name, range_min, range_max, 0, )

Definition at line 63 of file cbs_h265.c.

◆ ib

#define ib (   width,
  name 
)    xi(width, name, current->name, MIN_INT_BITS(width), MAX_INT_BITS(width), 0, )

Definition at line 65 of file cbs_h265.c.

◆ se

#define se (   name,
  range_min,
  range_max 
)    xse(name, current->name, range_min, range_max, 0, )

Definition at line 67 of file cbs_h265.c.

◆ us

#define us (   width,
  name,
  range_min,
  range_max,
  subs,
  ... 
)    xu(width, name, current->name, range_min, range_max, subs, __VA_ARGS__)

Definition at line 70 of file cbs_h265.c.

◆ ubs

#define ubs (   width,
  name,
  subs,
  ... 
)    xu(width, name, current->name, 0, MAX_UINT_BITS(width), subs, __VA_ARGS__)

Definition at line 72 of file cbs_h265.c.

◆ flags

#define flags (   name,
  subs,
  ... 
)    xu(1, name, current->name, 0, 1, subs, __VA_ARGS__)

Definition at line 74 of file cbs_h265.c.

◆ ues

#define ues (   name,
  range_min,
  range_max,
  subs,
  ... 
)    xue(name, current->name, range_min, range_max, subs, __VA_ARGS__)

Definition at line 76 of file cbs_h265.c.

◆ is

#define is (   width,
  name,
  range_min,
  range_max,
  subs,
  ... 
)    xi(width, name, current->name, range_min, range_max, subs, __VA_ARGS__)

Definition at line 78 of file cbs_h265.c.

◆ ibs

#define ibs (   width,
  name,
  subs,
  ... 
)    xi(width, name, current->name, MIN_INT_BITS(width), MAX_INT_BITS(width), subs, __VA_ARGS__)

Definition at line 80 of file cbs_h265.c.

◆ ses

#define ses (   name,
  range_min,
  range_max,
  subs,
  ... 
)    xse(name, current->name, range_min, range_max, subs, __VA_ARGS__)

Definition at line 82 of file cbs_h265.c.

◆ fixed

#define fixed (   width,
  name,
  value 
)
Value:
do { \
av_unused uint32_t fixed_value = value; \
xu(width, name, fixed_value, value, value, 0, ); \
} while (0)

Definition at line 85 of file cbs_h265.c.

◆ READ

#define READ

Definition at line 91 of file cbs_h265.c.

◆ READWRITE [1/2]

#define READWRITE   read

Definition at line 170 of file cbs_h265.c.

◆ RWContext [1/2]

#define RWContext   GetBitContext

Definition at line 171 of file cbs_h265.c.

◆ ub [1/2]

#define ub (   width,
  name 
)
Value:
do { \
uint32_t value; \
CHECK(ff_cbs_read_simple_unsigned(ctx, rw, width, #name, \
&value)); \
current->name = value; \
} while (0)

Definition at line 173 of file cbs_h265.c.

◆ xu [1/2]

#define xu (   width,
  name,
  var,
  range_min,
  range_max,
  subs,
  ... 
)
Value:
do { \
uint32_t value; \
CHECK(ff_cbs_read_unsigned(ctx, rw, width, #name, \
SUBSCRIPTS(subs, __VA_ARGS__), \
&value, range_min, range_max)); \
var = value; \
} while (0)

Definition at line 178 of file cbs_h265.c.

◆ xue [1/2]

#define xue (   name,
  var,
  range_min,
  range_max,
  subs,
  ... 
)
Value:
do { \
uint32_t value; \
SUBSCRIPTS(subs, __VA_ARGS__), \
&value, range_min, range_max)); \
var = value; \
} while (0)

Definition at line 184 of file cbs_h265.c.

◆ xi [1/2]

#define xi (   width,
  name,
  var,
  range_min,
  range_max,
  subs,
  ... 
)
Value:
do { \
int32_t value; \
CHECK(ff_cbs_read_signed(ctx, rw, width, #name, \
SUBSCRIPTS(subs, __VA_ARGS__), \
&value, range_min, range_max)); \
var = value; \
} while (0)

Definition at line 190 of file cbs_h265.c.

◆ xse [1/2]

#define xse (   name,
  var,
  range_min,
  range_max,
  subs,
  ... 
)
Value:
do { \
int32_t value; \
SUBSCRIPTS(subs, __VA_ARGS__), \
&value, range_min, range_max)); \
var = value; \
} while (0)

Definition at line 196 of file cbs_h265.c.

◆ infer [1/2]

#define infer (   name,
  value 
)
Value:
do { \
current->name = value; \
} while (0)

Definition at line 203 of file cbs_h265.c.

◆ more_rbsp_data [1/2]

#define more_rbsp_data (   var)    ((var) = ff_cbs_h2645_read_more_rbsp_data(rw))

Definition at line 213 of file cbs_h265.c.

◆ bit_position [1/2]

#define bit_position (   rw)    (get_bits_count(rw))

Definition at line 215 of file cbs_h265.c.

◆ byte_alignment [1/2]

#define byte_alignment (   rw)    (get_bits_count(rw) % 8)

Definition at line 216 of file cbs_h265.c.

◆ allocate [1/2]

#define allocate (   name,
  size 
)
Value:
do { \
name ## _ref = av_buffer_allocz(size + \
if (!name ## _ref) \
return AVERROR(ENOMEM); \
name = name ## _ref->data; \
} while (0)

Definition at line 218 of file cbs_h265.c.

◆ FUNC [1/2]

#define FUNC (   name)    FUNC_H265(name)

Definition at line 226 of file cbs_h265.c.

◆ WRITE

#define WRITE

Definition at line 169 of file cbs_h265.c.

◆ READWRITE [2/2]

#define READWRITE   write

Definition at line 170 of file cbs_h265.c.

◆ RWContext [2/2]

#define RWContext   PutBitContext

Definition at line 171 of file cbs_h265.c.

◆ ub [2/2]

#define ub (   width,
  name 
)
Value:
do { \
uint32_t value = current->name; \
CHECK(ff_cbs_write_simple_unsigned(ctx, rw, width, #name, \
value)); \
} while (0)

Definition at line 173 of file cbs_h265.c.

◆ xu [2/2]

#define xu (   width,
  name,
  var,
  range_min,
  range_max,
  subs,
  ... 
)
Value:
do { \
uint32_t value = var; \
CHECK(ff_cbs_write_unsigned(ctx, rw, width, #name, \
SUBSCRIPTS(subs, __VA_ARGS__), \
value, range_min, range_max)); \
} while (0)

Definition at line 178 of file cbs_h265.c.

◆ xue [2/2]

#define xue (   name,
  var,
  range_min,
  range_max,
  subs,
  ... 
)
Value:
do { \
uint32_t value = var; \
SUBSCRIPTS(subs, __VA_ARGS__), \
value, range_min, range_max)); \
} while (0)

Definition at line 184 of file cbs_h265.c.

◆ xi [2/2]

#define xi (   width,
  name,
  var,
  range_min,
  range_max,
  subs,
  ... 
)
Value:
do { \
int32_t value = var; \
CHECK(ff_cbs_write_signed(ctx, rw, width, #name, \
SUBSCRIPTS(subs, __VA_ARGS__), \
value, range_min, range_max)); \
} while (0)

Definition at line 190 of file cbs_h265.c.

◆ xse [2/2]

#define xse (   name,
  var,
  range_min,
  range_max,
  subs,
  ... 
)
Value:
do { \
int32_t value = var; \
SUBSCRIPTS(subs, __VA_ARGS__), \
value, range_min, range_max)); \
} while (0)

Definition at line 196 of file cbs_h265.c.

◆ infer [2/2]

#define infer (   name,
  value 
)
Value:
do { \
if (current->name != (value)) { \
av_log(ctx->log_ctx, AV_LOG_ERROR, \
"%s does not match inferred value: " \
"%"PRId64", but should be %"PRId64".\n", \
#name, (int64_t)current->name, (int64_t)(value)); \
} \
} while (0)

Definition at line 203 of file cbs_h265.c.

◆ more_rbsp_data [2/2]

#define more_rbsp_data (   var)    (var)

Definition at line 213 of file cbs_h265.c.

◆ bit_position [2/2]

#define bit_position (   rw)    (put_bits_count(rw))

Definition at line 215 of file cbs_h265.c.

◆ byte_alignment [2/2]

#define byte_alignment (   rw)    (put_bits_count(rw) % 8)

Definition at line 216 of file cbs_h265.c.

◆ allocate [2/2]

#define allocate (   name,
  size 
)
Value:
do { \
if (!name) { \
av_log(ctx->log_ctx, AV_LOG_ERROR, "%s must be set " \
"for writing.\n", #name); \
} \
} while (0)

Definition at line 218 of file cbs_h265.c.

◆ FUNC [2/2]

#define FUNC (   name)    FUNC_H265(name)

Definition at line 226 of file cbs_h265.c.

◆ cbs_h2645_replace_ps

#define cbs_h2645_replace_ps (   ps_name,
  ps_var,
  id_element 
)
Value:
static int cbs_h265_replace_ ## ps_var(CodedBitstreamContext *ctx, \
{ \
CodedBitstreamH265Context *priv = ctx->priv_data; \
H265Raw## 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 337 of file cbs_h265.c.

◆ SEI_MESSAGE_RW

#define SEI_MESSAGE_RW (   codec,
  name 
)
Value:
.read = cbs_ ## codec ## _read_ ## name ## _internal, \
.write = cbs_ ## codec ## _write_ ## name ## _internal

Definition at line 739 of file cbs_h265.c.

Function Documentation

◆ cbs_h265_split_fragment()

static int cbs_h265_split_fragment ( CodedBitstreamContext ctx,
CodedBitstreamFragment frag,
int  header 
)
static

Definition at line 251 of file cbs_h265.c.

◆ cbs_h2645_replace_ps()

cbs_h2645_replace_ps ( VPS  ,
vps  ,
vps_video_parameter_set_id   
)

Definition at line 354 of file cbs_h265.c.

◆ cbs_h265_write_nal_unit()

static int cbs_h265_write_nal_unit ( CodedBitstreamContext ctx,
CodedBitstreamUnit unit,
PutBitContext pbc 
)
static

Definition at line 487 of file cbs_h265.c.

◆ cbs_h265_discarded_nal_unit()

static int cbs_h265_discarded_nal_unit ( CodedBitstreamContext ctx,
const CodedBitstreamUnit unit,
enum AVDiscard  skip 
)
static

Definition at line 607 of file cbs_h265.c.

◆ cbs_h265_flush()

static av_cold void cbs_h265_flush ( CodedBitstreamContext ctx)
static

Definition at line 680 of file cbs_h265.c.

◆ cbs_h265_close()

static av_cold void cbs_h265_close ( CodedBitstreamContext ctx)
static

Definition at line 696 of file cbs_h265.c.

◆ cbs_h265_free_sei()

static void cbs_h265_free_sei ( AVRefStructOpaque  unused,
void *  content 
)
static

Definition at line 711 of file cbs_h265.c.

Variable Documentation

◆ cbs_h265_unit_types

CodedBitstreamUnitTypeDescriptor cbs_h265_unit_types[]
static

◆ ff_cbs_sei_h265_types

const SEIMessageTypeDescriptor ff_cbs_sei_h265_types[]

Definition at line 743 of file cbs_h265.c.

Referenced by ff_cbs_sei_find_type().

◆ ff_cbs_type_h265

const CodedBitstreamType ff_cbs_type_h265
Initial value:
= {
.codec_id = AV_CODEC_ID_HEVC,
.priv_data_size = sizeof(CodedBitstreamH265Context),
.unit_types = cbs_h265_unit_types,
.split_fragment = &cbs_h265_split_fragment,
.read_unit = &cbs_h265_read_nal_unit,
.write_unit = &cbs_h265_write_nal_unit,
.discarded_unit = &cbs_h265_discarded_nal_unit,
.assemble_fragment = &ff_cbs_h2645_assemble_fragment,
}

Definition at line 813 of file cbs_h265.c.

HEVC_NAL_AUD
@ HEVC_NAL_AUD
Definition: hevc.h:64
name
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
Definition: writing_filters.txt:88
AVERROR
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
ff_cbs_read_ue_golomb
int ff_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)
Definition: cbs_h2645.c:41
int64_t
long long int64_t
Definition: coverity.c:34
H265RawSEI
Definition: cbs_h265.h:739
CodedBitstreamContext
Context structure for coded bitstream operations.
Definition: cbs.h:226
data
const char data[16]
Definition: mxf.c:149
cbs_h265_close
static av_cold void cbs_h265_close(CodedBitstreamContext *ctx)
Definition: cbs_h265.c:696
CodedBitstreamUnit
Coded bitstream unit structure.
Definition: cbs.h:77
ff_cbs_h2645_assemble_fragment
int ff_cbs_h2645_assemble_fragment(CodedBitstreamContext *ctx, CodedBitstreamFragment *frag)
Definition: cbs_h2645.c:341
H265RawSPS
Definition: cbs_h265.h:245
H265RawVPS
Definition: cbs_h265.h:184
H265RawPPS
Definition: cbs_h265.h:356
close
static av_cold void close(AVCodecParserContext *s)
Definition: apv_parser.c:197
cbs_h265_discarded_nal_unit
static int cbs_h265_discarded_nal_unit(CodedBitstreamContext *ctx, const CodedBitstreamUnit *unit, enum AVDiscard skip)
Definition: cbs_h265.c:607
CBS_UNIT_TYPE_INTERNAL_REF
#define CBS_UNIT_TYPE_INTERNAL_REF(type, structure, ref_field)
Definition: cbs_internal.h:366
HEVC_NAL_SEI_SUFFIX
@ HEVC_NAL_SEI_SUFFIX
Definition: hevc.h:69
HEVC_NAL_SEI_PREFIX
@ HEVC_NAL_SEI_PREFIX
Definition: hevc.h:68
ff_cbs_write_ue_golomb
int ff_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)
Definition: cbs_h2645.c:145
AV_LOG_ERROR
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
Definition: log.h:210
extension_data
static int FUNC() extension_data(CodedBitstreamContext *ctx, RWContext *rw, H265RawExtensionData *current)
Definition: cbs_h265_syntax_template.c:61
cbs_h265_write_nal_unit
static int cbs_h265_write_nal_unit(CodedBitstreamContext *ctx, CodedBitstreamUnit *unit, PutBitContext *pbc)
Definition: cbs_h265.c:487
HEVC_NAL_VPS
@ HEVC_NAL_VPS
Definition: hevc.h:61
ctx
static AVFormatContext * ctx
Definition: movenc.c:49
NULL
#define NULL
Definition: coverity.c:32
H265RawAUD
Definition: cbs_h265.h:487
cbs_h265_unit_types
static CodedBitstreamUnitTypeDescriptor cbs_h265_unit_types[]
Definition: cbs_h265.c:717
ff_cbs_read_se_golomb
int ff_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)
Definition: cbs_h2645.c:90
SUBSCRIPTS
#define SUBSCRIPTS(subs,...)
Definition: cbs_h265.c:56
flush
void(* flush)(AVBSFContext *ctx)
Definition: dts2pts.c:552
CBS_UNIT_RANGE_INTERNAL_REF
#define CBS_UNIT_RANGE_INTERNAL_REF(range_start, range_end, structure, ref_field)
Definition: cbs_internal.h:369
HEVC_NAL_RASL_R
@ HEVC_NAL_RASL_R
Definition: hevc.h:38
HEVC_NAL_SPS
@ HEVC_NAL_SPS
Definition: hevc.h:62
size
int size
Definition: twinvq_data.h:10344
ff_cbs_write_se_golomb
int ff_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)
Definition: cbs_h2645.c:177
HEVC_NAL_PPS
@ HEVC_NAL_PPS
Definition: hevc.h:63
CBS_UNIT_TYPE_POD
#define CBS_UNIT_TYPE_POD(type_, structure)
Definition: cbs_internal.h:342
cbs_h265_free_sei
static void cbs_h265_free_sei(AVRefStructOpaque unused, void *content)
Definition: cbs_h265.c:711
CBS_UNIT_TYPES_COMPLEX
#define CBS_UNIT_TYPES_COMPLEX(types, structure, free_func)
Definition: cbs_internal.h:379
AV_CODEC_ID_HEVC
@ AV_CODEC_ID_HEVC
Definition: codec_id.h:228
value
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
Definition: writing_filters.txt:86
CBS_UNIT_TYPE_END_OF_LIST
#define CBS_UNIT_TYPE_END_OF_LIST
Definition: cbs_internal.h:389
av_buffer_allocz
AVBufferRef * av_buffer_allocz(size_t size)
Same as av_buffer_alloc(), except the returned buffer will be initialized to zero.
Definition: buffer.c:93
cbs_h265_split_fragment
static int cbs_h265_split_fragment(CodedBitstreamContext *ctx, CodedBitstreamFragment *frag, int header)
Definition: cbs_h265.c:251
AV_INPUT_BUFFER_PADDING_SIZE
#define AV_INPUT_BUFFER_PADDING_SIZE
Definition: defs.h:40
HEVC_NAL_CRA_NUT
@ HEVC_NAL_CRA_NUT
Definition: hevc.h:50
AVERROR_INVALIDDATA
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
Definition: error.h:61
width
#define width
Definition: dsp.h:89
FUNC_H265
#define FUNC_H265(name)
Definition: cbs_h265.c:41
state
static struct @557 state
AVFormatContext::priv_data
void * priv_data
Format private data.
Definition: avformat.h:1292
cbs_h265_flush
static av_cold void cbs_h265_flush(CodedBitstreamContext *ctx)
Definition: cbs_h265.c:680
HEVC_NAL_FD_NUT
@ HEVC_NAL_FD_NUT
Definition: hevc.h:67
CodedBitstreamH265Context
Definition: cbs_h265.h:750
HEVC_NAL_TRAIL_N
@ HEVC_NAL_TRAIL_N
Definition: hevc.h:29
H265RawSlice
Definition: cbs_h265.h:583
HEVC_NAL_BLA_W_LP
@ HEVC_NAL_BLA_W_LP
Definition: hevc.h:45
H265RawFiller
Definition: cbs_h265.h:744