FFmpeg
|
#include <string.h>
#include "config.h"
#include "libavutil/avassert.h"
#include "libavutil/buffer.h"
#include "libavutil/common.h"
#include "cbs.h"
#include "cbs_internal.h"
Go to the source code of this file.
Variables | |
static const CodedBitstreamType * | cbs_type_table [] |
enum AVCodecID | ff_cbs_all_codec_ids [] |
Table of all supported codec IDs. More... | |
int ff_cbs_init | ( | CodedBitstreamContext ** | ctx_ptr, |
enum AVCodecID | codec_id, | ||
void * | log_ctx | ||
) |
Create and initialise a new context for the given codec.
Definition at line 74 of file cbs.c.
Referenced by av1_metadata_init(), av1_parser_init(), filter_units_init(), h264_metadata_init(), h264_redundant_pps_init(), h265_metadata_init(), mpeg2_metadata_init(), trace_headers_init(), vaapi_encode_h264_configure(), vaapi_encode_h265_configure(), vaapi_encode_mjpeg_configure(), vaapi_encode_mpeg2_configure(), and vp9_metadata_init().
void ff_cbs_close | ( | CodedBitstreamContext ** | ctx_ptr | ) |
Close a context and free all internal state.
Definition at line 113 of file cbs.c.
Referenced by av1_metadata_close(), av1_parser_close(), filter_units_close(), h264_metadata_close(), h264_redundant_pps_close(), h265_metadata_close(), mpeg2_metadata_close(), trace_headers_close(), vaapi_encode_h264_close(), vaapi_encode_h265_close(), vaapi_encode_mjpeg_close(), vaapi_encode_mpeg2_close(), and vp9_metadata_close().
|
static |
Definition at line 127 of file cbs.c.
Referenced by ff_cbs_delete_unit(), and ff_cbs_fragment_uninit().
void ff_cbs_fragment_uninit | ( | CodedBitstreamContext * | ctx, |
CodedBitstreamFragment * | frag | ||
) |
Free all allocated memory in a fragment.
Definition at line 139 of file cbs.c.
Referenced by av1_metadata_filter(), av1_metadata_init(), av1_parser_parse(), filter_units_filter(), filter_units_init(), h264_metadata_filter(), h264_metadata_init(), h264_redundant_pps_filter(), h264_redundant_pps_init(), h265_metadata_filter(), h265_metadata_init(), mpeg2_metadata_filter(), mpeg2_metadata_init(), trace_headers(), trace_headers_init(), vaapi_encode_h264_write_extra_header(), vaapi_encode_h264_write_sequence_header(), vaapi_encode_h264_write_slice_header(), vaapi_encode_h265_write_extra_header(), vaapi_encode_h265_write_sequence_header(), vaapi_encode_h265_write_slice_header(), vaapi_encode_mjpeg_write_image_header(), vaapi_encode_mpeg2_write_picture_header(), vaapi_encode_mpeg2_write_sequence_header(), and vp9_metadata_filter().
|
static |
Definition at line 155 of file cbs.c.
Referenced by ff_cbs_read(), ff_cbs_read_extradata(), and ff_cbs_read_packet().
|
static |
Definition at line 192 of file cbs.c.
Referenced by ff_cbs_read(), ff_cbs_read_extradata(), and ff_cbs_read_packet().
int ff_cbs_read_extradata | ( | CodedBitstreamContext * | ctx, |
CodedBitstreamFragment * | frag, | ||
const AVCodecParameters * | par | ||
) |
Read the extradata bitstream found in codec parameters into a fragment, then split into units and decompose.
This also updates the internal state, so will need to be called for codecs with extradata to read parameter sets necessary for further parsing even if the fragment itself is not desired.
Definition at line 213 of file cbs.c.
Referenced by av1_metadata_init(), filter_units_init(), h264_metadata_init(), h264_redundant_pps_init(), h265_metadata_init(), mpeg2_metadata_init(), and trace_headers_init().
int ff_cbs_read_packet | ( | CodedBitstreamContext * | ctx, |
CodedBitstreamFragment * | frag, | ||
const AVPacket * | pkt | ||
) |
Read the data bitstream from a packet into a fragment, then split into units and decompose.
This also updates the internal state of the coded bitstream context with any persistent data from the fragment which may be required to read following fragments (e.g. parameter sets).
Definition at line 233 of file cbs.c.
Referenced by av1_metadata_filter(), filter_units_filter(), h264_metadata_filter(), h264_redundant_pps_filter(), h265_metadata_filter(), mpeg2_metadata_filter(), trace_headers(), and vp9_metadata_filter().
int ff_cbs_read | ( | CodedBitstreamContext * | ctx, |
CodedBitstreamFragment * | frag, | ||
const uint8_t * | data, | ||
size_t | size | ||
) |
Read a bitstream from a memory region into a fragment, then split into units and decompose.
This also updates the internal state of the coded bitstream context with any persistent data from the fragment which may be required to read following fragments (e.g. parameter sets).
Definition at line 262 of file cbs.c.
Referenced by av1_parser_parse().
int ff_cbs_write_fragment_data | ( | CodedBitstreamContext * | ctx, |
CodedBitstreamFragment * | frag | ||
) |
Write the content of the fragment to its own internal buffer.
Writes the content of all units and then assembles them into a new data buffer. When modifying the content of decomposed units, this can be used to regenerate the bitstream form of units or the whole fragment so that it can be extracted for other use.
This also updates the internal state of the coded bitstream context with any persistent data from the fragment which may be required to write following fragments (e.g. parameter sets).
Definition at line 282 of file cbs.c.
Referenced by ff_cbs_write_extradata(), ff_cbs_write_packet(), vaapi_encode_h264_write_access_unit(), vaapi_encode_h265_write_access_unit(), vaapi_encode_mjpeg_write_image_header(), and vaapi_encode_mpeg2_write_fragment().
int ff_cbs_write_extradata | ( | CodedBitstreamContext * | ctx, |
AVCodecParameters * | par, | ||
CodedBitstreamFragment * | frag | ||
) |
Write the bitstream of a fragment to the extradata in codec parameters.
This replaces any existing extradata in the structure.
Definition at line 318 of file cbs.c.
Referenced by av1_metadata_init(), filter_units_init(), h264_metadata_init(), h264_redundant_pps_init(), h265_metadata_init(), and mpeg2_metadata_init().
int ff_cbs_write_packet | ( | CodedBitstreamContext * | ctx, |
AVPacket * | pkt, | ||
CodedBitstreamFragment * | frag | ||
) |
Write the bitstream of a fragment to a packet.
Definition at line 343 of file cbs.c.
Referenced by av1_metadata_filter(), filter_units_filter(), h264_metadata_filter(), h264_redundant_pps_filter(), h265_metadata_filter(), mpeg2_metadata_filter(), and vp9_metadata_filter().
void ff_cbs_trace_header | ( | CodedBitstreamContext * | ctx, |
const char * | name | ||
) |
void ff_cbs_trace_syntax_element | ( | CodedBitstreamContext * | ctx, |
int | position, | ||
const char * | str, | ||
const int * | subscripts, | ||
const char * | bits, | ||
int64_t | value | ||
) |
Definition at line 376 of file cbs.c.
Referenced by cbs_av1_read_increment(), cbs_av1_read_leb128(), cbs_av1_read_ns(), cbs_av1_read_su(), cbs_av1_read_subexp(), cbs_av1_read_uvlc(), cbs_av1_write_increment(), cbs_av1_write_leb128(), cbs_av1_write_ns(), cbs_av1_write_su(), cbs_av1_write_subexp(), cbs_av1_write_uvlc(), cbs_read_se_golomb(), cbs_read_ue_golomb(), cbs_vp9_read_increment(), cbs_vp9_read_le(), cbs_vp9_read_s(), cbs_vp9_write_increment(), cbs_vp9_write_le(), cbs_vp9_write_s(), cbs_write_se_golomb(), cbs_write_ue_golomb(), ff_cbs_read_unsigned(), and ff_cbs_write_unsigned().
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 | ||
) |
Definition at line 426 of file cbs.c.
Referenced by cbs_av1_read_leb128(), and cbs_av1_read_subexp().
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 | ||
) |
Definition at line 469 of file cbs.c.
Referenced by cbs_av1_write_leb128(), and cbs_av1_write_subexp().
int ff_cbs_alloc_unit_content | ( | CodedBitstreamContext * | ctx, |
CodedBitstreamUnit * | unit, | ||
size_t | size, | ||
void(*)(void *opaque, uint8_t *data) | free | ||
) |
Definition at line 506 of file cbs.c.
Referenced by cbs_av1_read_unit(), cbs_h2645_replace_ps(), cbs_h265_read_nal_unit(), cbs_jpeg_read_unit(), cbs_mpeg2_read_unit(), and cbs_vp9_read_unit().
int ff_cbs_alloc_unit_data | ( | CodedBitstreamContext * | ctx, |
CodedBitstreamUnit * | unit, | ||
size_t | size | ||
) |
Allocate a new internal data buffer of the given size in the unit.
The data buffer will have input padding.
Definition at line 527 of file cbs.c.
Referenced by cbs_av1_write_unit(), cbs_h2645_write_nal_unit(), cbs_jpeg_write_unit(), cbs_mpeg2_write_unit(), and cbs_vp9_write_unit().
|
static |
Definition at line 545 of file cbs.c.
Referenced by ff_cbs_insert_unit_content(), and ff_cbs_insert_unit_data().
int ff_cbs_insert_unit_content | ( | CodedBitstreamContext * | ctx, |
CodedBitstreamFragment * | frag, | ||
int | position, | ||
CodedBitstreamUnitType | type, | ||
void * | content, | ||
AVBufferRef * | content_buf | ||
) |
Insert a new unit into a fragment with the given content.
The content structure continues to be owned by the caller if content_buf is not supplied.
Definition at line 570 of file cbs.c.
Referenced by av1_metadata_filter(), ff_cbs_h264_add_sei_message(), h264_metadata_filter(), h265_metadata_filter(), mpeg2_metadata_update_fragment(), vaapi_encode_h264_add_nal(), vaapi_encode_h265_add_nal(), vaapi_encode_mjpeg_write_image_header(), and vaapi_encode_mpeg2_add_header().
int ff_cbs_insert_unit_data | ( | CodedBitstreamContext * | ctx, |
CodedBitstreamFragment * | frag, | ||
int | position, | ||
CodedBitstreamUnitType | type, | ||
uint8_t * | data, | ||
size_t | data_size, | ||
AVBufferRef * | data_buf | ||
) |
Insert a new unit into a fragment with the given data bitstream.
If data_buf is not supplied then data must have been allocated with av_malloc() and will become owned by the unit after this call.
Definition at line 607 of file cbs.c.
Referenced by cbs_av1_split_fragment(), cbs_h2645_fragment_add_nals(), cbs_jpeg_split_fragment(), cbs_mpeg2_split_fragment(), and cbs_vp9_split_fragment().
int ff_cbs_delete_unit | ( | CodedBitstreamContext * | ctx, |
CodedBitstreamFragment * | frag, | ||
int | position | ||
) |
Delete a unit from a fragment and free all memory it uses.
Definition at line 644 of file cbs.c.
Referenced by av1_metadata_filter(), ff_cbs_h264_delete_sei_message(), filter_units_filter(), h264_metadata_filter(), h264_redundant_pps_filter(), and h265_metadata_filter().
|
static |