FFmpeg
cbs_lcevc.h
Go to the documentation of this file.
1 /*
2  * This file is part of FFmpeg.
3  *
4  * FFmpeg is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * FFmpeg is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with FFmpeg; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17  */
18 
19 #ifndef AVCODEC_CBS_LCEVC_H
20 #define AVCODEC_CBS_LCEVC_H
21 
22 #include <stddef.h>
23 #include <stdint.h>
24 
25 #include "cbs_h2645.h"
26 #include "cbs_sei.h"
27 #include "lcevc.h"
28 
29 typedef struct LCEVCRawNALUnitHeader {
30  uint8_t nal_unit_type;
31  uint16_t reserved_flag;
33 
34 typedef struct LCEVCRawSequenceConfig {
35  uint8_t profile_idc;
36  uint8_t level_idc;
37  uint8_t sublevel_idc;
48 
49 typedef struct LCEVCRawGlobalConfig {
51  uint8_t resolution_type;
52  uint8_t transform_type;
54  uint8_t base_depth_type;
60  uint8_t upsample_type;
68  uint8_t planes_type;
71  uint16_t upsampler_coeff1;
72  uint16_t upsampler_coeff2;
73  uint16_t upsampler_coeff3;
74  uint16_t upsampler_coeff4;
86 
87 typedef struct LCEVCRawPictureConfig {
102  uint8_t qm_coefficient_0[16];
103  uint8_t qm_coefficient_1[16];
105  uint8_t dequant_offset;
106  uint8_t dithering_type;
107  uint8_t reserverd_zero;
110 
111  LCEVCRawGlobalConfig *gc; ///< RefStruct references
113 
114 typedef struct LCEVCRawEncodedData {
116 
117  uint8_t surfaces_entropy_enabled_flag[3][3][16];
118  uint8_t surfaces_rle_only_flag[3][3][16];
121 
122  uint8_t *data;
124  size_t header_size;
125  size_t data_size;
126 
127  LCEVCRawSequenceConfig *sc; ///< RefStruct references
128  LCEVCRawGlobalConfig *gc; ///< RefStruct references
129  LCEVCRawPictureConfig *pc; ///< RefStruct references
131 
132 typedef struct LCEVCRawVUI {
135  uint16_t sar_width;
136  uint8_t sar_height;
140  uint8_t video_format;
149 } LCEVCRawVUI;
150 
151 typedef struct LCEVCRawSEI {
153 
154  uint8_t payload_type;
155  uint32_t payload_size;
156  void *payload;
157  void *payload_ref; ///< RefStruct reference
158 } LCEVCRawSEI;
159 
160 typedef struct LCEVCRawAdditionalInfo {
162 
165 
166  uint32_t payload_size;
167  void *payload;
168  void *payload_ref; ///< RefStruct reference
170 
171 typedef struct LCEVCRawFiller {
172  uint32_t filler_size;
174 
175 typedef struct LCEVCRawProcessBlock {
176  uint32_t payload_type;
177  uint32_t payload_size;
178  void *payload;
179  void *payload_ref; ///< RefStruct reference
180  uint8_t *extension_data; ///< RefStruct reference
183 
184 typedef struct LCEVCRawProcessBlockList {
189 
190 typedef struct LCEVCRawNAL {
192 
194 } LCEVCRawNAL;
195 
196 typedef struct LCEVCProcessBlockState {
197  // The type of the payload being written.
198  uint32_t payload_type;
199  // When reading, contains the size of the payload to allow finding the
200  // end of variable-length fields (such as user_data_payload_byte[]).
201  // (When writing, the size will be derived from the total number of
202  // bytes actually written.)
203  uint32_t payload_size;
204  // When writing, indicates that payload extension data is present so
205  // all extended fields must be written. May be updated by the writer
206  // to indicate that extended fields have been written, so the extension
207  // end bits must be written too.
210 
212  struct GetBitContext *rw,
213  void *current,
215  int nal_unit_type);
216 
218  struct PutBitContext *rw,
219  void *current,
221  int nal_unit_type);
222 
224  // Payload type for the block. (-1 in this field ends a list.)
226  // Size of the decomposed structure.
227  size_t payload_size;
228  // Read bitstream into Process Block.
230  // Write bitstream from Process Block.
233 
234 // End-of-list sentinel element.
235 #define LCEVC_PROCESS_BLOCK_TYPE_END { .payload_type = -1 }
236 
238  // Reader/writer context in common with the H.264 implementation.
240 
242 
243  // All currently available parameter sets. These are updated when
244  // any parameter set NAL unit is read/written with this context.
245  LCEVCRawSequenceConfig *sc; ///< RefStruct references
246  LCEVCRawGlobalConfig *gc; ///< RefStruct references
247  LCEVCRawPictureConfig *pc; ///< RefStruct references
249 
250 /**
251  * Find the type descriptor for the given payload type.
252  *
253  * Returns NULL if the payload type is not known.
254  */
256  int payload_type);
257 
258 /**
259  * Allocate a new payload for the given Process Block.
260  */
263 
264 /**
265  * Allocate a new empty Process Block in a block list at a given position.
266  */
268 
269 /**
270  * Free all Process Block in a block list.
271  */
273 
274 /**
275  * Add a process block to an access unit.
276  *
277  * An existing NAL unit of type IDR or NON_IDR are required.
278  *
279  * If set, payload_ref must be a RefStruct reference backing payload_data.
280  * This function creates a new reference to payload_ref in this case.
281  * If payload_ref is NULL, the new message will not be reference counted.
282  */
285  int position,
286  uint32_t payload_type,
287  void *payload_data,
288  void *payload_ref);
289 
290 /**
291  * Iterate over blocks with the given payload type in an access unit.
292  *
293  * Set block to NULL in the first call. Returns 0 while more blocks
294  * are available, AVERROR(ENOENT) when all blocks have been found.
295  */
298  uint32_t payload_type,
300 
301 /**
302  * Delete all blocks with the given payload type from an access unit.
303  */
306  uint32_t payload_type);
307 
308 #endif /* AVCODEC_CBS_LCEVC_H */
LCEVCRawVUI::overscan_appropriate_flag
uint8_t overscan_appropriate_flag
Definition: cbs_lcevc.h:138
LCEVCRawSequenceConfig::conf_win_left_offset
uint32_t conf_win_left_offset
Definition: cbs_lcevc.h:43
LCEVCRawPictureConfig::temporal_refresh_bit_flag
uint8_t temporal_refresh_bit_flag
Definition: cbs_lcevc.h:92
LCEVCRawGlobalConfig::upsampler_coeff2
uint16_t upsampler_coeff2
Definition: cbs_lcevc.h:72
LCEVCRawGlobalConfig::transform_type
uint8_t transform_type
Definition: cbs_lcevc.h:52
ff_cbs_lcevc_free_process_block_list
void ff_cbs_lcevc_free_process_block_list(LCEVCRawProcessBlockList *list)
Free all Process Block in a block list.
Definition: cbs_lcevc.c:591
LCEVCRawSequenceConfig::conformance_window_flag
uint8_t conformance_window_flag
Definition: cbs_lcevc.h:38
LCEVCRawProcessBlock::payload
void * payload
Definition: cbs_lcevc.h:178
LCEVCProcessBlockState::payload_size
uint32_t payload_size
Definition: cbs_lcevc.h:203
LCEVCRawPictureConfig::qm_coefficient_0
uint8_t qm_coefficient_0[16]
Definition: cbs_lcevc.h:102
LCEVCProcessBlockTypeDescriptor::write
LCEVCRawProcessBlockWriteFunction write
Definition: cbs_lcevc.h:231
LCEVCRawEncodedData::temporal_surfaces_rle_only_flag
uint8_t temporal_surfaces_rle_only_flag[3]
Definition: cbs_lcevc.h:120
CodedBitstreamLCEVCContext::common
CodedBitstreamH2645Context common
Definition: cbs_lcevc.h:239
LCEVCRawNAL::nal_unit_header
LCEVCRawNALUnitHeader nal_unit_header
Definition: cbs_lcevc.h:191
LCEVCRawPictureConfig::reserved_zeros_5bit
uint8_t reserved_zeros_5bit
Definition: cbs_lcevc.h:109
LCEVCRawProcessBlock::extension_bit_length
size_t extension_bit_length
Definition: cbs_lcevc.h:181
LCEVCRawSequenceConfig::sublevel_idc
uint8_t sublevel_idc
Definition: cbs_lcevc.h:37
LCEVCRawGlobalConfig::planes_type
uint8_t planes_type
Definition: cbs_lcevc.h:68
LCEVCRawPictureConfig::dequant_offset_mode_flag
uint8_t dequant_offset_mode_flag
Definition: cbs_lcevc.h:104
SEIRawMessage
Definition: cbs_sei.h:142
LCEVCRawPictureConfig::reserved_zeros_7bit
uint8_t reserved_zeros_7bit
Definition: cbs_lcevc.h:99
LCEVCRawPictureConfig::picture_type_bit_flag
uint8_t picture_type_bit_flag
Definition: cbs_lcevc.h:91
LCEVCRawSequenceConfig::conf_win_top_offset
uint32_t conf_win_top_offset
Definition: cbs_lcevc.h:45
LCEVCRawPictureConfig::dithering_control_flag
uint8_t dithering_control_flag
Definition: cbs_lcevc.h:95
LCEVCRawEncodedData::header_size
size_t header_size
Definition: cbs_lcevc.h:124
CodedBitstreamContext
Context structure for coded bitstream operations.
Definition: cbs.h:226
LCEVCRawSequenceConfig::conf_win_right_offset
uint32_t conf_win_right_offset
Definition: cbs_lcevc.h:44
LCEVCRawGlobalConfig::custom_resolution_width
uint16_t custom_resolution_width
Definition: cbs_lcevc.h:82
LCEVCRawSequenceConfig::conf_win_bottom_offset
uint32_t conf_win_bottom_offset
Definition: cbs_lcevc.h:46
LCEVCRawGlobalConfig::scaling_mode_level1
uint8_t scaling_mode_level1
Definition: cbs_lcevc.h:62
LCEVCRawGlobalConfig::scaling_mode_level2
uint8_t scaling_mode_level2
Definition: cbs_lcevc.h:63
LCEVCRawVUI::video_format
uint8_t video_format
Definition: cbs_lcevc.h:140
LCEVCRawAdditionalInfo::additional_info_type
uint8_t additional_info_type
Definition: cbs_lcevc.h:161
LCEVCRawVUI::overscan_info_present_flag
uint8_t overscan_info_present_flag
Definition: cbs_lcevc.h:137
LCEVCRawProcessBlock::payload_size
uint32_t payload_size
Definition: cbs_lcevc.h:177
LCEVCRawVUI::matrix_coefficients
uint8_t matrix_coefficients
Definition: cbs_lcevc.h:145
LCEVCRawGlobalConfig
Definition: cbs_lcevc.h:49
LCEVCProcessBlockState::payload_type
uint32_t payload_type
Definition: cbs_lcevc.h:198
CodedBitstreamLCEVCContext::dithering_control_flag
int dithering_control_flag
Definition: cbs_lcevc.h:241
LCEVCRawSEI
Definition: cbs_lcevc.h:151
LCEVCRawPictureConfig::reserved_zeros_4bit
uint8_t reserved_zeros_4bit
Definition: cbs_lcevc.h:96
LCEVCRawVUI
Definition: cbs_lcevc.h:132
LCEVCRawPictureConfig::qm_coefficient_1
uint8_t qm_coefficient_1[16]
Definition: cbs_lcevc.h:103
LCEVCRawSequenceConfig::extended_level_idc
uint8_t extended_level_idc
Definition: cbs_lcevc.h:41
LCEVCRawGlobalConfig::level1_depth_flag
uint8_t level1_depth_flag
Definition: cbs_lcevc.h:66
LCEVCRawEncodedData::pc
LCEVCRawPictureConfig * pc
RefStruct references.
Definition: cbs_lcevc.h:129
LCEVCRawEncodedData::surfaces_entropy_enabled_flag
uint8_t surfaces_entropy_enabled_flag[3][3][16]
Definition: cbs_lcevc.h:117
GetBitContext
Definition: get_bits.h:109
LCEVCRawGlobalConfig::temporal_step_width_modifier_signalled_flag
uint8_t temporal_step_width_modifier_signalled_flag
Definition: cbs_lcevc.h:56
LCEVCRawSequenceConfig::level_idc
uint8_t level_idc
Definition: cbs_lcevc.h:36
LCEVCRawEncodedData::gc
LCEVCRawGlobalConfig * gc
RefStruct references.
Definition: cbs_lcevc.h:128
ff_cbs_lcevc_process_block_find_type
const LCEVCProcessBlockTypeDescriptor * ff_cbs_lcevc_process_block_find_type(CodedBitstreamContext *ctx, int payload_type)
Find the type descriptor for the given payload type.
Definition: cbs_lcevc.c:808
LCEVCRawPictureConfig::quant_matrix_mode
uint8_t quant_matrix_mode
Definition: cbs_lcevc.h:89
LCEVCRawSequenceConfig
Definition: cbs_lcevc.h:34
LCEVCRawGlobalConfig::tile_dimensions_type
uint8_t tile_dimensions_type
Definition: cbs_lcevc.h:64
LCEVCProcessBlockState
Definition: cbs_lcevc.h:196
LCEVCRawGlobalConfig::compression_type_size_per_tile
uint8_t compression_type_size_per_tile
Definition: cbs_lcevc.h:81
CodedBitstreamH2645Context
Definition: cbs_h2645.h:26
LCEVCRawGlobalConfig::compression_type_entropy_enabled_per_tile_flag
uint8_t compression_type_entropy_enabled_per_tile_flag
Definition: cbs_lcevc.h:80
LCEVCRawFiller
Definition: cbs_lcevc.h:171
LCEVCRawPictureConfig::level1_filtering_enabled_flag
uint8_t level1_filtering_enabled_flag
Definition: cbs_lcevc.h:101
LCEVCRawPictureConfig
Definition: cbs_lcevc.h:87
CodedBitstreamFragment
Coded bitstream fragment structure, combining one or more units.
Definition: cbs.h:129
LCEVCRawGlobalConfig::processed_planes_type_flag
uint8_t processed_planes_type_flag
Definition: cbs_lcevc.h:50
LCEVCRawSequenceConfig::reserved_zeros_5bit
uint8_t reserved_zeros_5bit
Definition: cbs_lcevc.h:39
LCEVCRawVUI::chroma_loc_info_present_flag
uint8_t chroma_loc_info_present_flag
Definition: cbs_lcevc.h:146
LCEVCRawVUI::chroma_sample_loc_type_top_field
uint8_t chroma_sample_loc_type_top_field
Definition: cbs_lcevc.h:147
CodedBitstreamLCEVCContext::gc
LCEVCRawGlobalConfig * gc
RefStruct references.
Definition: cbs_lcevc.h:246
LCEVCProcessBlockTypeDescriptor::payload_size
size_t payload_size
Definition: cbs_lcevc.h:227
ctx
static AVFormatContext * ctx
Definition: movenc.c:49
ff_cbs_lcevc_add_process_block
int ff_cbs_lcevc_add_process_block(CodedBitstreamContext *ctx, CodedBitstreamFragment *au, int position, uint32_t payload_type, void *payload_data, void *payload_ref)
Add a process block to an access unit.
Definition: cbs_lcevc.c:613
LCEVCRawPictureConfig::temporal_signalling_present_flag
uint8_t temporal_signalling_present_flag
Definition: cbs_lcevc.h:97
LCEVCRawSEI::payload_size
uint32_t payload_size
Definition: cbs_lcevc.h:155
LCEVCRawGlobalConfig::level1_filtering_second_coefficient
uint8_t level1_filtering_second_coefficient
Definition: cbs_lcevc.h:76
PutBitContext
Definition: put_bits.h:50
LCEVCRawAdditionalInfo::vui
LCEVCRawVUI vui
Definition: cbs_lcevc.h:164
LCEVCRawNAL::process_block_list
LCEVCRawProcessBlockList process_block_list
Definition: cbs_lcevc.h:193
LCEVCRawGlobalConfig::chroma_step_width_flag
uint8_t chroma_step_width_flag
Definition: cbs_lcevc.h:67
LCEVCRawPictureConfig::step_width_sublayer2
uint16_t step_width_sublayer2
Definition: cbs_lcevc.h:94
LCEVCRawNAL
Definition: cbs_lcevc.h:190
LCEVCRawSEI::payload_ref
void * payload_ref
RefStruct reference.
Definition: cbs_lcevc.h:157
LCEVCRawGlobalConfig::temporal_step_width_modifier
uint8_t temporal_step_width_modifier
Definition: cbs_lcevc.h:70
LCEVCRawVUI::sar_height
uint8_t sar_height
Definition: cbs_lcevc.h:136
LCEVCRawPictureConfig::no_enhancement_bit_flag
uint8_t no_enhancement_bit_flag
Definition: cbs_lcevc.h:88
LCEVCRawNALUnitHeader
Definition: cbs_lcevc.h:29
cbs_sei.h
LCEVCRawGlobalConfig::base_depth_type
uint8_t base_depth_type
Definition: cbs_lcevc.h:54
list
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 list
Definition: filter_design.txt:25
LCEVCRawGlobalConfig::upsampler_coeff3
uint16_t upsampler_coeff3
Definition: cbs_lcevc.h:73
LCEVCRawGlobalConfig::resolution_type
uint8_t resolution_type
Definition: cbs_lcevc.h:51
LCEVCRawNALUnitHeader::nal_unit_type
uint8_t nal_unit_type
Definition: cbs_lcevc.h:30
CodedBitstreamLCEVCContext
Definition: cbs_lcevc.h:237
LCEVCRawVUI::transfer_characteristics
uint8_t transfer_characteristics
Definition: cbs_lcevc.h:144
LCEVCProcessBlockTypeDescriptor::payload_type
int payload_type
Definition: cbs_lcevc.h:225
LCEVCRawSequenceConfig::extended_profile_idc
uint8_t extended_profile_idc
Definition: cbs_lcevc.h:40
LCEVCRawAdditionalInfo::payload_size
uint32_t payload_size
Definition: cbs_lcevc.h:166
LCEVCRawEncodedData::nal_unit_header
LCEVCRawNALUnitHeader nal_unit_header
Definition: cbs_lcevc.h:115
ff_cbs_lcevc_find_process_block
int ff_cbs_lcevc_find_process_block(CodedBitstreamContext *ctx, CodedBitstreamFragment *au, uint32_t payload_type, LCEVCRawProcessBlock **block)
Iterate over blocks with the given payload type in an access unit.
Definition: cbs_lcevc.c:665
LCEVCRawEncodedData::sc
LCEVCRawSequenceConfig * sc
RefStruct references.
Definition: cbs_lcevc.h:127
LCEVCRawProcessBlock::payload_ref
void * payload_ref
RefStruct reference.
Definition: cbs_lcevc.h:179
LCEVCRawProcessBlockList::nb_blocks
int nb_blocks
Definition: cbs_lcevc.h:186
LCEVCRawPictureConfig::dithering_strength
uint8_t dithering_strength
Definition: cbs_lcevc.h:108
LCEVCRawGlobalConfig::reserved_zeros_4bit
uint8_t reserved_zeros_4bit
Definition: cbs_lcevc.h:69
LCEVCRawProcessBlock
Definition: cbs_lcevc.h:175
LCEVCRawGlobalConfig::user_data_enabled
uint8_t user_data_enabled
Definition: cbs_lcevc.h:65
LCEVCRawPictureConfig::gc
LCEVCRawGlobalConfig * gc
RefStruct references.
Definition: cbs_lcevc.h:111
LCEVCRawAdditionalInfo::sei
LCEVCRawSEI sei
Definition: cbs_lcevc.h:163
LCEVCRawVUI::sar_width
uint16_t sar_width
Definition: cbs_lcevc.h:135
LCEVCRawGlobalConfig::level1_filtering_first_coefficient
uint8_t level1_filtering_first_coefficient
Definition: cbs_lcevc.h:75
LCEVCRawGlobalConfig::custom_tile_height
uint16_t custom_tile_height
Definition: cbs_lcevc.h:78
LCEVCRawVUI::colour_description_present_flag
uint8_t colour_description_present_flag
Definition: cbs_lcevc.h:142
LCEVCRawPictureConfig::dequant_offset
uint8_t dequant_offset
Definition: cbs_lcevc.h:105
LCEVCRawGlobalConfig::custom_resolution_height
uint16_t custom_resolution_height
Definition: cbs_lcevc.h:83
LCEVCRawProcessBlock::payload_type
uint32_t payload_type
Definition: cbs_lcevc.h:176
LCEVCRawGlobalConfig::enhancement_depth_type
uint8_t enhancement_depth_type
Definition: cbs_lcevc.h:55
LCEVCRawProcessBlock::extension_data
uint8_t * extension_data
RefStruct reference.
Definition: cbs_lcevc.h:180
LCEVCRawVUI::video_full_range_flag
uint8_t video_full_range_flag
Definition: cbs_lcevc.h:141
LCEVCRawVUI::aspect_ratio_idc
uint8_t aspect_ratio_idc
Definition: cbs_lcevc.h:134
CodedBitstreamLCEVCContext::sc
LCEVCRawSequenceConfig * sc
RefStruct references.
Definition: cbs_lcevc.h:245
cbs_h2645.h
LCEVCRawPictureConfig::reserverd_zero
uint8_t reserverd_zero
Definition: cbs_lcevc.h:107
LCEVCRawGlobalConfig::chroma_step_width_multiplier
uint8_t chroma_step_width_multiplier
Definition: cbs_lcevc.h:84
CodedBitstreamLCEVCContext::pc
LCEVCRawPictureConfig * pc
RefStruct references.
Definition: cbs_lcevc.h:247
LCEVCRawPictureConfig::step_width_sublayer1_enabled_flag
uint8_t step_width_sublayer1_enabled_flag
Definition: cbs_lcevc.h:93
LCEVCRawGlobalConfig::level1_filtering_signalled_flag
uint8_t level1_filtering_signalled_flag
Definition: cbs_lcevc.h:61
LCEVCRawGlobalConfig::temporal_tile_intra_signalling_enabled_flag
uint8_t temporal_tile_intra_signalling_enabled_flag
Definition: cbs_lcevc.h:58
LCEVCRawGlobalConfig::predicted_residual_mode_flag
uint8_t predicted_residual_mode_flag
Definition: cbs_lcevc.h:57
LCEVCRawGlobalConfig::custom_tile_width
uint16_t custom_tile_width
Definition: cbs_lcevc.h:77
LCEVCRawEncodedData::data
uint8_t * data
Definition: cbs_lcevc.h:122
LCEVCRawProcessBlockList::nb_blocks_allocated
int nb_blocks_allocated
Definition: cbs_lcevc.h:187
LCEVCRawPictureConfig::dithering_type
uint8_t dithering_type
Definition: cbs_lcevc.h:106
LCEVCRawVUI::colour_primaries
uint8_t colour_primaries
Definition: cbs_lcevc.h:143
LCEVCRawAdditionalInfo
Definition: cbs_lcevc.h:160
LCEVCRawSequenceConfig::profile_idc
uint8_t profile_idc
Definition: cbs_lcevc.h:35
LCEVCRawFiller::filler_size
uint32_t filler_size
Definition: cbs_lcevc.h:172
LCEVCRawEncodedData::surfaces_rle_only_flag
uint8_t surfaces_rle_only_flag[3][3][16]
Definition: cbs_lcevc.h:118
LCEVCRawNALUnitHeader::reserved_flag
uint16_t reserved_flag
Definition: cbs_lcevc.h:31
ff_cbs_lcevc_list_add
int ff_cbs_lcevc_list_add(LCEVCRawProcessBlockList *list, int position)
Allocate a new empty Process Block in a block list at a given position.
Definition: cbs_lcevc.c:552
LCEVCRawPictureConfig::step_width_sublayer1
uint16_t step_width_sublayer1
Definition: cbs_lcevc.h:100
LCEVCRawProcessBlockList::blocks
LCEVCRawProcessBlock * blocks
Definition: cbs_lcevc.h:185
LCEVCRawVUI::video_signal_type_present_flag
uint8_t video_signal_type_present_flag
Definition: cbs_lcevc.h:139
LCEVCRawAdditionalInfo::payload
void * payload
Definition: cbs_lcevc.h:167
LCEVCRawPictureConfig::dequant_offset_signalled_flag
uint8_t dequant_offset_signalled_flag
Definition: cbs_lcevc.h:90
LCEVCProcessBlockTypeDescriptor
Definition: cbs_lcevc.h:223
lcevc.h
LCEVCRawVUI::chroma_sample_loc_type_bottom_field
uint8_t chroma_sample_loc_type_bottom_field
Definition: cbs_lcevc.h:148
LCEVCRawGlobalConfig::temporal_enabled_flag
uint8_t temporal_enabled_flag
Definition: cbs_lcevc.h:59
LCEVCRawSequenceConfig::reserved_zeros_1bit
uint8_t reserved_zeros_1bit
Definition: cbs_lcevc.h:42
LCEVCRawEncodedData::data_size
size_t data_size
Definition: cbs_lcevc.h:125
desc
const char * desc
Definition: libsvtav1.c:82
AVBufferRef
A reference to a data buffer.
Definition: buffer.h:82
ff_cbs_lcevc_alloc_process_block_payload
int ff_cbs_lcevc_alloc_process_block_payload(LCEVCRawProcessBlock *block, const LCEVCProcessBlockTypeDescriptor *desc)
Allocate a new payload for the given Process Block.
Definition: cbs_lcevc.c:525
LCEVCRawProcessBlockList
Definition: cbs_lcevc.h:184
LCEVCRawSEI::payload_type
uint8_t payload_type
Definition: cbs_lcevc.h:154
LCEVCRawEncodedData
Definition: cbs_lcevc.h:114
LCEVCRawEncodedData::data_ref
AVBufferRef * data_ref
Definition: cbs_lcevc.h:123
LCEVCRawGlobalConfig::upsampler_coeff1
uint16_t upsampler_coeff1
Definition: cbs_lcevc.h:71
LCEVCRawProcessBlockWriteFunction
int(* LCEVCRawProcessBlockWriteFunction)(CodedBitstreamContext *ctx, struct PutBitContext *rw, void *current, LCEVCProcessBlockState *state, int nal_unit_type)
Definition: cbs_lcevc.h:217
LCEVCProcessBlockTypeDescriptor::read
LCEVCRawProcessBlockReadFunction read
Definition: cbs_lcevc.h:229
block
The exact code depends on how similar the blocks are and how related they are to the block
Definition: filter_design.txt:207
LCEVCRawVUI::aspect_ratio_info_present_flag
uint8_t aspect_ratio_info_present_flag
Definition: cbs_lcevc.h:133
LCEVCRawGlobalConfig::upsampler_coeff4
uint16_t upsampler_coeff4
Definition: cbs_lcevc.h:74
LCEVCRawProcessBlockReadFunction
int(* LCEVCRawProcessBlockReadFunction)(CodedBitstreamContext *ctx, struct GetBitContext *rw, void *current, LCEVCProcessBlockState *state, int nal_unit_type)
Definition: cbs_lcevc.h:211
LCEVCRawGlobalConfig::reserved_zeros_5bit
uint16_t reserved_zeros_5bit
Definition: cbs_lcevc.h:79
LCEVCRawPictureConfig::field_type_bit_flag
uint8_t field_type_bit_flag
Definition: cbs_lcevc.h:98
LCEVCRawGlobalConfig::upsample_type
uint8_t upsample_type
Definition: cbs_lcevc.h:60
LCEVCRawGlobalConfig::chroma_sampling_type
uint8_t chroma_sampling_type
Definition: cbs_lcevc.h:53
LCEVCProcessBlockState::extension_present
uint8_t extension_present
Definition: cbs_lcevc.h:208
state
static struct @557 state
LCEVCRawAdditionalInfo::payload_ref
void * payload_ref
RefStruct reference.
Definition: cbs_lcevc.h:168
ff_cbs_lcevc_delete_process_block_type
void ff_cbs_lcevc_delete_process_block_type(CodedBitstreamContext *ctx, CodedBitstreamFragment *au, uint32_t payload_type)
Delete all blocks with the given payload type from an access unit.
Definition: cbs_lcevc.c:717
LCEVCRawEncodedData::temporal_surfaces_entropy_enabled_flag
uint8_t temporal_surfaces_entropy_enabled_flag[3]
Definition: cbs_lcevc.h:119
LCEVCRawSEI::message
SEIRawMessage message
Definition: cbs_lcevc.h:152
LCEVCRawSEI::payload
void * payload
Definition: cbs_lcevc.h:156