FFmpeg
|
#include "libavutil/attributes.h"
#include "libavutil/avassert.h"
#include "bytestream.h"
#include "cbs.h"
#include "cbs_internal.h"
#include "cbs_h264.h"
#include "cbs_h265.h"
#include "h264.h"
#include "h264_sei.h"
#include "h2645_parse.h"
#include "hevc.h"
#include "hevc_sei.h"
#include "cbs_sei_syntax_template.c"
#include "cbs_h264_syntax_template.c"
#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_H264(name) FUNC_NAME1(READWRITE, h264, name) |
#define | FUNC_H265(name) FUNC_NAME1(READWRITE, h265, name) |
#define | FUNC_SEI(name) FUNC_NAME1(READWRITE, sei, name) |
#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 | ub(width, name) xu(width, name, current->name, 0, MAX_UINT_BITS(width), 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 | 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) = 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_SEI(name) |
#define | FUNC(name) FUNC_H264(name) |
#define | FUNC(name) FUNC_H265(name) |
#define | WRITE |
#define | READWRITE write |
#define | RWContext PutBitContext |
#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_SEI(name) |
#define | FUNC(name) FUNC_H264(name) |
#define | FUNC(name) FUNC_H265(name) |
#define | cbs_h2645_replace_ps(h26n, ps_name, ps_var, id_element) |
Variables | |
static const CodedBitstreamUnitTypeDescriptor | cbs_h264_unit_types [] |
static const CodedBitstreamUnitTypeDescriptor | cbs_h265_unit_types [] |
const CodedBitstreamType | ff_cbs_type_h264 |
const CodedBitstreamType | ff_cbs_type_h265 |
static const SEIMessageTypeDescriptor | cbs_sei_common_types [] |
static const SEIMessageTypeDescriptor | cbs_sei_h264_types [] |
static const SEIMessageTypeDescriptor | cbs_sei_h265_types [] |
#define HEADER | ( | name | ) |
Definition at line 246 of file cbs_h2645.c.
#define CHECK | ( | call | ) |
Definition at line 250 of file cbs_h2645.c.
Definition at line 256 of file cbs_h2645.c.
#define FUNC_NAME1 | ( | rw, | |
codec, | |||
name | |||
) | FUNC_NAME2(rw, codec, name) |
Definition at line 257 of file cbs_h2645.c.
#define FUNC_H264 | ( | name | ) | FUNC_NAME1(READWRITE, h264, name) |
Definition at line 258 of file cbs_h2645.c.
#define FUNC_H265 | ( | name | ) | FUNC_NAME1(READWRITE, h265, name) |
Definition at line 259 of file cbs_h2645.c.
#define FUNC_SEI | ( | name | ) | FUNC_NAME1(READWRITE, sei, name) |
Definition at line 260 of file cbs_h2645.c.
Referenced by sei().
Definition at line 262 of file cbs_h2645.c.
#define u | ( | width, | |
name, | |||
range_min, | |||
range_max | |||
) | xu(width, name, current->name, range_min, range_max, 0, ) |
Definition at line 264 of file cbs_h2645.c.
Referenced by adpcm_compress_trellis(), adpcm_decode_frame(), application_data(), apply_lut(), apply_lut10(), aud(), av_gcd(), avui_decode_frame(), aw_pulse_set2(), bitpacked_decode_yuv422p10(), build_diff_map(), calc_combed_score(), calc_persp_luts(), calculate_codes(), checkasm_check_v210dec(), cinepak_decode_codebook(), comment(), convert_input(), cpia_decode_frame(), cqt_calc(), create_chrominance_lut(), decode_aybr(), decode_aybri(), decode_blocks(), decode_byry(), decode_byryi(), decode_c82i(), decode_c82p(), decode_ca2i(), decode_ca2p(), decode_ca4i(), decode_ca4p(), decode_fint(), decode_frame(), decode_key(), decode_subband_slice_buffered(), decode_value3(), decode_ybr(), decode_ybr10(), decode_ybr10i(), decode_ybri(), decode_ybyr(), decode_yry10(), decode_yry10i(), decompress(), dht(), do_chromahold16_slice(), do_chromahold_slice(), do_chromakey16_slice(), do_chromakey_slice(), dqt(), dv_decode_ac(), dxv_decompress_cgo(), encode_422_bitstream(), ff_rtjpeg_decode_frame_yuv420(), ff_sws_alphablendaway(), ff_vorbis_len2vlc(), ff_yuv2rgb_c_init_tables(), fill_elements(), fill_in_tongue(), fill_lut(), fill_pixels(), filter_frame(), frame_block_to_cell(), frame_header(), generate_joint_tables(), generate_kernel(), get_benchmark_time_stamps(), get_bits(), get_s16l(), hl_decode_mb_predict_luma(), huffman_table(), if(), ilog2(), init(), intra_predict(), inv_cdf(), jp2_find_codestream(), lcg_random(), main(), mode17(), mode23(), mode24(), model256_update(), model2_update(), model_update(), monochrome_color_location(), mss2_blit_wmv9_template(), nal_unit_header(), pick_color(), pow_m1_4(), pps(), print_option(), process_slice_uyvy422(), process_slice_yuv420p(), process_slice_yuv422p(), process_slice_yuv444p(), profile_tier_level(), quantisation_table(), read_block_types(), read_high_coeffs(), render_default_font(), resample_cubic(), resample_linear(), reverse_dc_prediction(), rgb16_32ToUV_c_template(), rgb2yuv_fsb(), rso_write_header(), rv34_pred_4x4_block(), rv40_weak_loop_filter(), sbr_sum_square_c(), scan_float(), scan_header(), scan_int32(), sei_active_parameter_sets(), sei_decoded_picture_hash(), sei_pic_timestamp(), sei_pic_timing(), sei_recovery_point(), sei_time_code(), sign_extend(), slice_header(), slice_segment_header(), sps(), sps_scc_extension(), svq3_add_idct_c(), svq3_decode_mb(), sws_scale(), tm2_decode_blocks(), uninit_options(), update_model2_to_6(), user_data_registered(), v210_decode_slice(), v210_enc_TMPL(), v308_decode_frame(), v308_encode_frame(), v360_slice(), v408_decode_frame(), v408_encode_frame(), v410_decode_slice(), v410_encode_frame(), vp9_handle_packet(), vps(), vui_parameters(), wavpack_encode_block(), wv_get_value_float(), y216_decode_frame(), y41p_decode_frame(), y41p_encode_frame(), yuv2nv12cX_c(), yuv2p010cX_c(), yuv2p016cX_c(), yuv2rgb(), yuv2yuv(), yuv4_decode_frame(), yuv4_encode_frame(), and zero12v_decode_frame().
Definition at line 266 of file cbs_h2645.c.
Referenced by alternative_transfer_characteristics(), aud(), content_light_level_info(), ff_make_absolute_url(), fill_rgb2yuv_table(), hrd_parameters(), mastering_display_colour_volume(), nal_unit_header(), pps(), profile_tier_level(), sei_alpha_channel_info(), sei_buffering_period(), sei_display_orientation(), sei_pic_timestamp(), sei_pic_timing(), slice_header(), slice_segment_header(), sps(), sps_extension(), vps(), and vui_parameters().
Definition at line 268 of file cbs_h2645.c.
Definition at line 269 of file cbs_h2645.c.
Referenced by hrd_parameters(), pps(), pps_range_extension(), pps_scc_extension(), pred_weight_table(), sei_active_parameter_sets(), sei_buffering_period(), sei_display_orientation(), sei_pan_scan_rect(), sei_pic_timing(), sei_recovery_point(), slice_header(), slice_segment_header(), sps(), sps_extension(), sps_scc_extension(), st_ref_pic_set(), vps(), and vui_parameters().
#define i | ( | width, | |
name, | |||
range_min, | |||
range_max | |||
) | xi(width, name, current->name, range_min, range_max, 0, ) |
Definition at line 271 of file cbs_h2645.c.
Referenced by cbs_h2645_assemble_fragment(), cbs_h2645_fragment_add_nals(), cbs_h2645_split_fragment(), cbs_h2645_write_slice_data(), cbs_h264_close(), cbs_h264_flush(), cbs_h265_close(), cbs_h265_flush(), cbs_read_se_golomb(), cbs_read_ue_golomb(), cbs_write_se_golomb(), cbs_write_ue_golomb(), and ff_cbs_sei_find_type().
#define ib | ( | width, | |
name | |||
) | xi(width, name, current->name, MIN_INT_BITS(width), MAX_INT_BITS(width), 0, ) |
Definition at line 273 of file cbs_h2645.c.
Referenced by sei_pic_timestamp(), and yae_overlap_add().
Definition at line 275 of file cbs_h2645.c.
Referenced by decode_block_progressive(), mjpeg_decode_scan_progressive_ac(), mpeg2_metadata_update_fragment(), pps(), pps_scc_extension(), pred_weight_table(), read_ts(), sei_recovery_point(), slice_header(), slice_segment_header(), sps(), and vaapi_encode_mpeg2_init_sequence_params().
#define us | ( | width, | |
name, | |||
range_min, | |||
range_max, | |||
subs, | |||
... | |||
) | xu(width, name, current->name, range_min, range_max, subs, __VA_ARGS__) |
Definition at line 278 of file cbs_h2645.c.
Referenced by activate(), application_data(), av_dump_format(), comment(), frame_header(), get_metadata_duration(), huffman_table(), parse_read_interval(), parse_time_or_die(), pps(), print_report(), profile_tier_level(), quantisation_table(), ref_pic_lists_modification(), scan_header(), sei_decoded_picture_hash(), sei_time_code(), slice_segment_header(), and user_data_unregistered().
#define ubs | ( | width, | |
name, | |||
subs, | |||
... | |||
) | xu(width, name, current->name, 0, MAX_UINT_BITS(width), subs, __VA_ARGS__) |
Definition at line 280 of file cbs_h2645.c.
Referenced by mastering_display_colour_volume(), pps_scc_extension(), profile_tier_level(), sei_buffering_period(), sei_pic_timing(), sei_time_code(), slice_segment_header(), sps(), and sps_scc_extension().
Definition at line 282 of file cbs_h2645.c.
#define ues | ( | name, | |
range_min, | |||
range_max, | |||
subs, | |||
... | |||
) | xue(name, current->name, range_min, range_max, subs, __VA_ARGS__) |
Definition at line 284 of file cbs_h2645.c.
Referenced by hrd_parameters(), pps(), scaling_list_data(), sei_active_parameter_sets(), sei_pic_timing(), slice_segment_header(), sps(), st_ref_pic_set(), sub_layer_hrd_parameters(), and vps().
#define is | ( | width, | |
name, | |||
range_min, | |||
range_max, | |||
subs, | |||
... | |||
) | xi(width, name, current->name, range_min, range_max, subs, __VA_ARGS__) |
Definition at line 286 of file cbs_h2645.c.
#define ibs | ( | width, | |
name, | |||
subs, | |||
... | |||
) | xi(width, name, current->name, MIN_INT_BITS(width), MAX_INT_BITS(width), subs, __VA_ARGS__) |
Definition at line 288 of file cbs_h2645.c.
Referenced by sei_time_code().
#define ses | ( | name, | |
range_min, | |||
range_max, | |||
subs, | |||
... | |||
) | xse(name, current->name, range_min, range_max, subs, __VA_ARGS__) |
Definition at line 290 of file cbs_h2645.c.
Referenced by pps_range_extension(), pred_weight_table(), scaling_list(), scaling_list_data(), sei_pan_scan_rect(), and sps().
Definition at line 293 of file cbs_h2645.c.
#define READ |
Definition at line 299 of file cbs_h2645.c.
#define READWRITE read |
Definition at line 389 of file cbs_h2645.c.
#define RWContext GetBitContext |
Definition at line 390 of file cbs_h2645.c.
Definition at line 392 of file cbs_h2645.c.
Referenced by extension_data(), message(), message_list(), sei_buffering_period(), user_data_registered(), and user_data_unregistered().
#define xue | ( | name, | |
var, | |||
range_min, | |||
range_max, | |||
subs, | |||
... | |||
) |
Definition at line 398 of file cbs_h2645.c.
Referenced by dec_ref_pic_marking(), and ref_pic_list_modification().
Definition at line 404 of file cbs_h2645.c.
Referenced by biquad(), calculate_sums(), decode_entropy_coded_image(), encode_packet(), filter_slice(), gen_image(), getpix(), and sbr_neg_odd_64_c().
#define xse | ( | name, | |
var, | |||
range_min, | |||
range_max, | |||
subs, | |||
... | |||
) |
Definition at line 410 of file cbs_h2645.c.
Definition at line 417 of file cbs_h2645.c.
#define more_rbsp_data | ( | var | ) | ((var) = cbs_h2645_read_more_rbsp_data(rw)) |
Definition at line 427 of file cbs_h2645.c.
Referenced by pps().
#define bit_position | ( | rw | ) | (get_bits_count(rw)) |
Definition at line 429 of file cbs_h2645.c.
Referenced by message().
#define byte_alignment | ( | rw | ) | (get_bits_count(rw) % 8) |
Definition at line 430 of file cbs_h2645.c.
Definition at line 432 of file cbs_h2645.c.
Referenced by extension_data(), message(), pps(), user_data_registered(), and user_data_unregistered().
Definition at line 448 of file cbs_h2645.c.
Definition at line 448 of file cbs_h2645.c.
Definition at line 448 of file cbs_h2645.c.
#define WRITE |
Definition at line 388 of file cbs_h2645.c.
#define READWRITE write |
Definition at line 389 of file cbs_h2645.c.
#define RWContext PutBitContext |
Definition at line 390 of file cbs_h2645.c.
Definition at line 392 of file cbs_h2645.c.
#define xue | ( | name, | |
var, | |||
range_min, | |||
range_max, | |||
subs, | |||
... | |||
) |
Definition at line 398 of file cbs_h2645.c.
Definition at line 404 of file cbs_h2645.c.
#define xse | ( | name, | |
var, | |||
range_min, | |||
range_max, | |||
subs, | |||
... | |||
) |
Definition at line 410 of file cbs_h2645.c.
Definition at line 417 of file cbs_h2645.c.
#define more_rbsp_data | ( | var | ) | (var) |
Definition at line 427 of file cbs_h2645.c.
#define bit_position | ( | rw | ) | (put_bits_count(rw)) |
Definition at line 429 of file cbs_h2645.c.
#define byte_alignment | ( | rw | ) | (put_bits_count(rw) % 8) |
Definition at line 430 of file cbs_h2645.c.
Definition at line 432 of file cbs_h2645.c.
Definition at line 448 of file cbs_h2645.c.
Definition at line 448 of file cbs_h2645.c.
Definition at line 448 of file cbs_h2645.c.
#define cbs_h2645_replace_ps | ( | h26n, | |
ps_name, | |||
ps_var, | |||
id_element | |||
) |
Definition at line 664 of file cbs_h2645.c.
|
static |
Definition at line 34 of file cbs_h2645.c.
|
static |
Definition at line 86 of file cbs_h2645.c.
|
static |
Definition at line 142 of file cbs_h2645.c.
|
static |
Definition at line 185 of file cbs_h2645.c.
|
static |
Definition at line 238 of file cbs_h2645.c.
Referenced by sei_buffering_period().
|
static |
Definition at line 337 of file cbs_h2645.c.
Referenced by cbs_h2645_replace_ps(), cbs_h265_read_nal_unit(), extension_data(), and message_list().
|
static |
Definition at line 471 of file cbs_h2645.c.
Referenced by cbs_h2645_split_fragment().
|
static |
Definition at line 505 of file cbs_h2645.c.
cbs_h2645_replace_ps | ( | cbs_h2645_replace_ps( | 4, |
cbs_h2645_replace_ps( | SPS, | ||
cbs_h2645_replace_ps( | sps, | ||
seq_parameter_set_id | |||
) |
Definition at line 691 of file cbs_h2645.c.
|
static |
Definition at line 816 of file cbs_h2645.c.
|
static |
Definition at line 937 of file cbs_h2645.c.
Referenced by cbs_h264_write_nal_unit(), and cbs_h265_write_nal_unit().
|
static |
Definition at line 995 of file cbs_h2645.c.
|
static |
Definition at line 1112 of file cbs_h2645.c.
|
static |
Definition at line 1224 of file cbs_h2645.c.
Referenced by cbs_h2645_assemble_fragment().
|
static |
Definition at line 1240 of file cbs_h2645.c.
|
static |
Definition at line 1320 of file cbs_h2645.c.
|
static |
Definition at line 1338 of file cbs_h2645.c.
|
static |
Definition at line 1351 of file cbs_h2645.c.
|
static |
Definition at line 1373 of file cbs_h2645.c.
Definition at line 1388 of file cbs_h2645.c.
Definition at line 1424 of file cbs_h2645.c.
const SEIMessageTypeDescriptor* ff_cbs_sei_find_type | ( | CodedBitstreamContext * | ctx, |
int | payload_type | ||
) |
Find the type descriptor for the given payload type.
Returns NULL if the payload type is not known.
Definition at line 1640 of file cbs_h2645.c.
Referenced by ff_cbs_sei_add_message(), and message().
|
static |
Definition at line 1395 of file cbs_h2645.c.
|
static |
Definition at line 1431 of file cbs_h2645.c.
const CodedBitstreamType ff_cbs_type_h264 |
Definition at line 1476 of file cbs_h2645.c.
const CodedBitstreamType ff_cbs_type_h265 |
Definition at line 1492 of file cbs_h2645.c.
|
static |
Definition at line 1508 of file cbs_h2645.c.
|
static |
Definition at line 1548 of file cbs_h2645.c.
Referenced by ff_cbs_sei_find_type().
|
static |
Definition at line 1582 of file cbs_h2645.c.
Referenced by ff_cbs_sei_find_type().