#include <stddef.h>#include <stdint.h>#include "libavutil/buffer.h"#include "codec_id.h"#include "codec_par.h"#include "packet.h"Go to the source code of this file.
Create and initialise a new context for the given codec.
Definition at line 76 of file cbs.c.
Referenced by av1_decode_init(), av1_frame_merge_init(), av1_frame_split_init(), av1_parser_init(), ff_cbs_bsf_generic_init(), filter_units_init(), trace_headers_init(), vaapi_encode_h264_configure(), vaapi_encode_h265_configure(), vaapi_encode_mjpeg_configure(), and vaapi_encode_mpeg2_configure().
Reset all internal state in a context.
Definition at line 121 of file cbs.c.
Referenced by av1_decode_flush().
Close a context and free all internal state.
Definition at line 127 of file cbs.c.
Referenced by av1_decode_free(), av1_frame_merge_close(), av1_frame_split_close(), av1_parser_close(), ff_cbs_bsf_generic_close(), filter_units_close(), trace_headers_close(), vaapi_encode_h264_close(), vaapi_encode_h265_close(), vaapi_encode_mjpeg_close(), and vaapi_encode_mpeg2_close().
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.
The fragment must have been zeroed or reset via ff_cbs_fragment_reset before use.
Definition at line 271 of file cbs.c.
Referenced by av1_frame_split_init(), ff_cbs_bsf_generic_init(), filter_units_init(), and trace_headers_init().
Read the extradata bitstream found in a codec context into a fragment, then split into units and decompose.
This acts identical to ff_cbs_read_extradata() for the case where you already have a codec context.
Definition at line 297 of file cbs.c.
Referenced by cbs_bsf_update_side_data(), and trace_headers().
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).
The fragment must have been zeroed or reset via ff_cbs_fragment_reset before use.
Definition at line 289 of file cbs.c.
Referenced by av1_decode_frame(), av1_frame_merge_filter(), av1_frame_split_filter(), ff_cbs_bsf_generic_filter(), filter_units_filter(), and trace_headers().
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).
The fragment must have been zeroed or reset via ff_cbs_fragment_reset before use.
Definition at line 310 of file cbs.c.
Referenced by av1_parser_parse().
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 394 of file cbs.c.
Referenced by cbs_bsf_update_side_data(), 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().
Write the bitstream of a fragment to the extradata in codec parameters.
Modifies context and fragment as ff_cbs_write_fragment_data does and replaces any existing extradata in the structure.
Definition at line 430 of file cbs.c.
Referenced by ff_cbs_bsf_generic_init(), and filter_units_init().
Write the bitstream of a fragment to a packet.
Modifies context and fragment as ff_cbs_write_fragment_data does.
On success, the packet's buf is unreferenced and its buf, data and size fields are set to the corresponding values from the newly updated fragment; other fields are not touched. On failure, the packet is not touched at all.
Definition at line 455 of file cbs.c.
Referenced by av1_frame_merge_filter(), ff_cbs_bsf_generic_filter(), and filter_units_filter().
Free the units contained in a fragment as well as the fragment's own data buffer, but not the units array itself.
Definition at line 157 of file cbs.c.
Referenced by av1_decode_frame(), av1_decode_init(), av1_frame_merge_filter(), av1_frame_merge_flush(), av1_frame_split_filter(), av1_frame_split_flush(), av1_frame_split_init(), av1_parser_parse(), cbs_bsf_update_side_data(), ff_cbs_bsf_generic_filter(), ff_cbs_bsf_generic_init(), ff_cbs_fragment_free(), filter_units_filter(), filter_units_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(), and vaapi_encode_mpeg2_write_sequence_header().
Free the units array of a fragment in addition to what ff_cbs_fragment_reset does.
Definition at line 171 of file cbs.c.
Referenced by av1_decode_free(), av1_frame_merge_close(), av1_frame_split_close(), av1_parser_close(), ff_cbs_bsf_generic_close(), filter_units_close(), trace_headers_close(), vaapi_encode_h264_close(), vaapi_encode_h265_close(), vaapi_encode_mjpeg_close(), and vaapi_encode_mpeg2_close().
Allocate a new internal content buffer of the given size in the unit.
The content will be zeroed.
Allocate a new internal content buffer matching the type of the unit.
The content will be zeroed.
Definition at line 896 of file cbs.c.
Referenced by cbs_av1_read_unit(), cbs_h2645_replace_ps(), cbs_h265_read_nal_unit(), cbs_mpeg2_read_unit(), cbs_sei_get_unit(), and cbs_vp9_read_unit().
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 756 of file cbs.c.
Referenced by av1_frame_merge_filter(), av1_metadata_update_fragment(), cbs_sei_get_unit(), h264_metadata_insert_aud(), h265_metadata_update_fragment(), 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().
Add a new unit to a fragment with the given data bitstream.
If data_buf is not supplied then data must have been allocated with av_malloc() and will on success become owned by the unit after this call or freed on error.
Definition at line 829 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().
Delete a unit from a fragment and free all memory it uses.
Requires position to be >= 0 and < frag->nb_units.
Definition at line 839 of file cbs.c.
Referenced by av1_metadata_update_fragment(), filter_units_filter(), h264_metadata_update_fragment(), h264_redundant_pps_update_fragment(), and h265_metadata_update_fragment().
Make the content of a unit refcounted.
If the unit is not refcounted, this will do a deep copy of the unit content to new refcounted buffers.
It is not valid to call this function on a unit which does not have decomposed content.
Definition at line 990 of file cbs.c.
Referenced by cbs_av1_write_obu(), and ff_cbs_make_unit_writable().
Make the content of a unit writable so that internal fields can be modified.
If it is known that there are no other references to the content of the unit, does nothing and returns success. Otherwise (including the case where the unit content is not refcounted), it does a full clone of the content (including any internal buffers) to make a new copy, and replaces the existing references inside the unit with that.
It is not valid to call this function on a unit which does not have decomposed content.
Definition at line 1038 of file cbs.c.
Referenced by h264_redundant_pps_fixup_pps().