cbs_mpeg2.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
xui(
width,
name, var, range_min, range_max, subs, ...)
xuia(
width, #
name, var, range_min, range_max, subs, __VA_ARGS__)
#define
xuia(
width, string, var, range_min, range_max, subs, ...)
#define
xuia(
width, string, var, range_min, range_max, subs, ...)
Functions
Variables
Macro Definition Documentation
◆ HEADER
◆ CHECK
Value: do { \
err = (call); \
if (err < 0) \
return err; \
} while (0)
Definition at line 31 of file cbs_mpeg2.c.
◆ FUNC_NAME
#define FUNC_NAME
(
rw,
codec,
)
cbs_ ## codec ##
_ ## rw ##
_ ##
name
◆ FUNC_MPEG2
◆ FUNC
◆ SUBSCRIPTS
#define SUBSCRIPTS
(
subs,
...
)
(subs > 0 ? ((
int[subs + 1]){ subs, __VA_ARGS__ }) :
NULL)
◆ uir
◆ uis
◆ uirs
◆ xui
var,
range_min,
range_max,
subs,
...
)
xuia(
width, #
name, var, range_min, range_max, subs, __VA_ARGS__)
◆ sis
◆ marker_bit
#define marker_bit
(
)
bit("marker_bit", 1)
◆ bit
◆ READ
◆ READWRITE [1/2]
◆ RWContext [1/2]
◆ ui [1/2]
◆ xuia [1/2]
string,
var,
range_min,
range_max,
subs,
...
)
Value: do { \
&
value, range_min, range_max)); \
} while (0)
Definition at line 118 of file cbs_mpeg2.c.
◆ xsi [1/2]
◆ nextbits [1/2]
#define nextbits
(
width,
var
)
◆ infer [1/2]
◆ WRITE
◆ READWRITE [2/2]
◆ RWContext [2/2]
◆ ui [2/2]
Value: do { \
current->name)); \
} while (0)
Definition at line 113 of file cbs_mpeg2.c.
◆ xuia [2/2]
string,
var,
range_min,
range_max,
subs,
...
)
Value: do { \
var, range_min, range_max)); \
} while (0)
Definition at line 118 of file cbs_mpeg2.c.
◆ xsi [2/2]
◆ nextbits [2/2]
#define nextbits
(
width,
var
)
(var)
◆ 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 133 of file cbs_mpeg2.c.
◆ START [1/2]
Value:
{ \
type *
header = unit->content; \
err = cbs_mpeg2_read_ ## read_func(
ctx, &gbc,
header); \
if (err < 0) \
return err; \
} \
break;
◆ START [2/2]
Value:
err = cbs_mpeg2_write_ ##
func(
ctx, pbc, unit->content); \
break;
Function Documentation
◆ cbs_mpeg2_split_fragment()
◆ cbs_mpeg2_read_unit()
◆ cbs_mpeg2_write_header()
◆ cbs_mpeg2_write_slice()
◆ cbs_mpeg2_write_unit()
◆ cbs_mpeg2_assemble_fragment()
Variable Documentation
◆ cbs_mpeg2_unit_types
Initial value:= {
extra_information_picture.extra_information),
{
.unit_type.range.start = 0x01,
.unit_type.range.end = 0xaf,
.
type.ref = { .nb_offsets = 2,
.offsets = { 0x42,
0x42 } },
},
}
Definition at line 400 of file cbs_mpeg2.c.
◆ ff_cbs_type_mpeg2
int(* func)(AVBPrint *dst, const char *in, const char *arg)
#define AV_LOG_WARNING
Something somehow does not look correct.
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
static int get_bits_left(GetBitContext *gb)
#define MAX_INT_BITS(length)
#define SUBSCRIPTS(subs,...)
#define bit(string, value)
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)
#define CBS_UNIT_TYPE_INTERNAL_REF(type, structure, ref_field)
@ CBS_CONTENT_TYPE_INTERNAL_REFS
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 type
static int cbs_mpeg2_write_unit(CodedBitstreamContext *ctx, CodedBitstreamUnit *unit, PutBitContext *pbc)
int ff_cbs_read_simple_unsigned(CodedBitstreamContext *ctx, GetBitContext *gbc, int width, const char *name, uint32_t *write_to)
static int cbs_mpeg2_split_fragment(CodedBitstreamContext *ctx, CodedBitstreamFragment *frag, int header)
static int FUNC() user_data(CodedBitstreamContext *ctx, RWContext *rw, MPEG2RawUserData *current)
static const uint8_t header[24]
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)
static int cbs_mpeg2_assemble_fragment(CodedBitstreamContext *ctx, CodedBitstreamFragment *frag)
#define CBS_UNIT_TYPE_POD(type_, structure)
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)
static unsigned int show_bits(GetBitContext *s, int n)
Show 1-25 bits.
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
@ MPEG2_START_SEQUENCE_HEADER
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)
#define CBS_UNIT_TYPE_END_OF_LIST
static float compare(const AVFrame *haystack, const AVFrame *obj, int offx, int offy)
int ff_cbs_write_simple_unsigned(CodedBitstreamContext *ctx, PutBitContext *pbc, int width, const char *name, uint32_t value)
static int cbs_mpeg2_read_unit(CodedBitstreamContext *ctx, CodedBitstreamUnit *unit)
#define MIN_INT_BITS(length)
static const CodedBitstreamUnitTypeDescriptor cbs_mpeg2_unit_types[]
@ MPEG2_START_SEQUENCE_END
@ AV_CODEC_ID_MPEG2VIDEO
preferred ID for MPEG-1/2 video decoding
Generated on Thu Sep 26 2024 23:16:04 for FFmpeg by
doxygen
1.8.17