1 .. SPDX-License-Identifier: GFDL-1.1-no-invari 1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 2 2 3 .. _codec-stateless-controls: 3 .. _codec-stateless-controls: 4 4 5 ********************************* 5 ********************************* 6 Stateless Codec Control Reference 6 Stateless Codec Control Reference 7 ********************************* 7 ********************************* 8 8 9 The Stateless Codec control class is intended 9 The Stateless Codec control class is intended to support 10 stateless decoder and encoders (i.e. hardware 10 stateless decoder and encoders (i.e. hardware accelerators). 11 11 12 These drivers are typically supported by the : 12 These drivers are typically supported by the :ref:`stateless_decoder`, 13 and deal with parsed pixel formats such as V4L 13 and deal with parsed pixel formats such as V4L2_PIX_FMT_H264_SLICE. 14 14 15 Stateless Codec Control ID 15 Stateless Codec Control ID 16 ========================== 16 ========================== 17 17 18 .. _codec-stateless-control-id: 18 .. _codec-stateless-control-id: 19 19 20 ``V4L2_CID_CODEC_STATELESS_CLASS (class)`` 20 ``V4L2_CID_CODEC_STATELESS_CLASS (class)`` 21 The Stateless Codec class descriptor. 21 The Stateless Codec class descriptor. 22 22 23 .. _v4l2-codec-stateless-h264: 23 .. _v4l2-codec-stateless-h264: 24 24 25 ``V4L2_CID_STATELESS_H264_SPS (struct)`` 25 ``V4L2_CID_STATELESS_H264_SPS (struct)`` 26 Specifies the sequence parameter set (as e 26 Specifies the sequence parameter set (as extracted from the 27 bitstream) for the associated H264 slice d 27 bitstream) for the associated H264 slice data. This includes the 28 necessary parameters for configuring a sta 28 necessary parameters for configuring a stateless hardware decoding 29 pipeline for H264. The bitstream parameter 29 pipeline for H264. The bitstream parameters are defined according 30 to :ref:`h264`, section 7.4.2.1.1 "Sequenc 30 to :ref:`h264`, section 7.4.2.1.1 "Sequence Parameter Set Data 31 Semantics". For further documentation, ref 31 Semantics". For further documentation, refer to the above 32 specification, unless there is an explicit 32 specification, unless there is an explicit comment stating 33 otherwise. 33 otherwise. 34 34 35 .. c:type:: v4l2_ctrl_h264_sps 35 .. c:type:: v4l2_ctrl_h264_sps 36 36 37 .. raw:: latex 37 .. raw:: latex 38 38 39 \small 39 \small 40 40 41 .. tabularcolumns:: |p{1.2cm}|p{8.6cm}|p{7.5cm 41 .. tabularcolumns:: |p{1.2cm}|p{8.6cm}|p{7.5cm}| 42 42 43 .. flat-table:: struct v4l2_ctrl_h264_sps 43 .. flat-table:: struct v4l2_ctrl_h264_sps 44 :header-rows: 0 44 :header-rows: 0 45 :stub-columns: 0 45 :stub-columns: 0 46 :widths: 1 1 2 46 :widths: 1 1 2 47 47 48 * - __u8 48 * - __u8 49 - ``profile_idc`` 49 - ``profile_idc`` 50 - 50 - 51 * - __u8 51 * - __u8 52 - ``constraint_set_flags`` 52 - ``constraint_set_flags`` 53 - See :ref:`Sequence Parameter Set Const 53 - See :ref:`Sequence Parameter Set Constraints Set Flags <h264_sps_constraints_set_flags>` 54 * - __u8 54 * - __u8 55 - ``level_idc`` 55 - ``level_idc`` 56 - 56 - 57 * - __u8 57 * - __u8 58 - ``seq_parameter_set_id`` 58 - ``seq_parameter_set_id`` 59 - 59 - 60 * - __u8 60 * - __u8 61 - ``chroma_format_idc`` 61 - ``chroma_format_idc`` 62 - 62 - 63 * - __u8 63 * - __u8 64 - ``bit_depth_luma_minus8`` 64 - ``bit_depth_luma_minus8`` 65 - 65 - 66 * - __u8 66 * - __u8 67 - ``bit_depth_chroma_minus8`` 67 - ``bit_depth_chroma_minus8`` 68 - 68 - 69 * - __u8 69 * - __u8 70 - ``log2_max_frame_num_minus4`` 70 - ``log2_max_frame_num_minus4`` 71 - 71 - 72 * - __u8 72 * - __u8 73 - ``pic_order_cnt_type`` 73 - ``pic_order_cnt_type`` 74 - 74 - 75 * - __u8 75 * - __u8 76 - ``log2_max_pic_order_cnt_lsb_minus4`` 76 - ``log2_max_pic_order_cnt_lsb_minus4`` 77 - 77 - 78 * - __u8 78 * - __u8 79 - ``max_num_ref_frames`` 79 - ``max_num_ref_frames`` 80 - 80 - 81 * - __u8 81 * - __u8 82 - ``num_ref_frames_in_pic_order_cnt_cycl 82 - ``num_ref_frames_in_pic_order_cnt_cycle`` 83 - 83 - 84 * - __s32 84 * - __s32 85 - ``offset_for_ref_frame[255]`` 85 - ``offset_for_ref_frame[255]`` 86 - 86 - 87 * - __s32 87 * - __s32 88 - ``offset_for_non_ref_pic`` 88 - ``offset_for_non_ref_pic`` 89 - 89 - 90 * - __s32 90 * - __s32 91 - ``offset_for_top_to_bottom_field`` 91 - ``offset_for_top_to_bottom_field`` 92 - 92 - 93 * - __u16 93 * - __u16 94 - ``pic_width_in_mbs_minus1`` 94 - ``pic_width_in_mbs_minus1`` 95 - 95 - 96 * - __u16 96 * - __u16 97 - ``pic_height_in_map_units_minus1`` 97 - ``pic_height_in_map_units_minus1`` 98 - 98 - 99 * - __u32 99 * - __u32 100 - ``flags`` 100 - ``flags`` 101 - See :ref:`Sequence Parameter Set Flags 101 - See :ref:`Sequence Parameter Set Flags <h264_sps_flags>` 102 102 103 .. raw:: latex 103 .. raw:: latex 104 104 105 \normalsize 105 \normalsize 106 106 107 .. _h264_sps_constraints_set_flags: 107 .. _h264_sps_constraints_set_flags: 108 108 109 ``Sequence Parameter Set Constraints Set Flags 109 ``Sequence Parameter Set Constraints Set Flags`` 110 110 111 .. cssclass:: longtable 111 .. cssclass:: longtable 112 112 113 .. flat-table:: 113 .. flat-table:: 114 :header-rows: 0 114 :header-rows: 0 115 :stub-columns: 0 115 :stub-columns: 0 116 :widths: 1 1 2 116 :widths: 1 1 2 117 117 118 * - ``V4L2_H264_SPS_CONSTRAINT_SET0_FLAG`` 118 * - ``V4L2_H264_SPS_CONSTRAINT_SET0_FLAG`` 119 - 0x00000001 119 - 0x00000001 120 - 120 - 121 * - ``V4L2_H264_SPS_CONSTRAINT_SET1_FLAG`` 121 * - ``V4L2_H264_SPS_CONSTRAINT_SET1_FLAG`` 122 - 0x00000002 122 - 0x00000002 123 - 123 - 124 * - ``V4L2_H264_SPS_CONSTRAINT_SET2_FLAG`` 124 * - ``V4L2_H264_SPS_CONSTRAINT_SET2_FLAG`` 125 - 0x00000004 125 - 0x00000004 126 - 126 - 127 * - ``V4L2_H264_SPS_CONSTRAINT_SET3_FLAG`` 127 * - ``V4L2_H264_SPS_CONSTRAINT_SET3_FLAG`` 128 - 0x00000008 128 - 0x00000008 129 - 129 - 130 * - ``V4L2_H264_SPS_CONSTRAINT_SET4_FLAG`` 130 * - ``V4L2_H264_SPS_CONSTRAINT_SET4_FLAG`` 131 - 0x00000010 131 - 0x00000010 132 - 132 - 133 * - ``V4L2_H264_SPS_CONSTRAINT_SET5_FLAG`` 133 * - ``V4L2_H264_SPS_CONSTRAINT_SET5_FLAG`` 134 - 0x00000020 134 - 0x00000020 135 - 135 - 136 136 137 .. _h264_sps_flags: 137 .. _h264_sps_flags: 138 138 139 ``Sequence Parameter Set Flags`` 139 ``Sequence Parameter Set Flags`` 140 140 141 .. cssclass:: longtable 141 .. cssclass:: longtable 142 142 143 .. flat-table:: 143 .. flat-table:: 144 :header-rows: 0 144 :header-rows: 0 145 :stub-columns: 0 145 :stub-columns: 0 146 :widths: 1 1 2 146 :widths: 1 1 2 147 147 148 * - ``V4L2_H264_SPS_FLAG_SEPARATE_COLOUR_P 148 * - ``V4L2_H264_SPS_FLAG_SEPARATE_COLOUR_PLANE`` 149 - 0x00000001 149 - 0x00000001 150 - 150 - 151 * - ``V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TR 151 * - ``V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TRANSFORM_BYPASS`` 152 - 0x00000002 152 - 0x00000002 153 - 153 - 154 * - ``V4L2_H264_SPS_FLAG_DELTA_PIC_ORDER_A 154 * - ``V4L2_H264_SPS_FLAG_DELTA_PIC_ORDER_ALWAYS_ZERO`` 155 - 0x00000004 155 - 0x00000004 156 - 156 - 157 * - ``V4L2_H264_SPS_FLAG_GAPS_IN_FRAME_NUM 157 * - ``V4L2_H264_SPS_FLAG_GAPS_IN_FRAME_NUM_VALUE_ALLOWED`` 158 - 0x00000008 158 - 0x00000008 159 - 159 - 160 * - ``V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY`` 160 * - ``V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY`` 161 - 0x00000010 161 - 0x00000010 162 - 162 - 163 * - ``V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME 163 * - ``V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD`` 164 - 0x00000020 164 - 0x00000020 165 - 165 - 166 * - ``V4L2_H264_SPS_FLAG_DIRECT_8X8_INFERE 166 * - ``V4L2_H264_SPS_FLAG_DIRECT_8X8_INFERENCE`` 167 - 0x00000040 167 - 0x00000040 168 - 168 - 169 169 170 ``V4L2_CID_STATELESS_H264_PPS (struct)`` 170 ``V4L2_CID_STATELESS_H264_PPS (struct)`` 171 Specifies the picture parameter set (as ex 171 Specifies the picture parameter set (as extracted from the 172 bitstream) for the associated H264 slice d 172 bitstream) for the associated H264 slice data. This includes the 173 necessary parameters for configuring a sta 173 necessary parameters for configuring a stateless hardware decoding 174 pipeline for H264. The bitstream paramete 174 pipeline for H264. The bitstream parameters are defined according 175 to :ref:`h264`, section 7.4.2.2 "Picture P 175 to :ref:`h264`, section 7.4.2.2 "Picture Parameter Set RBSP 176 Semantics". For further documentation, ref 176 Semantics". For further documentation, refer to the above 177 specification, unless there is an explicit 177 specification, unless there is an explicit comment stating 178 otherwise. 178 otherwise. 179 179 180 .. c:type:: v4l2_ctrl_h264_pps 180 .. c:type:: v4l2_ctrl_h264_pps 181 181 182 .. raw:: latex 182 .. raw:: latex 183 183 184 \small 184 \small 185 185 186 .. flat-table:: struct v4l2_ctrl_h264_pps 186 .. flat-table:: struct v4l2_ctrl_h264_pps 187 :header-rows: 0 187 :header-rows: 0 188 :stub-columns: 0 188 :stub-columns: 0 189 :widths: 1 1 2 189 :widths: 1 1 2 190 190 191 * - __u8 191 * - __u8 192 - ``pic_parameter_set_id`` 192 - ``pic_parameter_set_id`` 193 - 193 - 194 * - __u8 194 * - __u8 195 - ``seq_parameter_set_id`` 195 - ``seq_parameter_set_id`` 196 - 196 - 197 * - __u8 197 * - __u8 198 - ``num_slice_groups_minus1`` 198 - ``num_slice_groups_minus1`` 199 - 199 - 200 * - __u8 200 * - __u8 201 - ``num_ref_idx_l0_default_active_minus1 201 - ``num_ref_idx_l0_default_active_minus1`` 202 - 202 - 203 * - __u8 203 * - __u8 204 - ``num_ref_idx_l1_default_active_minus1 204 - ``num_ref_idx_l1_default_active_minus1`` 205 - 205 - 206 * - __u8 206 * - __u8 207 - ``weighted_bipred_idc`` 207 - ``weighted_bipred_idc`` 208 - 208 - 209 * - __s8 209 * - __s8 210 - ``pic_init_qp_minus26`` 210 - ``pic_init_qp_minus26`` 211 - 211 - 212 * - __s8 212 * - __s8 213 - ``pic_init_qs_minus26`` 213 - ``pic_init_qs_minus26`` 214 - 214 - 215 * - __s8 215 * - __s8 216 - ``chroma_qp_index_offset`` 216 - ``chroma_qp_index_offset`` 217 - 217 - 218 * - __s8 218 * - __s8 219 - ``second_chroma_qp_index_offset`` 219 - ``second_chroma_qp_index_offset`` 220 - 220 - 221 * - __u16 221 * - __u16 222 - ``flags`` 222 - ``flags`` 223 - See :ref:`Picture Parameter Set Flags 223 - See :ref:`Picture Parameter Set Flags <h264_pps_flags>` 224 224 225 .. raw:: latex 225 .. raw:: latex 226 226 227 \normalsize 227 \normalsize 228 228 229 .. _h264_pps_flags: 229 .. _h264_pps_flags: 230 230 231 ``Picture Parameter Set Flags`` 231 ``Picture Parameter Set Flags`` 232 232 233 .. raw:: latex 233 .. raw:: latex 234 234 235 \begingroup 235 \begingroup 236 \scriptsize 236 \scriptsize 237 \setlength{\tabcolsep}{2pt} 237 \setlength{\tabcolsep}{2pt} 238 238 239 .. tabularcolumns:: |p{9.8cm}|p{1.0cm}|p{6.5cm 239 .. tabularcolumns:: |p{9.8cm}|p{1.0cm}|p{6.5cm}| 240 240 241 .. flat-table:: 241 .. flat-table:: 242 :header-rows: 0 242 :header-rows: 0 243 :stub-columns: 0 243 :stub-columns: 0 244 :widths: 10 1 4 244 :widths: 10 1 4 245 245 246 * - ``V4L2_H264_PPS_FLAG_ENTROPY_CODING_MO 246 * - ``V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE`` 247 - 0x0001 247 - 0x0001 248 - 248 - 249 * - ``V4L2_H264_PPS_FLAG_BOTTOM_FIELD_PIC_ 249 * - ``V4L2_H264_PPS_FLAG_BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT`` 250 - 0x0002 250 - 0x0002 251 - 251 - 252 * - ``V4L2_H264_PPS_FLAG_WEIGHTED_PRED`` 252 * - ``V4L2_H264_PPS_FLAG_WEIGHTED_PRED`` 253 - 0x0004 253 - 0x0004 254 - 254 - 255 * - ``V4L2_H264_PPS_FLAG_DEBLOCKING_FILTER 255 * - ``V4L2_H264_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT`` 256 - 0x0008 256 - 0x0008 257 - 257 - 258 * - ``V4L2_H264_PPS_FLAG_CONSTRAINED_INTRA 258 * - ``V4L2_H264_PPS_FLAG_CONSTRAINED_INTRA_PRED`` 259 - 0x0010 259 - 0x0010 260 - 260 - 261 * - ``V4L2_H264_PPS_FLAG_REDUNDANT_PIC_CNT 261 * - ``V4L2_H264_PPS_FLAG_REDUNDANT_PIC_CNT_PRESENT`` 262 - 0x0020 262 - 0x0020 263 - 263 - 264 * - ``V4L2_H264_PPS_FLAG_TRANSFORM_8X8_MOD 264 * - ``V4L2_H264_PPS_FLAG_TRANSFORM_8X8_MODE`` 265 - 0x0040 265 - 0x0040 266 - 266 - 267 * - ``V4L2_H264_PPS_FLAG_SCALING_MATRIX_PR 267 * - ``V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT`` 268 - 0x0080 268 - 0x0080 269 - ``V4L2_CID_STATELESS_H264_SCALING_MATR 269 - ``V4L2_CID_STATELESS_H264_SCALING_MATRIX`` 270 must be used for this picture. 270 must be used for this picture. 271 271 272 .. raw:: latex 272 .. raw:: latex 273 273 274 \endgroup 274 \endgroup 275 275 276 ``V4L2_CID_STATELESS_H264_SCALING_MATRIX (stru 276 ``V4L2_CID_STATELESS_H264_SCALING_MATRIX (struct)`` 277 Specifies the scaling matrix (as extracted 277 Specifies the scaling matrix (as extracted from the bitstream) for 278 the associated H264 slice data. The bitstr 278 the associated H264 slice data. The bitstream parameters are 279 defined according to :ref:`h264`, section 279 defined according to :ref:`h264`, section 7.4.2.1.1.1 "Scaling 280 List Semantics". For further documentation 280 List Semantics". For further documentation, refer to the above 281 specification, unless there is an explicit 281 specification, unless there is an explicit comment stating 282 otherwise. 282 otherwise. 283 283 284 .. c:type:: v4l2_ctrl_h264_scaling_matrix 284 .. c:type:: v4l2_ctrl_h264_scaling_matrix 285 285 286 .. raw:: latex 286 .. raw:: latex 287 287 288 \small 288 \small 289 289 290 .. tabularcolumns:: |p{0.6cm}|p{4.8cm}|p{11.9c 290 .. tabularcolumns:: |p{0.6cm}|p{4.8cm}|p{11.9cm}| 291 291 292 .. flat-table:: struct v4l2_ctrl_h264_scaling_ 292 .. flat-table:: struct v4l2_ctrl_h264_scaling_matrix 293 :header-rows: 0 293 :header-rows: 0 294 :stub-columns: 0 294 :stub-columns: 0 295 :widths: 1 1 2 295 :widths: 1 1 2 296 296 297 * - __u8 297 * - __u8 298 - ``scaling_list_4x4[6][16]`` 298 - ``scaling_list_4x4[6][16]`` 299 - Scaling matrix after applying the inve 299 - Scaling matrix after applying the inverse scanning process. 300 Expected list order is Intra Y, Intra 300 Expected list order is Intra Y, Intra Cb, Intra Cr, Inter Y, 301 Inter Cb, Inter Cr. The values on each 301 Inter Cb, Inter Cr. The values on each scaling list are 302 expected in raster scan order. 302 expected in raster scan order. 303 * - __u8 303 * - __u8 304 - ``scaling_list_8x8[6][64]`` 304 - ``scaling_list_8x8[6][64]`` 305 - Scaling matrix after applying the inve 305 - Scaling matrix after applying the inverse scanning process. 306 Expected list order is Intra Y, Inter 306 Expected list order is Intra Y, Inter Y, Intra Cb, Inter Cb, 307 Intra Cr, Inter Cr. The values on each 307 Intra Cr, Inter Cr. The values on each scaling list are 308 expected in raster scan order. 308 expected in raster scan order. 309 309 310 ``V4L2_CID_STATELESS_H264_SLICE_PARAMS (struct 310 ``V4L2_CID_STATELESS_H264_SLICE_PARAMS (struct)`` 311 Specifies the slice parameters (as extract 311 Specifies the slice parameters (as extracted from the bitstream) 312 for the associated H264 slice data. This i 312 for the associated H264 slice data. This includes the necessary 313 parameters for configuring a stateless har 313 parameters for configuring a stateless hardware decoding pipeline 314 for H264. The bitstream parameters are de 314 for H264. The bitstream parameters are defined according to 315 :ref:`h264`, section 7.4.3 "Slice Header S 315 :ref:`h264`, section 7.4.3 "Slice Header Semantics". For further 316 documentation, refer to the above specific 316 documentation, refer to the above specification, unless there is 317 an explicit comment stating otherwise. 317 an explicit comment stating otherwise. 318 318 319 .. c:type:: v4l2_ctrl_h264_slice_params 319 .. c:type:: v4l2_ctrl_h264_slice_params 320 320 321 .. raw:: latex 321 .. raw:: latex 322 322 323 \small 323 \small 324 324 325 .. tabularcolumns:: |p{4.0cm}|p{5.9cm}|p{7.4cm 325 .. tabularcolumns:: |p{4.0cm}|p{5.9cm}|p{7.4cm}| 326 326 327 .. flat-table:: struct v4l2_ctrl_h264_slice_pa 327 .. flat-table:: struct v4l2_ctrl_h264_slice_params 328 :header-rows: 0 328 :header-rows: 0 329 :stub-columns: 0 329 :stub-columns: 0 330 :widths: 1 1 2 330 :widths: 1 1 2 331 331 332 * - __u32 332 * - __u32 333 - ``header_bit_size`` 333 - ``header_bit_size`` 334 - Offset in bits to slice_data() from th 334 - Offset in bits to slice_data() from the beginning of this slice. 335 * - __u32 335 * - __u32 336 - ``first_mb_in_slice`` 336 - ``first_mb_in_slice`` 337 - 337 - 338 * - __u8 338 * - __u8 339 - ``slice_type`` 339 - ``slice_type`` 340 - 340 - 341 * - __u8 341 * - __u8 342 - ``colour_plane_id`` 342 - ``colour_plane_id`` 343 - 343 - 344 * - __u8 344 * - __u8 345 - ``redundant_pic_cnt`` 345 - ``redundant_pic_cnt`` 346 - 346 - 347 * - __u8 347 * - __u8 348 - ``cabac_init_idc`` 348 - ``cabac_init_idc`` 349 - 349 - 350 * - __s8 350 * - __s8 351 - ``slice_qp_delta`` 351 - ``slice_qp_delta`` 352 - 352 - 353 * - __s8 353 * - __s8 354 - ``slice_qs_delta`` 354 - ``slice_qs_delta`` 355 - 355 - 356 * - __u8 356 * - __u8 357 - ``disable_deblocking_filter_idc`` 357 - ``disable_deblocking_filter_idc`` 358 - 358 - 359 * - __s8 359 * - __s8 360 - ``slice_alpha_c0_offset_div2`` 360 - ``slice_alpha_c0_offset_div2`` 361 - 361 - 362 * - __s8 362 * - __s8 363 - ``slice_beta_offset_div2`` 363 - ``slice_beta_offset_div2`` 364 - 364 - 365 * - __u8 365 * - __u8 366 - ``num_ref_idx_l0_active_minus1`` 366 - ``num_ref_idx_l0_active_minus1`` 367 - If num_ref_idx_active_override_flag is 367 - If num_ref_idx_active_override_flag is not set, this field must be 368 set to the value of num_ref_idx_l0_def 368 set to the value of num_ref_idx_l0_default_active_minus1 369 * - __u8 369 * - __u8 370 - ``num_ref_idx_l1_active_minus1`` 370 - ``num_ref_idx_l1_active_minus1`` 371 - If num_ref_idx_active_override_flag is 371 - If num_ref_idx_active_override_flag is not set, this field must be 372 set to the value of num_ref_idx_l1_def 372 set to the value of num_ref_idx_l1_default_active_minus1 373 * - __u8 373 * - __u8 374 - ``reserved`` 374 - ``reserved`` 375 - Applications and drivers must set this 375 - Applications and drivers must set this to zero. 376 * - struct :c:type:`v4l2_h264_reference` 376 * - struct :c:type:`v4l2_h264_reference` 377 - ``ref_pic_list0[32]`` 377 - ``ref_pic_list0[32]`` 378 - Reference picture list after applying 378 - Reference picture list after applying the per-slice modifications 379 * - struct :c:type:`v4l2_h264_reference` 379 * - struct :c:type:`v4l2_h264_reference` 380 - ``ref_pic_list1[32]`` 380 - ``ref_pic_list1[32]`` 381 - Reference picture list after applying 381 - Reference picture list after applying the per-slice modifications 382 * - __u32 382 * - __u32 383 - ``flags`` 383 - ``flags`` 384 - See :ref:`Slice Parameter Flags <h264_ 384 - See :ref:`Slice Parameter Flags <h264_slice_flags>` 385 385 386 .. raw:: latex 386 .. raw:: latex 387 387 388 \normalsize 388 \normalsize 389 389 390 .. _h264_slice_flags: 390 .. _h264_slice_flags: 391 391 392 ``Slice Parameter Set Flags`` 392 ``Slice Parameter Set Flags`` 393 393 394 .. cssclass:: longtable 394 .. cssclass:: longtable 395 395 396 .. flat-table:: 396 .. flat-table:: 397 :header-rows: 0 397 :header-rows: 0 398 :stub-columns: 0 398 :stub-columns: 0 399 :widths: 1 1 2 399 :widths: 1 1 2 400 400 401 * - ``V4L2_H264_SLICE_FLAG_DIRECT_SPATIAL_ 401 * - ``V4L2_H264_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED`` 402 - 0x00000001 402 - 0x00000001 403 - 403 - 404 * - ``V4L2_H264_SLICE_FLAG_SP_FOR_SWITCH`` 404 * - ``V4L2_H264_SLICE_FLAG_SP_FOR_SWITCH`` 405 - 0x00000002 405 - 0x00000002 406 - 406 - 407 407 408 ``V4L2_CID_STATELESS_H264_PRED_WEIGHTS (struct 408 ``V4L2_CID_STATELESS_H264_PRED_WEIGHTS (struct)`` 409 Prediction weight table defined according 409 Prediction weight table defined according to :ref:`h264`, 410 section 7.4.3.2 "Prediction Weight Table S 410 section 7.4.3.2 "Prediction Weight Table Semantics". 411 The prediction weight table must be passed 411 The prediction weight table must be passed by applications 412 under the conditions explained in section 412 under the conditions explained in section 7.3.3 "Slice header 413 syntax". 413 syntax". 414 414 415 .. c:type:: v4l2_ctrl_h264_pred_weights 415 .. c:type:: v4l2_ctrl_h264_pred_weights 416 416 417 .. raw:: latex 417 .. raw:: latex 418 418 419 \small 419 \small 420 420 421 .. tabularcolumns:: |p{4.9cm}|p{4.9cm}|p{7.5cm 421 .. tabularcolumns:: |p{4.9cm}|p{4.9cm}|p{7.5cm}| 422 422 423 .. flat-table:: struct v4l2_ctrl_h264_pred_wei 423 .. flat-table:: struct v4l2_ctrl_h264_pred_weights 424 :header-rows: 0 424 :header-rows: 0 425 :stub-columns: 0 425 :stub-columns: 0 426 :widths: 1 1 2 426 :widths: 1 1 2 427 427 428 * - __u16 428 * - __u16 429 - ``luma_log2_weight_denom`` 429 - ``luma_log2_weight_denom`` 430 - 430 - 431 * - __u16 431 * - __u16 432 - ``chroma_log2_weight_denom`` 432 - ``chroma_log2_weight_denom`` 433 - 433 - 434 * - struct :c:type:`v4l2_h264_weight_facto 434 * - struct :c:type:`v4l2_h264_weight_factors` 435 - ``weight_factors[2]`` 435 - ``weight_factors[2]`` 436 - The weight factors at index 0 are the 436 - The weight factors at index 0 are the weight factors for the reference 437 list 0, the one at index 1 for the ref 437 list 0, the one at index 1 for the reference list 1. 438 438 439 .. raw:: latex 439 .. raw:: latex 440 440 441 \normalsize 441 \normalsize 442 442 443 .. c:type:: v4l2_h264_weight_factors 443 .. c:type:: v4l2_h264_weight_factors 444 444 445 .. raw:: latex 445 .. raw:: latex 446 446 447 \small 447 \small 448 448 449 .. tabularcolumns:: |p{1.0cm}|p{4.5cm}|p{11.8c 449 .. tabularcolumns:: |p{1.0cm}|p{4.5cm}|p{11.8cm}| 450 450 451 .. flat-table:: struct v4l2_h264_weight_factor 451 .. flat-table:: struct v4l2_h264_weight_factors 452 :header-rows: 0 452 :header-rows: 0 453 :stub-columns: 0 453 :stub-columns: 0 454 :widths: 1 1 2 454 :widths: 1 1 2 455 455 456 * - __s16 456 * - __s16 457 - ``luma_weight[32]`` 457 - ``luma_weight[32]`` 458 - 458 - 459 * - __s16 459 * - __s16 460 - ``luma_offset[32]`` 460 - ``luma_offset[32]`` 461 - 461 - 462 * - __s16 462 * - __s16 463 - ``chroma_weight[32][2]`` 463 - ``chroma_weight[32][2]`` 464 - 464 - 465 * - __s16 465 * - __s16 466 - ``chroma_offset[32][2]`` 466 - ``chroma_offset[32][2]`` 467 - 467 - 468 468 469 .. raw:: latex 469 .. raw:: latex 470 470 471 \normalsize 471 \normalsize 472 472 473 ``Picture Reference`` 473 ``Picture Reference`` 474 474 475 .. c:type:: v4l2_h264_reference 475 .. c:type:: v4l2_h264_reference 476 476 477 .. cssclass:: longtable 477 .. cssclass:: longtable 478 478 479 .. flat-table:: struct v4l2_h264_reference 479 .. flat-table:: struct v4l2_h264_reference 480 :header-rows: 0 480 :header-rows: 0 481 :stub-columns: 0 481 :stub-columns: 0 482 :widths: 1 1 2 482 :widths: 1 1 2 483 483 484 * - __u8 484 * - __u8 485 - ``fields`` 485 - ``fields`` 486 - Specifies how the picture is reference 486 - Specifies how the picture is referenced. See :ref:`Reference Fields <h264_ref_fields>` 487 * - __u8 487 * - __u8 488 - ``index`` 488 - ``index`` 489 - Index into the :c:type:`v4l2_ctrl_h264 489 - Index into the :c:type:`v4l2_ctrl_h264_decode_params`.dpb array. 490 490 491 .. _h264_ref_fields: 491 .. _h264_ref_fields: 492 492 493 ``Reference Fields`` 493 ``Reference Fields`` 494 494 495 .. raw:: latex 495 .. raw:: latex 496 496 497 \small 497 \small 498 498 499 .. tabularcolumns:: |p{5.4cm}|p{0.8cm}|p{11.1c 499 .. tabularcolumns:: |p{5.4cm}|p{0.8cm}|p{11.1cm}| 500 500 501 .. flat-table:: 501 .. flat-table:: 502 :header-rows: 0 502 :header-rows: 0 503 :stub-columns: 0 503 :stub-columns: 0 504 :widths: 1 1 2 504 :widths: 1 1 2 505 505 506 * - ``V4L2_H264_TOP_FIELD_REF`` 506 * - ``V4L2_H264_TOP_FIELD_REF`` 507 - 0x1 507 - 0x1 508 - The top field in field pair is used fo 508 - The top field in field pair is used for short-term reference. 509 * - ``V4L2_H264_BOTTOM_FIELD_REF`` 509 * - ``V4L2_H264_BOTTOM_FIELD_REF`` 510 - 0x2 510 - 0x2 511 - The bottom field in field pair is used 511 - The bottom field in field pair is used for short-term reference. 512 * - ``V4L2_H264_FRAME_REF`` 512 * - ``V4L2_H264_FRAME_REF`` 513 - 0x3 513 - 0x3 514 - The frame (or the top/bottom fields, i 514 - The frame (or the top/bottom fields, if it's a field pair) 515 is used for short-term reference. 515 is used for short-term reference. 516 516 517 .. raw:: latex 517 .. raw:: latex 518 518 519 \normalsize 519 \normalsize 520 520 521 ``V4L2_CID_STATELESS_H264_DECODE_PARAMS (struc 521 ``V4L2_CID_STATELESS_H264_DECODE_PARAMS (struct)`` 522 Specifies the decode parameters (as extrac 522 Specifies the decode parameters (as extracted from the bitstream) 523 for the associated H264 slice data. This i 523 for the associated H264 slice data. This includes the necessary 524 parameters for configuring a stateless har 524 parameters for configuring a stateless hardware decoding pipeline 525 for H264. The bitstream parameters are def 525 for H264. The bitstream parameters are defined according to 526 :ref:`h264`. For further documentation, re 526 :ref:`h264`. For further documentation, refer to the above 527 specification, unless there is an explicit 527 specification, unless there is an explicit comment stating 528 otherwise. 528 otherwise. 529 529 530 .. c:type:: v4l2_ctrl_h264_decode_params 530 .. c:type:: v4l2_ctrl_h264_decode_params 531 531 532 .. raw:: latex 532 .. raw:: latex 533 533 534 \small 534 \small 535 535 536 .. tabularcolumns:: |p{4.0cm}|p{5.9cm}|p{7.4cm 536 .. tabularcolumns:: |p{4.0cm}|p{5.9cm}|p{7.4cm}| 537 537 538 .. flat-table:: struct v4l2_ctrl_h264_decode_p 538 .. flat-table:: struct v4l2_ctrl_h264_decode_params 539 :header-rows: 0 539 :header-rows: 0 540 :stub-columns: 0 540 :stub-columns: 0 541 :widths: 1 1 2 541 :widths: 1 1 2 542 542 543 * - struct :c:type:`v4l2_h264_dpb_entry` 543 * - struct :c:type:`v4l2_h264_dpb_entry` 544 - ``dpb[16]`` 544 - ``dpb[16]`` 545 - 545 - 546 * - __u16 546 * - __u16 547 - ``nal_ref_idc`` 547 - ``nal_ref_idc`` 548 - NAL reference ID value coming from the 548 - NAL reference ID value coming from the NAL Unit header 549 * - __u16 549 * - __u16 550 - ``frame_num`` 550 - ``frame_num`` 551 - 551 - 552 * - __s32 552 * - __s32 553 - ``top_field_order_cnt`` 553 - ``top_field_order_cnt`` 554 - Picture Order Count for the coded top 554 - Picture Order Count for the coded top field 555 * - __s32 555 * - __s32 556 - ``bottom_field_order_cnt`` 556 - ``bottom_field_order_cnt`` 557 - Picture Order Count for the coded bott 557 - Picture Order Count for the coded bottom field 558 * - __u16 558 * - __u16 559 - ``idr_pic_id`` 559 - ``idr_pic_id`` 560 - 560 - 561 * - __u16 561 * - __u16 562 - ``pic_order_cnt_lsb`` 562 - ``pic_order_cnt_lsb`` 563 - 563 - 564 * - __s32 564 * - __s32 565 - ``delta_pic_order_cnt_bottom`` 565 - ``delta_pic_order_cnt_bottom`` 566 - 566 - 567 * - __s32 567 * - __s32 568 - ``delta_pic_order_cnt0`` 568 - ``delta_pic_order_cnt0`` 569 - 569 - 570 * - __s32 570 * - __s32 571 - ``delta_pic_order_cnt1`` 571 - ``delta_pic_order_cnt1`` 572 - 572 - 573 * - __u32 573 * - __u32 574 - ``dec_ref_pic_marking_bit_size`` 574 - ``dec_ref_pic_marking_bit_size`` 575 - Size in bits of the dec_ref_pic_markin 575 - Size in bits of the dec_ref_pic_marking() syntax element. 576 * - __u32 576 * - __u32 577 - ``pic_order_cnt_bit_size`` 577 - ``pic_order_cnt_bit_size`` 578 - Combined size in bits of the picture o 578 - Combined size in bits of the picture order count related syntax 579 elements: pic_order_cnt_lsb, delta_pic 579 elements: pic_order_cnt_lsb, delta_pic_order_cnt_bottom, 580 delta_pic_order_cnt0, and delta_pic_or 580 delta_pic_order_cnt0, and delta_pic_order_cnt1. 581 * - __u32 581 * - __u32 582 - ``slice_group_change_cycle`` 582 - ``slice_group_change_cycle`` 583 - 583 - 584 * - __u32 584 * - __u32 585 - ``reserved`` 585 - ``reserved`` 586 - Applications and drivers must set this 586 - Applications and drivers must set this to zero. 587 * - __u32 587 * - __u32 588 - ``flags`` 588 - ``flags`` 589 - See :ref:`Decode Parameters Flags <h26 589 - See :ref:`Decode Parameters Flags <h264_decode_params_flags>` 590 590 591 .. raw:: latex 591 .. raw:: latex 592 592 593 \normalsize 593 \normalsize 594 594 595 .. _h264_decode_params_flags: 595 .. _h264_decode_params_flags: 596 596 597 ``Decode Parameters Flags`` 597 ``Decode Parameters Flags`` 598 598 599 .. raw:: latex 599 .. raw:: latex 600 600 601 \small 601 \small 602 602 603 .. tabularcolumns:: |p{8.3cm}|p{2.1cm}|p{6.9cm 603 .. tabularcolumns:: |p{8.3cm}|p{2.1cm}|p{6.9cm}| 604 604 605 .. flat-table:: 605 .. flat-table:: 606 :header-rows: 0 606 :header-rows: 0 607 :stub-columns: 0 607 :stub-columns: 0 608 :widths: 1 1 2 608 :widths: 1 1 2 609 609 610 * - ``V4L2_H264_DECODE_PARAM_FLAG_IDR_PIC` 610 * - ``V4L2_H264_DECODE_PARAM_FLAG_IDR_PIC`` 611 - 0x00000001 611 - 0x00000001 612 - That picture is an IDR picture 612 - That picture is an IDR picture 613 * - ``V4L2_H264_DECODE_PARAM_FLAG_FIELD_PI 613 * - ``V4L2_H264_DECODE_PARAM_FLAG_FIELD_PIC`` 614 - 0x00000002 614 - 0x00000002 615 - 615 - 616 * - ``V4L2_H264_DECODE_PARAM_FLAG_BOTTOM_F 616 * - ``V4L2_H264_DECODE_PARAM_FLAG_BOTTOM_FIELD`` 617 - 0x00000004 617 - 0x00000004 618 - 618 - 619 * - ``V4L2_H264_DECODE_PARAM_FLAG_PFRAME`` 619 * - ``V4L2_H264_DECODE_PARAM_FLAG_PFRAME`` 620 - 0x00000008 620 - 0x00000008 621 - 621 - 622 * - ``V4L2_H264_DECODE_PARAM_FLAG_BFRAME`` 622 * - ``V4L2_H264_DECODE_PARAM_FLAG_BFRAME`` 623 - 0x00000010 623 - 0x00000010 624 - 624 - 625 625 626 .. raw:: latex 626 .. raw:: latex 627 627 628 \normalsize 628 \normalsize 629 629 630 .. c:type:: v4l2_h264_dpb_entry 630 .. c:type:: v4l2_h264_dpb_entry 631 631 632 .. raw:: latex 632 .. raw:: latex 633 633 634 \small 634 \small 635 635 636 .. tabularcolumns:: |p{1.0cm}|p{4.9cm}|p{11.4c 636 .. tabularcolumns:: |p{1.0cm}|p{4.9cm}|p{11.4cm}| 637 637 638 .. flat-table:: struct v4l2_h264_dpb_entry 638 .. flat-table:: struct v4l2_h264_dpb_entry 639 :header-rows: 0 639 :header-rows: 0 640 :stub-columns: 0 640 :stub-columns: 0 641 :widths: 1 1 2 641 :widths: 1 1 2 642 642 643 * - __u64 643 * - __u64 644 - ``reference_ts`` 644 - ``reference_ts`` 645 - Timestamp of the V4L2 capture buffer t 645 - Timestamp of the V4L2 capture buffer to use as reference, used 646 with B-coded and P-coded frames. The t 646 with B-coded and P-coded frames. The timestamp refers to the 647 ``timestamp`` field in struct :c:type: 647 ``timestamp`` field in struct :c:type:`v4l2_buffer`. Use the 648 :c:func:`v4l2_timeval_to_ns()` functio 648 :c:func:`v4l2_timeval_to_ns()` function to convert the struct 649 :c:type:`timeval` in struct :c:type:`v 649 :c:type:`timeval` in struct :c:type:`v4l2_buffer` to a __u64. 650 * - __u32 650 * - __u32 651 - ``pic_num`` 651 - ``pic_num`` 652 - For short term references, this must m 652 - For short term references, this must match the derived value PicNum 653 (8-28) and for long term references it 653 (8-28) and for long term references it must match the derived value 654 LongTermPicNum (8-29). When decoding f 654 LongTermPicNum (8-29). When decoding frames (as opposed to fields) 655 pic_num is the same as FrameNumWrap. 655 pic_num is the same as FrameNumWrap. 656 * - __u16 656 * - __u16 657 - ``frame_num`` 657 - ``frame_num`` 658 - For short term references, this must m 658 - For short term references, this must match the frame_num value from 659 the slice header syntax (the driver wi 659 the slice header syntax (the driver will wrap the value if needed). For 660 long term references, this must be set 660 long term references, this must be set to the value of 661 long_term_frame_idx described in the d 661 long_term_frame_idx described in the dec_ref_pic_marking() syntax. 662 * - __u8 662 * - __u8 663 - ``fields`` 663 - ``fields`` 664 - Specifies how the DPB entry is referen 664 - Specifies how the DPB entry is referenced. See :ref:`Reference Fields <h264_ref_fields>` 665 * - __u8 665 * - __u8 666 - ``reserved[5]`` 666 - ``reserved[5]`` 667 - Applications and drivers must set this 667 - Applications and drivers must set this to zero. 668 * - __s32 668 * - __s32 669 - ``top_field_order_cnt`` 669 - ``top_field_order_cnt`` 670 - 670 - 671 * - __s32 671 * - __s32 672 - ``bottom_field_order_cnt`` 672 - ``bottom_field_order_cnt`` 673 - 673 - 674 * - __u32 674 * - __u32 675 - ``flags`` 675 - ``flags`` 676 - See :ref:`DPB Entry Flags <h264_dpb_fl 676 - See :ref:`DPB Entry Flags <h264_dpb_flags>` 677 677 678 .. raw:: latex 678 .. raw:: latex 679 679 680 \normalsize 680 \normalsize 681 681 682 .. _h264_dpb_flags: 682 .. _h264_dpb_flags: 683 683 684 ``DPB Entries Flags`` 684 ``DPB Entries Flags`` 685 685 686 .. raw:: latex 686 .. raw:: latex 687 687 688 \small 688 \small 689 689 690 .. tabularcolumns:: |p{7.7cm}|p{2.1cm}|p{7.5cm 690 .. tabularcolumns:: |p{7.7cm}|p{2.1cm}|p{7.5cm}| 691 691 692 .. flat-table:: 692 .. flat-table:: 693 :header-rows: 0 693 :header-rows: 0 694 :stub-columns: 0 694 :stub-columns: 0 695 :widths: 1 1 2 695 :widths: 1 1 2 696 696 697 * - ``V4L2_H264_DPB_ENTRY_FLAG_VALID`` 697 * - ``V4L2_H264_DPB_ENTRY_FLAG_VALID`` 698 - 0x00000001 698 - 0x00000001 699 - The DPB entry is valid (non-empty) and 699 - The DPB entry is valid (non-empty) and should be considered. 700 * - ``V4L2_H264_DPB_ENTRY_FLAG_ACTIVE`` 700 * - ``V4L2_H264_DPB_ENTRY_FLAG_ACTIVE`` 701 - 0x00000002 701 - 0x00000002 702 - The DPB entry is used for reference. 702 - The DPB entry is used for reference. 703 * - ``V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM`` 703 * - ``V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM`` 704 - 0x00000004 704 - 0x00000004 705 - The DPB entry is used for long-term re 705 - The DPB entry is used for long-term reference. 706 * - ``V4L2_H264_DPB_ENTRY_FLAG_FIELD`` 706 * - ``V4L2_H264_DPB_ENTRY_FLAG_FIELD`` 707 - 0x00000008 707 - 0x00000008 708 - The DPB entry is a single field or a c 708 - The DPB entry is a single field or a complementary field pair. 709 709 710 .. raw:: latex 710 .. raw:: latex 711 711 712 \normalsize 712 \normalsize 713 713 714 ``V4L2_CID_STATELESS_H264_DECODE_MODE (enum)`` 714 ``V4L2_CID_STATELESS_H264_DECODE_MODE (enum)`` 715 Specifies the decoding mode to use. Curren 715 Specifies the decoding mode to use. Currently exposes slice-based and 716 frame-based decoding but new modes might b 716 frame-based decoding but new modes might be added later on. 717 This control is used as a modifier for V4L 717 This control is used as a modifier for V4L2_PIX_FMT_H264_SLICE 718 pixel format. Applications that support V4 718 pixel format. Applications that support V4L2_PIX_FMT_H264_SLICE 719 are required to set this control in order 719 are required to set this control in order to specify the decoding mode 720 that is expected for the buffer. 720 that is expected for the buffer. 721 Drivers may expose a single or multiple de 721 Drivers may expose a single or multiple decoding modes, depending 722 on what they can support. 722 on what they can support. 723 723 724 .. c:type:: v4l2_stateless_h264_decode_mode 724 .. c:type:: v4l2_stateless_h264_decode_mode 725 725 726 .. raw:: latex 726 .. raw:: latex 727 727 728 \scriptsize 728 \scriptsize 729 729 730 .. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm 730 .. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| 731 731 732 .. flat-table:: 732 .. flat-table:: 733 :header-rows: 0 733 :header-rows: 0 734 :stub-columns: 0 734 :stub-columns: 0 735 :widths: 1 1 2 735 :widths: 1 1 2 736 736 737 * - ``V4L2_STATELESS_H264_DECODE_MODE_SLIC 737 * - ``V4L2_STATELESS_H264_DECODE_MODE_SLICE_BASED`` 738 - 0 738 - 0 739 - Decoding is done at the slice granular 739 - Decoding is done at the slice granularity. 740 The OUTPUT buffer must contain a singl 740 The OUTPUT buffer must contain a single slice. 741 When this mode is selected, the ``V4L2 741 When this mode is selected, the ``V4L2_CID_STATELESS_H264_SLICE_PARAMS`` 742 control shall be set. When multiple sl 742 control shall be set. When multiple slices compose a frame, 743 use of ``V4L2_BUF_CAP_SUPPORTS_M2M_HOL 743 use of ``V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF`` flag 744 is required. 744 is required. 745 * - ``V4L2_STATELESS_H264_DECODE_MODE_FRAM 745 * - ``V4L2_STATELESS_H264_DECODE_MODE_FRAME_BASED`` 746 - 1 746 - 1 747 - Decoding is done at the frame granular 747 - Decoding is done at the frame granularity, 748 The OUTPUT buffer must contain all sli 748 The OUTPUT buffer must contain all slices needed to decode the 749 frame. The OUTPUT buffer must also con 749 frame. The OUTPUT buffer must also contain both fields. 750 This mode will be supported by devices 750 This mode will be supported by devices that 751 parse the slice(s) header(s) in hardwa 751 parse the slice(s) header(s) in hardware. When this mode is 752 selected, the ``V4L2_CID_STATELESS_H26 752 selected, the ``V4L2_CID_STATELESS_H264_SLICE_PARAMS`` 753 control shall not be set. 753 control shall not be set. 754 754 755 .. raw:: latex 755 .. raw:: latex 756 756 757 \normalsize 757 \normalsize 758 758 759 ``V4L2_CID_STATELESS_H264_START_CODE (enum)`` 759 ``V4L2_CID_STATELESS_H264_START_CODE (enum)`` 760 Specifies the H264 slice start code expect 760 Specifies the H264 slice start code expected for each slice. 761 This control is used as a modifier for V4L 761 This control is used as a modifier for V4L2_PIX_FMT_H264_SLICE 762 pixel format. Applications that support V4 762 pixel format. Applications that support V4L2_PIX_FMT_H264_SLICE 763 are required to set this control in order 763 are required to set this control in order to specify the start code 764 that is expected for the buffer. 764 that is expected for the buffer. 765 Drivers may expose a single or multiple st 765 Drivers may expose a single or multiple start codes, depending 766 on what they can support. 766 on what they can support. 767 767 768 .. c:type:: v4l2_stateless_h264_start_code 768 .. c:type:: v4l2_stateless_h264_start_code 769 769 770 .. raw:: latex 770 .. raw:: latex 771 771 772 \small 772 \small 773 773 774 .. tabularcolumns:: |p{7.9cm}|p{0.4cm}|p{9.0cm 774 .. tabularcolumns:: |p{7.9cm}|p{0.4cm}|p{9.0cm}| 775 775 776 .. flat-table:: 776 .. flat-table:: 777 :header-rows: 0 777 :header-rows: 0 778 :stub-columns: 0 778 :stub-columns: 0 779 :widths: 4 1 4 779 :widths: 4 1 4 780 780 781 * - ``V4L2_STATELESS_H264_START_CODE_NONE` 781 * - ``V4L2_STATELESS_H264_START_CODE_NONE`` 782 - 0 782 - 0 783 - Selecting this value specifies that H2 783 - Selecting this value specifies that H264 slices are passed 784 to the driver without any start code. 784 to the driver without any start code. The bitstream data should be 785 according to :ref:`h264` 7.3.1 NAL uni 785 according to :ref:`h264` 7.3.1 NAL unit syntax, hence contains 786 emulation prevention bytes when requir 786 emulation prevention bytes when required. 787 * - ``V4L2_STATELESS_H264_START_CODE_ANNEX 787 * - ``V4L2_STATELESS_H264_START_CODE_ANNEX_B`` 788 - 1 788 - 1 789 - Selecting this value specifies that H2 789 - Selecting this value specifies that H264 slices are expected 790 to be prefixed by Annex B start codes. 790 to be prefixed by Annex B start codes. According to :ref:`h264` 791 valid start codes can be 3-bytes 0x000 791 valid start codes can be 3-bytes 0x000001 or 4-bytes 0x00000001. 792 792 793 .. raw:: latex 793 .. raw:: latex 794 794 795 \normalsize 795 \normalsize 796 796 797 .. _codec-stateless-fwht: 797 .. _codec-stateless-fwht: 798 798 799 ``V4L2_CID_STATELESS_FWHT_PARAMS (struct)`` 799 ``V4L2_CID_STATELESS_FWHT_PARAMS (struct)`` 800 Specifies the FWHT (Fast Walsh Hadamard Tr 800 Specifies the FWHT (Fast Walsh Hadamard Transform) parameters (as extracted 801 from the bitstream) for the associated FWH 801 from the bitstream) for the associated FWHT data. This includes the necessary 802 parameters for configuring a stateless har 802 parameters for configuring a stateless hardware decoding pipeline for FWHT. 803 This codec is specific to the vicodec test 803 This codec is specific to the vicodec test driver. 804 804 805 .. c:type:: v4l2_ctrl_fwht_params 805 .. c:type:: v4l2_ctrl_fwht_params 806 806 807 .. raw:: latex 807 .. raw:: latex 808 808 809 \small 809 \small 810 810 811 .. tabularcolumns:: |p{1.4cm}|p{3.9cm}|p{12.0c 811 .. tabularcolumns:: |p{1.4cm}|p{3.9cm}|p{12.0cm}| 812 812 813 .. flat-table:: struct v4l2_ctrl_fwht_params 813 .. flat-table:: struct v4l2_ctrl_fwht_params 814 :header-rows: 0 814 :header-rows: 0 815 :stub-columns: 0 815 :stub-columns: 0 816 :widths: 1 1 2 816 :widths: 1 1 2 817 817 818 * - __u64 818 * - __u64 819 - ``backward_ref_ts`` 819 - ``backward_ref_ts`` 820 - Timestamp of the V4L2 capture buffer t 820 - Timestamp of the V4L2 capture buffer to use as backward reference, used 821 with P-coded frames. The timestamp ref 821 with P-coded frames. The timestamp refers to the 822 ``timestamp`` field in struct :c:type: 822 ``timestamp`` field in struct :c:type:`v4l2_buffer`. Use the 823 :c:func:`v4l2_timeval_to_ns()` functio 823 :c:func:`v4l2_timeval_to_ns()` function to convert the struct 824 :c:type:`timeval` in struct :c:type:`v 824 :c:type:`timeval` in struct :c:type:`v4l2_buffer` to a __u64. 825 * - __u32 825 * - __u32 826 - ``version`` 826 - ``version`` 827 - The version of the codec. Set to ``V4L 827 - The version of the codec. Set to ``V4L2_FWHT_VERSION``. 828 * - __u32 828 * - __u32 829 - ``width`` 829 - ``width`` 830 - The width of the frame. 830 - The width of the frame. 831 * - __u32 831 * - __u32 832 - ``height`` 832 - ``height`` 833 - The height of the frame. 833 - The height of the frame. 834 * - __u32 834 * - __u32 835 - ``flags`` 835 - ``flags`` 836 - The flags of the frame, see :ref:`fwht 836 - The flags of the frame, see :ref:`fwht-flags`. 837 * - __u32 837 * - __u32 838 - ``colorspace`` 838 - ``colorspace`` 839 - The colorspace of the frame, from enum 839 - The colorspace of the frame, from enum :c:type:`v4l2_colorspace`. 840 * - __u32 840 * - __u32 841 - ``xfer_func`` 841 - ``xfer_func`` 842 - The transfer function, from enum :c:ty 842 - The transfer function, from enum :c:type:`v4l2_xfer_func`. 843 * - __u32 843 * - __u32 844 - ``ycbcr_enc`` 844 - ``ycbcr_enc`` 845 - The Y'CbCr encoding, from enum :c:type 845 - The Y'CbCr encoding, from enum :c:type:`v4l2_ycbcr_encoding`. 846 * - __u32 846 * - __u32 847 - ``quantization`` 847 - ``quantization`` 848 - The quantization range, from enum :c:t 848 - The quantization range, from enum :c:type:`v4l2_quantization`. 849 849 850 .. raw:: latex 850 .. raw:: latex 851 851 852 \normalsize 852 \normalsize 853 853 854 .. _fwht-flags: 854 .. _fwht-flags: 855 855 856 FWHT Flags 856 FWHT Flags 857 ========== 857 ========== 858 858 859 .. raw:: latex 859 .. raw:: latex 860 860 861 \small 861 \small 862 862 863 .. tabularcolumns:: |p{7.0cm}|p{2.3cm}|p{8.0cm 863 .. tabularcolumns:: |p{7.0cm}|p{2.3cm}|p{8.0cm}| 864 864 865 .. flat-table:: 865 .. flat-table:: 866 :header-rows: 0 866 :header-rows: 0 867 :stub-columns: 0 867 :stub-columns: 0 868 :widths: 3 1 4 868 :widths: 3 1 4 869 869 870 * - ``V4L2_FWHT_FL_IS_INTERLACED`` 870 * - ``V4L2_FWHT_FL_IS_INTERLACED`` 871 - 0x00000001 871 - 0x00000001 872 - Set if this is an interlaced format. 872 - Set if this is an interlaced format. 873 * - ``V4L2_FWHT_FL_IS_BOTTOM_FIRST`` 873 * - ``V4L2_FWHT_FL_IS_BOTTOM_FIRST`` 874 - 0x00000002 874 - 0x00000002 875 - Set if this is a bottom-first (NTSC) i 875 - Set if this is a bottom-first (NTSC) interlaced format. 876 * - ``V4L2_FWHT_FL_IS_ALTERNATE`` 876 * - ``V4L2_FWHT_FL_IS_ALTERNATE`` 877 - 0x00000004 877 - 0x00000004 878 - Set if each 'frame' contains just one 878 - Set if each 'frame' contains just one field. 879 * - ``V4L2_FWHT_FL_IS_BOTTOM_FIELD`` 879 * - ``V4L2_FWHT_FL_IS_BOTTOM_FIELD`` 880 - 0x00000008 880 - 0x00000008 881 - If V4L2_FWHT_FL_IS_ALTERNATE was set, 881 - If V4L2_FWHT_FL_IS_ALTERNATE was set, then this is set if this 'frame' is the 882 bottom field, else it is the top field 882 bottom field, else it is the top field. 883 * - ``V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED`` 883 * - ``V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED`` 884 - 0x00000010 884 - 0x00000010 885 - Set if the Y' (luma) plane is uncompre 885 - Set if the Y' (luma) plane is uncompressed. 886 * - ``V4L2_FWHT_FL_CB_IS_UNCOMPRESSED`` 886 * - ``V4L2_FWHT_FL_CB_IS_UNCOMPRESSED`` 887 - 0x00000020 887 - 0x00000020 888 - Set if the Cb plane is uncompressed. 888 - Set if the Cb plane is uncompressed. 889 * - ``V4L2_FWHT_FL_CR_IS_UNCOMPRESSED`` 889 * - ``V4L2_FWHT_FL_CR_IS_UNCOMPRESSED`` 890 - 0x00000040 890 - 0x00000040 891 - Set if the Cr plane is uncompressed. 891 - Set if the Cr plane is uncompressed. 892 * - ``V4L2_FWHT_FL_CHROMA_FULL_HEIGHT`` 892 * - ``V4L2_FWHT_FL_CHROMA_FULL_HEIGHT`` 893 - 0x00000080 893 - 0x00000080 894 - Set if the chroma plane has the same h 894 - Set if the chroma plane has the same height as the luma plane, 895 else the chroma plane is half the heig 895 else the chroma plane is half the height of the luma plane. 896 * - ``V4L2_FWHT_FL_CHROMA_FULL_WIDTH`` 896 * - ``V4L2_FWHT_FL_CHROMA_FULL_WIDTH`` 897 - 0x00000100 897 - 0x00000100 898 - Set if the chroma plane has the same w 898 - Set if the chroma plane has the same width as the luma plane, 899 else the chroma plane is half the widt 899 else the chroma plane is half the width of the luma plane. 900 * - ``V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED`` 900 * - ``V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED`` 901 - 0x00000200 901 - 0x00000200 902 - Set if the alpha plane is uncompressed 902 - Set if the alpha plane is uncompressed. 903 * - ``V4L2_FWHT_FL_I_FRAME`` 903 * - ``V4L2_FWHT_FL_I_FRAME`` 904 - 0x00000400 904 - 0x00000400 905 - Set if this is an I-frame. 905 - Set if this is an I-frame. 906 * - ``V4L2_FWHT_FL_COMPONENTS_NUM_MSK`` 906 * - ``V4L2_FWHT_FL_COMPONENTS_NUM_MSK`` 907 - 0x00070000 907 - 0x00070000 908 - The number of color components minus o 908 - The number of color components minus one. 909 * - ``V4L2_FWHT_FL_PIXENC_MSK`` 909 * - ``V4L2_FWHT_FL_PIXENC_MSK`` 910 - 0x00180000 910 - 0x00180000 911 - The mask for the pixel encoding. 911 - The mask for the pixel encoding. 912 * - ``V4L2_FWHT_FL_PIXENC_YUV`` 912 * - ``V4L2_FWHT_FL_PIXENC_YUV`` 913 - 0x00080000 913 - 0x00080000 914 - Set if the pixel encoding is YUV. 914 - Set if the pixel encoding is YUV. 915 * - ``V4L2_FWHT_FL_PIXENC_RGB`` 915 * - ``V4L2_FWHT_FL_PIXENC_RGB`` 916 - 0x00100000 916 - 0x00100000 917 - Set if the pixel encoding is RGB. 917 - Set if the pixel encoding is RGB. 918 * - ``V4L2_FWHT_FL_PIXENC_HSV`` 918 * - ``V4L2_FWHT_FL_PIXENC_HSV`` 919 - 0x00180000 919 - 0x00180000 920 - Set if the pixel encoding is HSV. 920 - Set if the pixel encoding is HSV. 921 921 922 .. raw:: latex 922 .. raw:: latex 923 923 924 \normalsize 924 \normalsize 925 925 926 .. _v4l2-codec-stateless-vp8: 926 .. _v4l2-codec-stateless-vp8: 927 927 928 ``V4L2_CID_STATELESS_VP8_FRAME (struct)`` 928 ``V4L2_CID_STATELESS_VP8_FRAME (struct)`` 929 Specifies the frame parameters for the ass 929 Specifies the frame parameters for the associated VP8 parsed frame data. 930 This includes the necessary parameters for 930 This includes the necessary parameters for 931 configuring a stateless hardware decoding 931 configuring a stateless hardware decoding pipeline for VP8. 932 The bitstream parameters are defined accor 932 The bitstream parameters are defined according to :ref:`vp8`. 933 933 934 .. c:type:: v4l2_ctrl_vp8_frame 934 .. c:type:: v4l2_ctrl_vp8_frame 935 935 936 .. raw:: latex 936 .. raw:: latex 937 937 938 \small 938 \small 939 939 940 .. tabularcolumns:: |p{7.0cm}|p{4.6cm}|p{5.7cm 940 .. tabularcolumns:: |p{7.0cm}|p{4.6cm}|p{5.7cm}| 941 941 942 .. cssclass:: longtable 942 .. cssclass:: longtable 943 943 944 .. flat-table:: struct v4l2_ctrl_vp8_frame 944 .. flat-table:: struct v4l2_ctrl_vp8_frame 945 :header-rows: 0 945 :header-rows: 0 946 :stub-columns: 0 946 :stub-columns: 0 947 :widths: 1 1 2 947 :widths: 1 1 2 948 948 949 * - struct :c:type:`v4l2_vp8_segment` 949 * - struct :c:type:`v4l2_vp8_segment` 950 - ``segment`` 950 - ``segment`` 951 - Structure with segment-based adjustmen 951 - Structure with segment-based adjustments metadata. 952 * - struct :c:type:`v4l2_vp8_loop_filter` 952 * - struct :c:type:`v4l2_vp8_loop_filter` 953 - ``lf`` 953 - ``lf`` 954 - Structure with loop filter level adjus 954 - Structure with loop filter level adjustments metadata. 955 * - struct :c:type:`v4l2_vp8_quantization` 955 * - struct :c:type:`v4l2_vp8_quantization` 956 - ``quant`` 956 - ``quant`` 957 - Structure with VP8 dequantization indi 957 - Structure with VP8 dequantization indices metadata. 958 * - struct :c:type:`v4l2_vp8_entropy` 958 * - struct :c:type:`v4l2_vp8_entropy` 959 - ``entropy`` 959 - ``entropy`` 960 - Structure with VP8 entropy coder proba 960 - Structure with VP8 entropy coder probabilities metadata. 961 * - struct :c:type:`v4l2_vp8_entropy_coder 961 * - struct :c:type:`v4l2_vp8_entropy_coder_state` 962 - ``coder_state`` 962 - ``coder_state`` 963 - Structure with VP8 entropy coder state 963 - Structure with VP8 entropy coder state. 964 * - __u16 964 * - __u16 965 - ``width`` 965 - ``width`` 966 - The width of the frame. Must be set fo 966 - The width of the frame. Must be set for all frames. 967 * - __u16 967 * - __u16 968 - ``height`` 968 - ``height`` 969 - The height of the frame. Must be set f 969 - The height of the frame. Must be set for all frames. 970 * - __u8 970 * - __u8 971 - ``horizontal_scale`` 971 - ``horizontal_scale`` 972 - Horizontal scaling factor. 972 - Horizontal scaling factor. 973 * - __u8 973 * - __u8 974 - ``vertical_scale`` 974 - ``vertical_scale`` 975 - Vertical scaling factor. 975 - Vertical scaling factor. 976 * - __u8 976 * - __u8 977 - ``version`` 977 - ``version`` 978 - Bitstream version. 978 - Bitstream version. 979 * - __u8 979 * - __u8 980 - ``prob_skip_false`` 980 - ``prob_skip_false`` 981 - Indicates the probability that the mac 981 - Indicates the probability that the macroblock is not skipped. 982 * - __u8 982 * - __u8 983 - ``prob_intra`` 983 - ``prob_intra`` 984 - Indicates the probability that a macro 984 - Indicates the probability that a macroblock is intra-predicted. 985 * - __u8 985 * - __u8 986 - ``prob_last`` 986 - ``prob_last`` 987 - Indicates the probability that the las 987 - Indicates the probability that the last reference frame is used 988 for inter-prediction 988 for inter-prediction 989 * - __u8 989 * - __u8 990 - ``prob_gf`` 990 - ``prob_gf`` 991 - Indicates the probability that the gol 991 - Indicates the probability that the golden reference frame is used 992 for inter-prediction 992 for inter-prediction 993 * - __u8 993 * - __u8 994 - ``num_dct_parts`` 994 - ``num_dct_parts`` 995 - Number of DCT coefficients partitions. 995 - Number of DCT coefficients partitions. Must be one of: 1, 2, 4, or 8. 996 * - __u32 996 * - __u32 997 - ``first_part_size`` 997 - ``first_part_size`` 998 - Size of the first partition, i.e. the 998 - Size of the first partition, i.e. the control partition. 999 * - __u32 999 * - __u32 1000 - ``first_part_header_bits`` 1000 - ``first_part_header_bits`` 1001 - Size in bits of the first partition h 1001 - Size in bits of the first partition header portion. 1002 * - __u32 1002 * - __u32 1003 - ``dct_part_sizes[8]`` 1003 - ``dct_part_sizes[8]`` 1004 - DCT coefficients sizes. 1004 - DCT coefficients sizes. 1005 * - __u64 1005 * - __u64 1006 - ``last_frame_ts`` 1006 - ``last_frame_ts`` 1007 - Timestamp for the V4L2 capture buffer 1007 - Timestamp for the V4L2 capture buffer to use as last reference frame, used 1008 with inter-coded frames. The timestam 1008 with inter-coded frames. The timestamp refers to the ``timestamp`` field in 1009 struct :c:type:`v4l2_buffer`. Use the 1009 struct :c:type:`v4l2_buffer`. Use the :c:func:`v4l2_timeval_to_ns()` 1010 function to convert the struct :c:typ 1010 function to convert the struct :c:type:`timeval` in struct 1011 :c:type:`v4l2_buffer` to a __u64. 1011 :c:type:`v4l2_buffer` to a __u64. 1012 * - __u64 1012 * - __u64 1013 - ``golden_frame_ts`` 1013 - ``golden_frame_ts`` 1014 - Timestamp for the V4L2 capture buffer 1014 - Timestamp for the V4L2 capture buffer to use as last reference frame, used 1015 with inter-coded frames. The timestam 1015 with inter-coded frames. The timestamp refers to the ``timestamp`` field in 1016 struct :c:type:`v4l2_buffer`. Use the 1016 struct :c:type:`v4l2_buffer`. Use the :c:func:`v4l2_timeval_to_ns()` 1017 function to convert the struct :c:typ 1017 function to convert the struct :c:type:`timeval` in struct 1018 :c:type:`v4l2_buffer` to a __u64. 1018 :c:type:`v4l2_buffer` to a __u64. 1019 * - __u64 1019 * - __u64 1020 - ``alt_frame_ts`` 1020 - ``alt_frame_ts`` 1021 - Timestamp for the V4L2 capture buffer 1021 - Timestamp for the V4L2 capture buffer to use as alternate reference frame, used 1022 with inter-coded frames. The timestam 1022 with inter-coded frames. The timestamp refers to the ``timestamp`` field in 1023 struct :c:type:`v4l2_buffer`. Use the 1023 struct :c:type:`v4l2_buffer`. Use the :c:func:`v4l2_timeval_to_ns()` 1024 function to convert the struct :c:typ 1024 function to convert the struct :c:type:`timeval` in struct 1025 :c:type:`v4l2_buffer` to a __u64. 1025 :c:type:`v4l2_buffer` to a __u64. 1026 * - __u64 1026 * - __u64 1027 - ``flags`` 1027 - ``flags`` 1028 - See :ref:`Frame Flags <vp8_frame_flag 1028 - See :ref:`Frame Flags <vp8_frame_flags>` 1029 1029 1030 .. raw:: latex 1030 .. raw:: latex 1031 1031 1032 \normalsize 1032 \normalsize 1033 1033 1034 .. _vp8_frame_flags: 1034 .. _vp8_frame_flags: 1035 1035 1036 ``Frame Flags`` 1036 ``Frame Flags`` 1037 1037 1038 .. tabularcolumns:: |p{9.8cm}|p{0.8cm}|p{6.7c 1038 .. tabularcolumns:: |p{9.8cm}|p{0.8cm}|p{6.7cm}| 1039 1039 1040 .. cssclass:: longtable 1040 .. cssclass:: longtable 1041 1041 1042 .. flat-table:: 1042 .. flat-table:: 1043 :header-rows: 0 1043 :header-rows: 0 1044 :stub-columns: 0 1044 :stub-columns: 0 1045 :widths: 1 1 2 1045 :widths: 1 1 2 1046 1046 1047 * - ``V4L2_VP8_FRAME_FLAG_KEY_FRAME`` 1047 * - ``V4L2_VP8_FRAME_FLAG_KEY_FRAME`` 1048 - 0x01 1048 - 0x01 1049 - Indicates if the frame is a key frame 1049 - Indicates if the frame is a key frame. 1050 * - ``V4L2_VP8_FRAME_FLAG_EXPERIMENTAL`` 1050 * - ``V4L2_VP8_FRAME_FLAG_EXPERIMENTAL`` 1051 - 0x02 1051 - 0x02 1052 - Experimental bitstream. 1052 - Experimental bitstream. 1053 * - ``V4L2_VP8_FRAME_FLAG_SHOW_FRAME`` 1053 * - ``V4L2_VP8_FRAME_FLAG_SHOW_FRAME`` 1054 - 0x04 1054 - 0x04 1055 - Show frame flag, indicates if the fra 1055 - Show frame flag, indicates if the frame is for display. 1056 * - ``V4L2_VP8_FRAME_FLAG_MB_NO_SKIP_COEF 1056 * - ``V4L2_VP8_FRAME_FLAG_MB_NO_SKIP_COEFF`` 1057 - 0x08 1057 - 0x08 1058 - Enable/disable skipping of macroblock 1058 - Enable/disable skipping of macroblocks with no non-zero coefficients. 1059 * - ``V4L2_VP8_FRAME_FLAG_SIGN_BIAS_GOLDE 1059 * - ``V4L2_VP8_FRAME_FLAG_SIGN_BIAS_GOLDEN`` 1060 - 0x10 1060 - 0x10 1061 - Sign of motion vectors when the golde 1061 - Sign of motion vectors when the golden frame is referenced. 1062 * - ``V4L2_VP8_FRAME_FLAG_SIGN_BIAS_ALT`` 1062 * - ``V4L2_VP8_FRAME_FLAG_SIGN_BIAS_ALT`` 1063 - 0x20 1063 - 0x20 1064 - Sign of motion vectors when the alt f 1064 - Sign of motion vectors when the alt frame is referenced. 1065 1065 1066 .. c:type:: v4l2_vp8_entropy_coder_state 1066 .. c:type:: v4l2_vp8_entropy_coder_state 1067 1067 1068 .. cssclass:: longtable 1068 .. cssclass:: longtable 1069 1069 1070 .. tabularcolumns:: |p{1.0cm}|p{2.0cm}|p{14.3 1070 .. tabularcolumns:: |p{1.0cm}|p{2.0cm}|p{14.3cm}| 1071 1071 1072 .. flat-table:: struct v4l2_vp8_entropy_coder 1072 .. flat-table:: struct v4l2_vp8_entropy_coder_state 1073 :header-rows: 0 1073 :header-rows: 0 1074 :stub-columns: 0 1074 :stub-columns: 0 1075 :widths: 1 1 2 1075 :widths: 1 1 2 1076 1076 1077 * - __u8 1077 * - __u8 1078 - ``range`` 1078 - ``range`` 1079 - coder state value for "Range" 1079 - coder state value for "Range" 1080 * - __u8 1080 * - __u8 1081 - ``value`` 1081 - ``value`` 1082 - coder state value for "Value"- 1082 - coder state value for "Value"- 1083 * - __u8 1083 * - __u8 1084 - ``bit_count`` 1084 - ``bit_count`` 1085 - number of bits left. 1085 - number of bits left. 1086 * - __u8 1086 * - __u8 1087 - ``padding`` 1087 - ``padding`` 1088 - Applications and drivers must set thi 1088 - Applications and drivers must set this to zero. 1089 1089 1090 .. c:type:: v4l2_vp8_segment 1090 .. c:type:: v4l2_vp8_segment 1091 1091 1092 .. cssclass:: longtable 1092 .. cssclass:: longtable 1093 1093 1094 .. tabularcolumns:: |p{1.2cm}|p{4.0cm}|p{12.1 1094 .. tabularcolumns:: |p{1.2cm}|p{4.0cm}|p{12.1cm}| 1095 1095 1096 .. flat-table:: struct v4l2_vp8_segment 1096 .. flat-table:: struct v4l2_vp8_segment 1097 :header-rows: 0 1097 :header-rows: 0 1098 :stub-columns: 0 1098 :stub-columns: 0 1099 :widths: 1 1 2 1099 :widths: 1 1 2 1100 1100 1101 * - __s8 1101 * - __s8 1102 - ``quant_update[4]`` 1102 - ``quant_update[4]`` 1103 - Signed quantizer value update. 1103 - Signed quantizer value update. 1104 * - __s8 1104 * - __s8 1105 - ``lf_update[4]`` 1105 - ``lf_update[4]`` 1106 - Signed loop filter level value update 1106 - Signed loop filter level value update. 1107 * - __u8 1107 * - __u8 1108 - ``segment_probs[3]`` 1108 - ``segment_probs[3]`` 1109 - Segment probabilities. 1109 - Segment probabilities. 1110 * - __u8 1110 * - __u8 1111 - ``padding`` 1111 - ``padding`` 1112 - Applications and drivers must set thi 1112 - Applications and drivers must set this to zero. 1113 * - __u32 1113 * - __u32 1114 - ``flags`` 1114 - ``flags`` 1115 - See :ref:`Segment Flags <vp8_segment_ 1115 - See :ref:`Segment Flags <vp8_segment_flags>` 1116 1116 1117 .. _vp8_segment_flags: 1117 .. _vp8_segment_flags: 1118 1118 1119 ``Segment Flags`` 1119 ``Segment Flags`` 1120 1120 1121 .. raw:: latex 1121 .. raw:: latex 1122 1122 1123 \small 1123 \small 1124 1124 1125 .. tabularcolumns:: |p{10cm}|p{1.0cm}|p{6.3cm 1125 .. tabularcolumns:: |p{10cm}|p{1.0cm}|p{6.3cm}| 1126 1126 1127 .. flat-table:: 1127 .. flat-table:: 1128 :header-rows: 0 1128 :header-rows: 0 1129 :stub-columns: 0 1129 :stub-columns: 0 1130 :widths: 1 1 2 1130 :widths: 1 1 2 1131 1131 1132 * - ``V4L2_VP8_SEGMENT_FLAG_ENABLED`` 1132 * - ``V4L2_VP8_SEGMENT_FLAG_ENABLED`` 1133 - 0x01 1133 - 0x01 1134 - Enable/disable segment-based adjustme 1134 - Enable/disable segment-based adjustments. 1135 * - ``V4L2_VP8_SEGMENT_FLAG_UPDATE_MAP`` 1135 * - ``V4L2_VP8_SEGMENT_FLAG_UPDATE_MAP`` 1136 - 0x02 1136 - 0x02 1137 - Indicates if the macroblock segmentat 1137 - Indicates if the macroblock segmentation map is updated in this frame. 1138 * - ``V4L2_VP8_SEGMENT_FLAG_UPDATE_FEATUR 1138 * - ``V4L2_VP8_SEGMENT_FLAG_UPDATE_FEATURE_DATA`` 1139 - 0x04 1139 - 0x04 1140 - Indicates if the segment feature data 1140 - Indicates if the segment feature data is updated in this frame. 1141 * - ``V4L2_VP8_SEGMENT_FLAG_DELTA_VALUE_M 1141 * - ``V4L2_VP8_SEGMENT_FLAG_DELTA_VALUE_MODE`` 1142 - 0x08 1142 - 0x08 1143 - If is set, the segment feature data m 1143 - If is set, the segment feature data mode is delta-value. 1144 If cleared, it's absolute-value. 1144 If cleared, it's absolute-value. 1145 1145 1146 .. raw:: latex 1146 .. raw:: latex 1147 1147 1148 \normalsize 1148 \normalsize 1149 1149 1150 .. c:type:: v4l2_vp8_loop_filter 1150 .. c:type:: v4l2_vp8_loop_filter 1151 1151 1152 .. cssclass:: longtable 1152 .. cssclass:: longtable 1153 1153 1154 .. tabularcolumns:: |p{1.5cm}|p{3.9cm}|p{11.9 1154 .. tabularcolumns:: |p{1.5cm}|p{3.9cm}|p{11.9cm}| 1155 1155 1156 .. flat-table:: struct v4l2_vp8_loop_filter 1156 .. flat-table:: struct v4l2_vp8_loop_filter 1157 :header-rows: 0 1157 :header-rows: 0 1158 :stub-columns: 0 1158 :stub-columns: 0 1159 :widths: 1 1 2 1159 :widths: 1 1 2 1160 1160 1161 * - __s8 1161 * - __s8 1162 - ``ref_frm_delta[4]`` 1162 - ``ref_frm_delta[4]`` 1163 - Reference adjustment (signed) delta v 1163 - Reference adjustment (signed) delta value. 1164 * - __s8 1164 * - __s8 1165 - ``mb_mode_delta[4]`` 1165 - ``mb_mode_delta[4]`` 1166 - Macroblock prediction mode adjustment 1166 - Macroblock prediction mode adjustment (signed) delta value. 1167 * - __u8 1167 * - __u8 1168 - ``sharpness_level`` 1168 - ``sharpness_level`` 1169 - Sharpness level 1169 - Sharpness level 1170 * - __u8 1170 * - __u8 1171 - ``level`` 1171 - ``level`` 1172 - Filter level 1172 - Filter level 1173 * - __u16 1173 * - __u16 1174 - ``padding`` 1174 - ``padding`` 1175 - Applications and drivers must set thi 1175 - Applications and drivers must set this to zero. 1176 * - __u32 1176 * - __u32 1177 - ``flags`` 1177 - ``flags`` 1178 - See :ref:`Loop Filter Flags <vp8_loop 1178 - See :ref:`Loop Filter Flags <vp8_loop_filter_flags>` 1179 1179 1180 .. _vp8_loop_filter_flags: 1180 .. _vp8_loop_filter_flags: 1181 1181 1182 ``Loop Filter Flags`` 1182 ``Loop Filter Flags`` 1183 1183 1184 .. tabularcolumns:: |p{7.0cm}|p{1.2cm}|p{9.1c 1184 .. tabularcolumns:: |p{7.0cm}|p{1.2cm}|p{9.1cm}| 1185 1185 1186 .. flat-table:: 1186 .. flat-table:: 1187 :header-rows: 0 1187 :header-rows: 0 1188 :stub-columns: 0 1188 :stub-columns: 0 1189 :widths: 1 1 2 1189 :widths: 1 1 2 1190 1190 1191 * - ``V4L2_VP8_LF_ADJ_ENABLE`` 1191 * - ``V4L2_VP8_LF_ADJ_ENABLE`` 1192 - 0x01 1192 - 0x01 1193 - Enable/disable macroblock-level loop 1193 - Enable/disable macroblock-level loop filter adjustment. 1194 * - ``V4L2_VP8_LF_DELTA_UPDATE`` 1194 * - ``V4L2_VP8_LF_DELTA_UPDATE`` 1195 - 0x02 1195 - 0x02 1196 - Indicates if the delta values used in 1196 - Indicates if the delta values used in an adjustment are updated. 1197 * - ``V4L2_VP8_LF_FILTER_TYPE_SIMPLE`` 1197 * - ``V4L2_VP8_LF_FILTER_TYPE_SIMPLE`` 1198 - 0x04 1198 - 0x04 1199 - If set, indicates the filter type is 1199 - If set, indicates the filter type is simple. 1200 If cleared, the filter type is normal 1200 If cleared, the filter type is normal. 1201 1201 1202 .. c:type:: v4l2_vp8_quantization 1202 .. c:type:: v4l2_vp8_quantization 1203 1203 1204 .. tabularcolumns:: |p{1.5cm}|p{3.5cm}|p{12.3 1204 .. tabularcolumns:: |p{1.5cm}|p{3.5cm}|p{12.3cm}| 1205 1205 1206 .. flat-table:: struct v4l2_vp8_quantization 1206 .. flat-table:: struct v4l2_vp8_quantization 1207 :header-rows: 0 1207 :header-rows: 0 1208 :stub-columns: 0 1208 :stub-columns: 0 1209 :widths: 1 1 2 1209 :widths: 1 1 2 1210 1210 1211 * - __u8 1211 * - __u8 1212 - ``y_ac_qi`` 1212 - ``y_ac_qi`` 1213 - Luma AC coefficient table index. 1213 - Luma AC coefficient table index. 1214 * - __s8 1214 * - __s8 1215 - ``y_dc_delta`` 1215 - ``y_dc_delta`` 1216 - Luma DC delta value. 1216 - Luma DC delta value. 1217 * - __s8 1217 * - __s8 1218 - ``y2_dc_delta`` 1218 - ``y2_dc_delta`` 1219 - Y2 block DC delta value. 1219 - Y2 block DC delta value. 1220 * - __s8 1220 * - __s8 1221 - ``y2_ac_delta`` 1221 - ``y2_ac_delta`` 1222 - Y2 block AC delta value. 1222 - Y2 block AC delta value. 1223 * - __s8 1223 * - __s8 1224 - ``uv_dc_delta`` 1224 - ``uv_dc_delta`` 1225 - Chroma DC delta value. 1225 - Chroma DC delta value. 1226 * - __s8 1226 * - __s8 1227 - ``uv_ac_delta`` 1227 - ``uv_ac_delta`` 1228 - Chroma AC delta value. 1228 - Chroma AC delta value. 1229 * - __u16 1229 * - __u16 1230 - ``padding`` 1230 - ``padding`` 1231 - Applications and drivers must set thi 1231 - Applications and drivers must set this to zero. 1232 1232 1233 .. c:type:: v4l2_vp8_entropy 1233 .. c:type:: v4l2_vp8_entropy 1234 1234 1235 .. cssclass:: longtable 1235 .. cssclass:: longtable 1236 1236 1237 .. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0 1237 .. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| 1238 1238 1239 .. flat-table:: struct v4l2_vp8_entropy 1239 .. flat-table:: struct v4l2_vp8_entropy 1240 :header-rows: 0 1240 :header-rows: 0 1241 :stub-columns: 0 1241 :stub-columns: 0 1242 :widths: 1 1 2 1242 :widths: 1 1 2 1243 1243 1244 * - __u8 1244 * - __u8 1245 - ``coeff_probs[4][8][3][11]`` 1245 - ``coeff_probs[4][8][3][11]`` 1246 - Coefficient update probabilities. 1246 - Coefficient update probabilities. 1247 * - __u8 1247 * - __u8 1248 - ``y_mode_probs[4]`` 1248 - ``y_mode_probs[4]`` 1249 - Luma mode update probabilities. 1249 - Luma mode update probabilities. 1250 * - __u8 1250 * - __u8 1251 - ``uv_mode_probs[3]`` 1251 - ``uv_mode_probs[3]`` 1252 - Chroma mode update probabilities. 1252 - Chroma mode update probabilities. 1253 * - __u8 1253 * - __u8 1254 - ``mv_probs[2][19]`` 1254 - ``mv_probs[2][19]`` 1255 - MV decoding update probabilities. 1255 - MV decoding update probabilities. 1256 * - __u8 1256 * - __u8 1257 - ``padding[3]`` 1257 - ``padding[3]`` 1258 - Applications and drivers must set thi 1258 - Applications and drivers must set this to zero. 1259 1259 1260 .. _v4l2-codec-stateless-mpeg2: 1260 .. _v4l2-codec-stateless-mpeg2: 1261 1261 1262 ``V4L2_CID_STATELESS_MPEG2_SEQUENCE (struct)` 1262 ``V4L2_CID_STATELESS_MPEG2_SEQUENCE (struct)`` 1263 Specifies the sequence parameters (as ext 1263 Specifies the sequence parameters (as extracted from the bitstream) for the 1264 associated MPEG-2 slice data. This includ 1264 associated MPEG-2 slice data. This includes fields matching the syntax 1265 elements from the sequence header and seq 1265 elements from the sequence header and sequence extension parts of the 1266 bitstream as specified by :ref:`mpeg2part 1266 bitstream as specified by :ref:`mpeg2part2`. 1267 1267 1268 .. c:type:: v4l2_ctrl_mpeg2_sequence 1268 .. c:type:: v4l2_ctrl_mpeg2_sequence 1269 1269 1270 .. raw:: latex 1270 .. raw:: latex 1271 1271 1272 \small 1272 \small 1273 1273 1274 .. cssclass:: longtable 1274 .. cssclass:: longtable 1275 1275 1276 .. tabularcolumns:: |p{1.4cm}|p{6.5cm}|p{9.4c 1276 .. tabularcolumns:: |p{1.4cm}|p{6.5cm}|p{9.4cm}| 1277 1277 1278 .. flat-table:: struct v4l2_ctrl_mpeg2_sequen 1278 .. flat-table:: struct v4l2_ctrl_mpeg2_sequence 1279 :header-rows: 0 1279 :header-rows: 0 1280 :stub-columns: 0 1280 :stub-columns: 0 1281 :widths: 1 1 2 1281 :widths: 1 1 2 1282 1282 1283 * - __u16 1283 * - __u16 1284 - ``horizontal_size`` 1284 - ``horizontal_size`` 1285 - The width of the displayable part of 1285 - The width of the displayable part of the frame's luminance component. 1286 * - __u16 1286 * - __u16 1287 - ``vertical_size`` 1287 - ``vertical_size`` 1288 - The height of the displayable part of 1288 - The height of the displayable part of the frame's luminance component. 1289 * - __u32 1289 * - __u32 1290 - ``vbv_buffer_size`` 1290 - ``vbv_buffer_size`` 1291 - Used to calculate the required size o 1291 - Used to calculate the required size of the video buffering verifier, 1292 defined (in bits) as: 16 * 1024 * vbv 1292 defined (in bits) as: 16 * 1024 * vbv_buffer_size. 1293 * - __u16 1293 * - __u16 1294 - ``profile_and_level_indication`` 1294 - ``profile_and_level_indication`` 1295 - The current profile and level indicat 1295 - The current profile and level indication as extracted from the 1296 bitstream. 1296 bitstream. 1297 * - __u8 1297 * - __u8 1298 - ``chroma_format`` 1298 - ``chroma_format`` 1299 - The chrominance sub-sampling format ( 1299 - The chrominance sub-sampling format (1: 4:2:0, 2: 4:2:2, 3: 4:4:4). 1300 * - __u8 1300 * - __u8 1301 - ``flags`` 1301 - ``flags`` 1302 - See :ref:`MPEG-2 Sequence Flags <mpeg 1302 - See :ref:`MPEG-2 Sequence Flags <mpeg2_sequence_flags>`. 1303 1303 1304 .. _mpeg2_sequence_flags: 1304 .. _mpeg2_sequence_flags: 1305 1305 1306 ``MPEG-2 Sequence Flags`` 1306 ``MPEG-2 Sequence Flags`` 1307 1307 1308 .. cssclass:: longtable 1308 .. cssclass:: longtable 1309 1309 1310 .. flat-table:: 1310 .. flat-table:: 1311 :header-rows: 0 1311 :header-rows: 0 1312 :stub-columns: 0 1312 :stub-columns: 0 1313 :widths: 1 1 2 1313 :widths: 1 1 2 1314 1314 1315 * - ``V4L2_MPEG2_SEQ_FLAG_PROGRESSIVE`` 1315 * - ``V4L2_MPEG2_SEQ_FLAG_PROGRESSIVE`` 1316 - 0x01 1316 - 0x01 1317 - Indication that all the frames for th 1317 - Indication that all the frames for the sequence are progressive instead 1318 of interlaced. 1318 of interlaced. 1319 1319 1320 .. raw:: latex 1320 .. raw:: latex 1321 1321 1322 \normalsize 1322 \normalsize 1323 1323 1324 ``V4L2_CID_STATELESS_MPEG2_PICTURE (struct)`` 1324 ``V4L2_CID_STATELESS_MPEG2_PICTURE (struct)`` 1325 Specifies the picture parameters (as extr 1325 Specifies the picture parameters (as extracted from the bitstream) for the 1326 associated MPEG-2 slice data. This includ 1326 associated MPEG-2 slice data. This includes fields matching the syntax 1327 elements from the picture header and pict 1327 elements from the picture header and picture coding extension parts of the 1328 bitstream as specified by :ref:`mpeg2part 1328 bitstream as specified by :ref:`mpeg2part2`. 1329 1329 1330 .. c:type:: v4l2_ctrl_mpeg2_picture 1330 .. c:type:: v4l2_ctrl_mpeg2_picture 1331 1331 1332 .. raw:: latex 1332 .. raw:: latex 1333 1333 1334 \small 1334 \small 1335 1335 1336 .. cssclass:: longtable 1336 .. cssclass:: longtable 1337 1337 1338 .. tabularcolumns:: |p{1.0cm}|p{5.6cm}|p{10.7 1338 .. tabularcolumns:: |p{1.0cm}|p{5.6cm}|p{10.7cm}| 1339 1339 1340 .. flat-table:: struct v4l2_ctrl_mpeg2_pictur 1340 .. flat-table:: struct v4l2_ctrl_mpeg2_picture 1341 :header-rows: 0 1341 :header-rows: 0 1342 :stub-columns: 0 1342 :stub-columns: 0 1343 :widths: 1 1 2 1343 :widths: 1 1 2 1344 1344 1345 * - __u64 1345 * - __u64 1346 - ``backward_ref_ts`` 1346 - ``backward_ref_ts`` 1347 - Timestamp of the V4L2 capture buffer 1347 - Timestamp of the V4L2 capture buffer to use as backward reference, used 1348 with B-coded and P-coded frames. The 1348 with B-coded and P-coded frames. The timestamp refers to the 1349 ``timestamp`` field in struct :c:type 1349 ``timestamp`` field in struct :c:type:`v4l2_buffer`. Use the 1350 :c:func:`v4l2_timeval_to_ns()` functi 1350 :c:func:`v4l2_timeval_to_ns()` function to convert the struct 1351 :c:type:`timeval` in struct :c:type:` 1351 :c:type:`timeval` in struct :c:type:`v4l2_buffer` to a __u64. 1352 * - __u64 1352 * - __u64 1353 - ``forward_ref_ts`` 1353 - ``forward_ref_ts`` 1354 - Timestamp for the V4L2 capture buffer 1354 - Timestamp for the V4L2 capture buffer to use as forward reference, used 1355 with B-coded frames. The timestamp re 1355 with B-coded frames. The timestamp refers to the ``timestamp`` field in 1356 struct :c:type:`v4l2_buffer`. Use the 1356 struct :c:type:`v4l2_buffer`. Use the :c:func:`v4l2_timeval_to_ns()` 1357 function to convert the struct :c:typ 1357 function to convert the struct :c:type:`timeval` in struct 1358 :c:type:`v4l2_buffer` to a __u64. 1358 :c:type:`v4l2_buffer` to a __u64. 1359 * - __u32 1359 * - __u32 1360 - ``flags`` 1360 - ``flags`` 1361 - See :ref:`MPEG-2 Picture Flags <mpeg2 1361 - See :ref:`MPEG-2 Picture Flags <mpeg2_picture_flags>`. 1362 * - __u8 1362 * - __u8 1363 - ``f_code[2][2]`` 1363 - ``f_code[2][2]`` 1364 - Motion vector codes. 1364 - Motion vector codes. 1365 * - __u8 1365 * - __u8 1366 - ``picture_coding_type`` 1366 - ``picture_coding_type`` 1367 - Picture coding type for the frame cov 1367 - Picture coding type for the frame covered by the current slice 1368 (V4L2_MPEG2_PIC_CODING_TYPE_I, V4L2_M 1368 (V4L2_MPEG2_PIC_CODING_TYPE_I, V4L2_MPEG2_PIC_CODING_TYPE_P or 1369 V4L2_MPEG2_PIC_CODING_TYPE_B). 1369 V4L2_MPEG2_PIC_CODING_TYPE_B). 1370 * - __u8 1370 * - __u8 1371 - ``picture_structure`` 1371 - ``picture_structure`` 1372 - Picture structure (1: interlaced top 1372 - Picture structure (1: interlaced top field, 2: interlaced bottom field, 1373 3: progressive frame). 1373 3: progressive frame). 1374 * - __u8 1374 * - __u8 1375 - ``intra_dc_precision`` 1375 - ``intra_dc_precision`` 1376 - Precision of Discrete Cosine transfor 1376 - Precision of Discrete Cosine transform (0: 8 bits precision, 1377 1: 9 bits precision, 2: 10 bits preci 1377 1: 9 bits precision, 2: 10 bits precision, 3: 11 bits precision). 1378 * - __u8 1378 * - __u8 1379 - ``reserved[5]`` 1379 - ``reserved[5]`` 1380 - Applications and drivers must set thi 1380 - Applications and drivers must set this to zero. 1381 1381 1382 .. _mpeg2_picture_flags: 1382 .. _mpeg2_picture_flags: 1383 1383 1384 ``MPEG-2 Picture Flags`` 1384 ``MPEG-2 Picture Flags`` 1385 1385 1386 .. cssclass:: longtable 1386 .. cssclass:: longtable 1387 1387 1388 .. flat-table:: 1388 .. flat-table:: 1389 :header-rows: 0 1389 :header-rows: 0 1390 :stub-columns: 0 1390 :stub-columns: 0 1391 :widths: 1 1 2 1391 :widths: 1 1 2 1392 1392 1393 * - ``V4L2_MPEG2_PIC_FLAG_TOP_FIELD_FIRST 1393 * - ``V4L2_MPEG2_PIC_FLAG_TOP_FIELD_FIRST`` 1394 - 0x00000001 1394 - 0x00000001 1395 - If set and it's an interlaced stream, 1395 - If set and it's an interlaced stream, top field is output first. 1396 * - ``V4L2_MPEG2_PIC_FLAG_FRAME_PRED_DCT` 1396 * - ``V4L2_MPEG2_PIC_FLAG_FRAME_PRED_DCT`` 1397 - 0x00000002 1397 - 0x00000002 1398 - If set only frame-DCT and frame predi 1398 - If set only frame-DCT and frame prediction are used. 1399 * - ``V4L2_MPEG2_PIC_FLAG_CONCEALMENT_MV` 1399 * - ``V4L2_MPEG2_PIC_FLAG_CONCEALMENT_MV`` 1400 - 0x00000004 1400 - 0x00000004 1401 - If set motion vectors are coded for 1401 - If set motion vectors are coded for intra macroblocks. 1402 * - ``V4L2_MPEG2_PIC_FLAG_Q_SCALE_TYPE`` 1402 * - ``V4L2_MPEG2_PIC_FLAG_Q_SCALE_TYPE`` 1403 - 0x00000008 1403 - 0x00000008 1404 - This flag affects the inverse quantiz 1404 - This flag affects the inverse quantization process. 1405 * - ``V4L2_MPEG2_PIC_FLAG_INTRA_VLC`` 1405 * - ``V4L2_MPEG2_PIC_FLAG_INTRA_VLC`` 1406 - 0x00000010 1406 - 0x00000010 1407 - This flag affects the decoding of tra 1407 - This flag affects the decoding of transform coefficient data. 1408 * - ``V4L2_MPEG2_PIC_FLAG_ALT_SCAN`` 1408 * - ``V4L2_MPEG2_PIC_FLAG_ALT_SCAN`` 1409 - 0x00000020 1409 - 0x00000020 1410 - This flag affects the decoding of tra 1410 - This flag affects the decoding of transform coefficient data. 1411 * - ``V4L2_MPEG2_PIC_FLAG_REPEAT_FIRST`` 1411 * - ``V4L2_MPEG2_PIC_FLAG_REPEAT_FIRST`` 1412 - 0x00000040 1412 - 0x00000040 1413 - This flag affects the decoding proces 1413 - This flag affects the decoding process of progressive frames. 1414 * - ``V4L2_MPEG2_PIC_FLAG_PROGRESSIVE`` 1414 * - ``V4L2_MPEG2_PIC_FLAG_PROGRESSIVE`` 1415 - 0x00000080 1415 - 0x00000080 1416 - Indicates whether the current frame i 1416 - Indicates whether the current frame is progressive. 1417 1417 1418 .. raw:: latex 1418 .. raw:: latex 1419 1419 1420 \normalsize 1420 \normalsize 1421 1421 1422 ``V4L2_CID_STATELESS_MPEG2_QUANTISATION (stru 1422 ``V4L2_CID_STATELESS_MPEG2_QUANTISATION (struct)`` 1423 Specifies quantisation matrices, in zigza 1423 Specifies quantisation matrices, in zigzag scanning order, for the 1424 associated MPEG-2 slice data. This contro 1424 associated MPEG-2 slice data. This control is initialized by the kernel 1425 to the matrices default values. If a bits 1425 to the matrices default values. If a bitstream transmits a user-defined 1426 quantisation matrices load, applications 1426 quantisation matrices load, applications are expected to use this control. 1427 Applications are also expected to set the 1427 Applications are also expected to set the control loading the default 1428 values, if the quantisation matrices need 1428 values, if the quantisation matrices need to be reset, for instance on a 1429 sequence header. This process is specifie 1429 sequence header. This process is specified by section 6.3.7. 1430 "Quant matrix extension" of the specifica 1430 "Quant matrix extension" of the specification. 1431 1431 1432 .. c:type:: v4l2_ctrl_mpeg2_quantisation 1432 .. c:type:: v4l2_ctrl_mpeg2_quantisation 1433 1433 1434 .. tabularcolumns:: |p{0.8cm}|p{8.0cm}|p{8.5c 1434 .. tabularcolumns:: |p{0.8cm}|p{8.0cm}|p{8.5cm}| 1435 1435 1436 .. cssclass:: longtable 1436 .. cssclass:: longtable 1437 1437 1438 .. raw:: latex 1438 .. raw:: latex 1439 1439 1440 \small 1440 \small 1441 1441 1442 .. flat-table:: struct v4l2_ctrl_mpeg2_quanti 1442 .. flat-table:: struct v4l2_ctrl_mpeg2_quantisation 1443 :header-rows: 0 1443 :header-rows: 0 1444 :stub-columns: 0 1444 :stub-columns: 0 1445 :widths: 1 1 2 1445 :widths: 1 1 2 1446 1446 1447 * - __u8 1447 * - __u8 1448 - ``intra_quantiser_matrix[64]`` 1448 - ``intra_quantiser_matrix[64]`` 1449 - The quantisation matrix coefficients 1449 - The quantisation matrix coefficients for intra-coded frames, in zigzag 1450 scanning order. It is relevant for bo 1450 scanning order. It is relevant for both luma and chroma components, 1451 although it can be superseded by the 1451 although it can be superseded by the chroma-specific matrix for 1452 non-4:2:0 YUV formats. 1452 non-4:2:0 YUV formats. 1453 * - __u8 1453 * - __u8 1454 - ``non_intra_quantiser_matrix[64]`` 1454 - ``non_intra_quantiser_matrix[64]`` 1455 - The quantisation matrix coefficients 1455 - The quantisation matrix coefficients for non-intra-coded frames, in 1456 zigzag scanning order. It is relevant 1456 zigzag scanning order. It is relevant for both luma and chroma 1457 components, although it can be supers 1457 components, although it can be superseded by the chroma-specific matrix 1458 for non-4:2:0 YUV formats. 1458 for non-4:2:0 YUV formats. 1459 * - __u8 1459 * - __u8 1460 - ``chroma_intra_quantiser_matrix[64]`` 1460 - ``chroma_intra_quantiser_matrix[64]`` 1461 - The quantisation matrix coefficients 1461 - The quantisation matrix coefficients for the chominance component of 1462 intra-coded frames, in zigzag scannin 1462 intra-coded frames, in zigzag scanning order. Only relevant for 1463 non-4:2:0 YUV formats. 1463 non-4:2:0 YUV formats. 1464 * - __u8 1464 * - __u8 1465 - ``chroma_non_intra_quantiser_matrix[6 1465 - ``chroma_non_intra_quantiser_matrix[64]`` 1466 - The quantisation matrix coefficients 1466 - The quantisation matrix coefficients for the chrominance component of 1467 non-intra-coded frames, in zigzag sca 1467 non-intra-coded frames, in zigzag scanning order. Only relevant for 1468 non-4:2:0 YUV formats. 1468 non-4:2:0 YUV formats. 1469 1469 1470 .. raw:: latex 1470 .. raw:: latex 1471 1471 1472 \normalsize 1472 \normalsize 1473 1473 1474 .. _v4l2-codec-stateless-vp9: 1474 .. _v4l2-codec-stateless-vp9: 1475 1475 1476 ``V4L2_CID_STATELESS_VP9_COMPRESSED_HDR (stru 1476 ``V4L2_CID_STATELESS_VP9_COMPRESSED_HDR (struct)`` 1477 Stores VP9 probabilities updates as parse 1477 Stores VP9 probabilities updates as parsed from the current compressed frame 1478 header. A value of zero in an array eleme 1478 header. A value of zero in an array element means no update of the relevant 1479 probability. Motion vector-related update 1479 probability. Motion vector-related updates contain a new value or zero. All 1480 other updates contain values translated w 1480 other updates contain values translated with inv_map_table[] (see 6.3.5 in 1481 :ref:`vp9`). 1481 :ref:`vp9`). 1482 1482 1483 .. c:type:: v4l2_ctrl_vp9_compressed_hdr 1483 .. c:type:: v4l2_ctrl_vp9_compressed_hdr 1484 1484 1485 .. tabularcolumns:: |p{1cm}|p{4.8cm}|p{11.4cm 1485 .. tabularcolumns:: |p{1cm}|p{4.8cm}|p{11.4cm}| 1486 1486 1487 .. cssclass:: longtable 1487 .. cssclass:: longtable 1488 1488 1489 .. flat-table:: struct v4l2_ctrl_vp9_compress 1489 .. flat-table:: struct v4l2_ctrl_vp9_compressed_hdr 1490 :header-rows: 0 1490 :header-rows: 0 1491 :stub-columns: 0 1491 :stub-columns: 0 1492 :widths: 1 1 2 1492 :widths: 1 1 2 1493 1493 1494 * - __u8 1494 * - __u8 1495 - ``tx_mode`` 1495 - ``tx_mode`` 1496 - Specifies the TX mode. See :ref:`TX M 1496 - Specifies the TX mode. See :ref:`TX Mode <vp9_tx_mode>` for more details. 1497 * - __u8 1497 * - __u8 1498 - ``tx8[2][1]`` 1498 - ``tx8[2][1]`` 1499 - TX 8x8 probabilities delta. 1499 - TX 8x8 probabilities delta. 1500 * - __u8 1500 * - __u8 1501 - ``tx16[2][2]`` 1501 - ``tx16[2][2]`` 1502 - TX 16x16 probabilities delta. 1502 - TX 16x16 probabilities delta. 1503 * - __u8 1503 * - __u8 1504 - ``tx32[2][3]`` 1504 - ``tx32[2][3]`` 1505 - TX 32x32 probabilities delta. 1505 - TX 32x32 probabilities delta. 1506 * - __u8 1506 * - __u8 1507 - ``coef[4][2][2][6][6][3]`` 1507 - ``coef[4][2][2][6][6][3]`` 1508 - Coefficient probabilities delta. 1508 - Coefficient probabilities delta. 1509 * - __u8 1509 * - __u8 1510 - ``skip[3]`` 1510 - ``skip[3]`` 1511 - Skip probabilities delta. 1511 - Skip probabilities delta. 1512 * - __u8 1512 * - __u8 1513 - ``inter_mode[7][3]`` 1513 - ``inter_mode[7][3]`` 1514 - Inter prediction mode probabilities d 1514 - Inter prediction mode probabilities delta. 1515 * - __u8 1515 * - __u8 1516 - ``interp_filter[4][2]`` 1516 - ``interp_filter[4][2]`` 1517 - Interpolation filter probabilities de 1517 - Interpolation filter probabilities delta. 1518 * - __u8 1518 * - __u8 1519 - ``is_inter[4]`` 1519 - ``is_inter[4]`` 1520 - Is inter-block probabilities delta. 1520 - Is inter-block probabilities delta. 1521 * - __u8 1521 * - __u8 1522 - ``comp_mode[5]`` 1522 - ``comp_mode[5]`` 1523 - Compound prediction mode probabilitie 1523 - Compound prediction mode probabilities delta. 1524 * - __u8 1524 * - __u8 1525 - ``single_ref[5][2]`` 1525 - ``single_ref[5][2]`` 1526 - Single reference probabilities delta. 1526 - Single reference probabilities delta. 1527 * - __u8 1527 * - __u8 1528 - ``comp_ref[5]`` 1528 - ``comp_ref[5]`` 1529 - Compound reference probabilities delt 1529 - Compound reference probabilities delta. 1530 * - __u8 1530 * - __u8 1531 - ``y_mode[4][9]`` 1531 - ``y_mode[4][9]`` 1532 - Y prediction mode probabilities delta 1532 - Y prediction mode probabilities delta. 1533 * - __u8 1533 * - __u8 1534 - ``uv_mode[10][9]`` 1534 - ``uv_mode[10][9]`` 1535 - UV prediction mode probabilities delt 1535 - UV prediction mode probabilities delta. 1536 * - __u8 1536 * - __u8 1537 - ``partition[16][3]`` 1537 - ``partition[16][3]`` 1538 - Partition probabilities delta. 1538 - Partition probabilities delta. 1539 * - __u8 1539 * - __u8 1540 - ``mv.joint[3]`` 1540 - ``mv.joint[3]`` 1541 - Motion vector joint probabilities del 1541 - Motion vector joint probabilities delta. 1542 * - __u8 1542 * - __u8 1543 - ``mv.sign[2]`` 1543 - ``mv.sign[2]`` 1544 - Motion vector sign probabilities delt 1544 - Motion vector sign probabilities delta. 1545 * - __u8 1545 * - __u8 1546 - ``mv.classes[2][10]`` 1546 - ``mv.classes[2][10]`` 1547 - Motion vector class probabilities del 1547 - Motion vector class probabilities delta. 1548 * - __u8 1548 * - __u8 1549 - ``mv.class0_bit[2]`` 1549 - ``mv.class0_bit[2]`` 1550 - Motion vector class0 bit probabilitie 1550 - Motion vector class0 bit probabilities delta. 1551 * - __u8 1551 * - __u8 1552 - ``mv.bits[2][10]`` 1552 - ``mv.bits[2][10]`` 1553 - Motion vector bits probabilities delt 1553 - Motion vector bits probabilities delta. 1554 * - __u8 1554 * - __u8 1555 - ``mv.class0_fr[2][2][3]`` 1555 - ``mv.class0_fr[2][2][3]`` 1556 - Motion vector class0 fractional bit p 1556 - Motion vector class0 fractional bit probabilities delta. 1557 * - __u8 1557 * - __u8 1558 - ``mv.fr[2][3]`` 1558 - ``mv.fr[2][3]`` 1559 - Motion vector fractional bit probabil 1559 - Motion vector fractional bit probabilities delta. 1560 * - __u8 1560 * - __u8 1561 - ``mv.class0_hp[2]`` 1561 - ``mv.class0_hp[2]`` 1562 - Motion vector class0 high precision f 1562 - Motion vector class0 high precision fractional bit probabilities delta. 1563 * - __u8 1563 * - __u8 1564 - ``mv.hp[2]`` 1564 - ``mv.hp[2]`` 1565 - Motion vector high precision fraction 1565 - Motion vector high precision fractional bit probabilities delta. 1566 1566 1567 .. _vp9_tx_mode: 1567 .. _vp9_tx_mode: 1568 1568 1569 ``TX Mode`` 1569 ``TX Mode`` 1570 1570 1571 .. tabularcolumns:: |p{6.5cm}|p{0.5cm}|p{10.3 1571 .. tabularcolumns:: |p{6.5cm}|p{0.5cm}|p{10.3cm}| 1572 1572 1573 .. flat-table:: 1573 .. flat-table:: 1574 :header-rows: 0 1574 :header-rows: 0 1575 :stub-columns: 0 1575 :stub-columns: 0 1576 :widths: 1 1 2 1576 :widths: 1 1 2 1577 1577 1578 * - ``V4L2_VP9_TX_MODE_ONLY_4X4`` 1578 * - ``V4L2_VP9_TX_MODE_ONLY_4X4`` 1579 - 0 1579 - 0 1580 - Transform size is 4x4. 1580 - Transform size is 4x4. 1581 * - ``V4L2_VP9_TX_MODE_ALLOW_8X8`` 1581 * - ``V4L2_VP9_TX_MODE_ALLOW_8X8`` 1582 - 1 1582 - 1 1583 - Transform size can be up to 8x8. 1583 - Transform size can be up to 8x8. 1584 * - ``V4L2_VP9_TX_MODE_ALLOW_16X16`` 1584 * - ``V4L2_VP9_TX_MODE_ALLOW_16X16`` 1585 - 2 1585 - 2 1586 - Transform size can be up to 16x16. 1586 - Transform size can be up to 16x16. 1587 * - ``V4L2_VP9_TX_MODE_ALLOW_32X32`` 1587 * - ``V4L2_VP9_TX_MODE_ALLOW_32X32`` 1588 - 3 1588 - 3 1589 - transform size can be up to 32x32. 1589 - transform size can be up to 32x32. 1590 * - ``V4L2_VP9_TX_MODE_SELECT`` 1590 * - ``V4L2_VP9_TX_MODE_SELECT`` 1591 - 4 1591 - 4 1592 - Bitstream contains the transform size 1592 - Bitstream contains the transform size for each block. 1593 1593 1594 See section '7.3.1 Tx mode semantics' of the 1594 See section '7.3.1 Tx mode semantics' of the :ref:`vp9` specification for more details. 1595 1595 1596 ``V4L2_CID_STATELESS_VP9_FRAME (struct)`` 1596 ``V4L2_CID_STATELESS_VP9_FRAME (struct)`` 1597 Specifies the frame parameters for the as 1597 Specifies the frame parameters for the associated VP9 frame decode request. 1598 This includes the necessary parameters fo 1598 This includes the necessary parameters for configuring a stateless hardware 1599 decoding pipeline for VP9. The bitstream 1599 decoding pipeline for VP9. The bitstream parameters are defined according 1600 to :ref:`vp9`. 1600 to :ref:`vp9`. 1601 1601 1602 .. c:type:: v4l2_ctrl_vp9_frame 1602 .. c:type:: v4l2_ctrl_vp9_frame 1603 1603 1604 .. raw:: latex 1604 .. raw:: latex 1605 1605 1606 \small 1606 \small 1607 1607 1608 .. tabularcolumns:: |p{4.7cm}|p{5.5cm}|p{7.1c 1608 .. tabularcolumns:: |p{4.7cm}|p{5.5cm}|p{7.1cm}| 1609 1609 1610 .. cssclass:: longtable 1610 .. cssclass:: longtable 1611 1611 1612 .. flat-table:: struct v4l2_ctrl_vp9_frame 1612 .. flat-table:: struct v4l2_ctrl_vp9_frame 1613 :header-rows: 0 1613 :header-rows: 0 1614 :stub-columns: 0 1614 :stub-columns: 0 1615 :widths: 1 1 2 1615 :widths: 1 1 2 1616 1616 1617 * - struct :c:type:`v4l2_vp9_loop_filter` 1617 * - struct :c:type:`v4l2_vp9_loop_filter` 1618 - ``lf`` 1618 - ``lf`` 1619 - Loop filter parameters. See struct :c 1619 - Loop filter parameters. See struct :c:type:`v4l2_vp9_loop_filter` for more details. 1620 * - struct :c:type:`v4l2_vp9_quantization 1620 * - struct :c:type:`v4l2_vp9_quantization` 1621 - ``quant`` 1621 - ``quant`` 1622 - Quantization parameters. See :c:type: 1622 - Quantization parameters. See :c:type:`v4l2_vp9_quantization` for more details. 1623 * - struct :c:type:`v4l2_vp9_segmentation 1623 * - struct :c:type:`v4l2_vp9_segmentation` 1624 - ``seg`` 1624 - ``seg`` 1625 - Segmentation parameters. See :c:type: 1625 - Segmentation parameters. See :c:type:`v4l2_vp9_segmentation` for more details. 1626 * - __u32 1626 * - __u32 1627 - ``flags`` 1627 - ``flags`` 1628 - Combination of V4L2_VP9_FRAME_FLAG_* 1628 - Combination of V4L2_VP9_FRAME_FLAG_* flags. See :ref:`Frame Flags<vp9_frame_flags>`. 1629 * - __u16 1629 * - __u16 1630 - ``compressed_header_size`` 1630 - ``compressed_header_size`` 1631 - Compressed header size in bytes. 1631 - Compressed header size in bytes. 1632 * - __u16 1632 * - __u16 1633 - ``uncompressed_header_size`` 1633 - ``uncompressed_header_size`` 1634 - Uncompressed header size in bytes. 1634 - Uncompressed header size in bytes. 1635 * - __u16 1635 * - __u16 1636 - ``frame_width_minus_1`` 1636 - ``frame_width_minus_1`` 1637 - Add 1 to get the frame width expresse 1637 - Add 1 to get the frame width expressed in pixels. See section 7.2.3 in :ref:`vp9`. 1638 * - __u16 1638 * - __u16 1639 - ``frame_height_minus_1`` 1639 - ``frame_height_minus_1`` 1640 - Add 1 to get the frame height express 1640 - Add 1 to get the frame height expressed in pixels. See section 7.2.3 in :ref:`vp9`. 1641 * - __u16 1641 * - __u16 1642 - ``render_width_minus_1`` 1642 - ``render_width_minus_1`` 1643 - Add 1 to get the expected render widt 1643 - Add 1 to get the expected render width expressed in pixels. This is 1644 not used during the decoding process 1644 not used during the decoding process but might be used by HW scalers to 1645 prepare a frame that's ready for scan 1645 prepare a frame that's ready for scanout. See section 7.2.4 in :ref:`vp9`. 1646 * - __u16 1646 * - __u16 1647 - render_height_minus_1 1647 - render_height_minus_1 1648 - Add 1 to get the expected render heig 1648 - Add 1 to get the expected render height expressed in pixels. This is 1649 not used during the decoding process 1649 not used during the decoding process but might be used by HW scalers to 1650 prepare a frame that's ready for scan 1650 prepare a frame that's ready for scanout. See section 7.2.4 in :ref:`vp9`. 1651 * - __u64 1651 * - __u64 1652 - ``last_frame_ts`` 1652 - ``last_frame_ts`` 1653 - "last" reference buffer timestamp. 1653 - "last" reference buffer timestamp. 1654 The timestamp refers to the ``timesta 1654 The timestamp refers to the ``timestamp`` field in 1655 struct :c:type:`v4l2_buffer`. Use the 1655 struct :c:type:`v4l2_buffer`. Use the :c:func:`v4l2_timeval_to_ns()` 1656 function to convert the struct :c:typ 1656 function to convert the struct :c:type:`timeval` in struct 1657 :c:type:`v4l2_buffer` to a __u64. 1657 :c:type:`v4l2_buffer` to a __u64. 1658 * - __u64 1658 * - __u64 1659 - ``golden_frame_ts`` 1659 - ``golden_frame_ts`` 1660 - "golden" reference buffer timestamp. 1660 - "golden" reference buffer timestamp. 1661 The timestamp refers to the ``timesta 1661 The timestamp refers to the ``timestamp`` field in 1662 struct :c:type:`v4l2_buffer`. Use the 1662 struct :c:type:`v4l2_buffer`. Use the :c:func:`v4l2_timeval_to_ns()` 1663 function to convert the struct :c:typ 1663 function to convert the struct :c:type:`timeval` in struct 1664 :c:type:`v4l2_buffer` to a __u64. 1664 :c:type:`v4l2_buffer` to a __u64. 1665 * - __u64 1665 * - __u64 1666 - ``alt_frame_ts`` 1666 - ``alt_frame_ts`` 1667 - "alt" reference buffer timestamp. 1667 - "alt" reference buffer timestamp. 1668 The timestamp refers to the ``timesta 1668 The timestamp refers to the ``timestamp`` field in 1669 struct :c:type:`v4l2_buffer`. Use the 1669 struct :c:type:`v4l2_buffer`. Use the :c:func:`v4l2_timeval_to_ns()` 1670 function to convert the struct :c:typ 1670 function to convert the struct :c:type:`timeval` in struct 1671 :c:type:`v4l2_buffer` to a __u64. 1671 :c:type:`v4l2_buffer` to a __u64. 1672 * - __u8 1672 * - __u8 1673 - ``ref_frame_sign_bias`` 1673 - ``ref_frame_sign_bias`` 1674 - a bitfield specifying whether the sig 1674 - a bitfield specifying whether the sign bias is set for a given 1675 reference frame. See :ref:`Reference 1675 reference frame. See :ref:`Reference Frame Sign Bias<vp9_ref_frame_sign_bias>` 1676 for more details. 1676 for more details. 1677 * - __u8 1677 * - __u8 1678 - ``reset_frame_context`` 1678 - ``reset_frame_context`` 1679 - specifies whether the frame context s 1679 - specifies whether the frame context should be reset to default values. See 1680 :ref:`Reset Frame Context<vp9_reset_f 1680 :ref:`Reset Frame Context<vp9_reset_frame_context>` for more details. 1681 * - __u8 1681 * - __u8 1682 - ``frame_context_idx`` 1682 - ``frame_context_idx`` 1683 - Frame context that should be used/upd 1683 - Frame context that should be used/updated. 1684 * - __u8 1684 * - __u8 1685 - ``profile`` 1685 - ``profile`` 1686 - VP9 profile. Can be 0, 1, 2 or 3. 1686 - VP9 profile. Can be 0, 1, 2 or 3. 1687 * - __u8 1687 * - __u8 1688 - ``bit_depth`` 1688 - ``bit_depth`` 1689 - Component depth in bits. Can be 8, 10 1689 - Component depth in bits. Can be 8, 10 or 12. Note that not all profiles 1690 support 10 and/or 12 bits depths. 1690 support 10 and/or 12 bits depths. 1691 * - __u8 1691 * - __u8 1692 - ``interpolation_filter`` 1692 - ``interpolation_filter`` 1693 - Specifies the filter selection used f 1693 - Specifies the filter selection used for performing inter prediction. See 1694 :ref:`Interpolation Filter<vp9_interp 1694 :ref:`Interpolation Filter<vp9_interpolation_filter>` for more details. 1695 * - __u8 1695 * - __u8 1696 - ``tile_cols_log2`` 1696 - ``tile_cols_log2`` 1697 - Specifies the base 2 logarithm of the 1697 - Specifies the base 2 logarithm of the width of each tile (where the 1698 width is measured in units of 8x8 blo 1698 width is measured in units of 8x8 blocks). Shall be less than or equal 1699 to 6. 1699 to 6. 1700 * - __u8 1700 * - __u8 1701 - ``tile_rows_log2`` 1701 - ``tile_rows_log2`` 1702 - Specifies the base 2 logarithm of the 1702 - Specifies the base 2 logarithm of the height of each tile (where the 1703 height is measured in units of 8x8 bl 1703 height is measured in units of 8x8 blocks). 1704 * - __u8 1704 * - __u8 1705 - ``reference_mode`` 1705 - ``reference_mode`` 1706 - Specifies the type of inter predictio 1706 - Specifies the type of inter prediction to be used. See 1707 :ref:`Reference Mode<vp9_reference_mo 1707 :ref:`Reference Mode<vp9_reference_mode>` for more details. Note that 1708 this is derived as part of the compre 1708 this is derived as part of the compressed header parsing process and 1709 for this reason should have been part 1709 for this reason should have been part of 1710 :c:type: `v4l2_ctrl_vp9_compressed_hd 1710 :c:type: `v4l2_ctrl_vp9_compressed_hdr` optional control. It is safe to 1711 set this value to zero if the driver 1711 set this value to zero if the driver does not require compressed 1712 headers. 1712 headers. 1713 * - __u8 1713 * - __u8 1714 - ``reserved[7]`` 1714 - ``reserved[7]`` 1715 - Applications and drivers must set thi 1715 - Applications and drivers must set this to zero. 1716 1716 1717 .. raw:: latex 1717 .. raw:: latex 1718 1718 1719 \normalsize 1719 \normalsize 1720 1720 1721 .. _vp9_frame_flags: 1721 .. _vp9_frame_flags: 1722 1722 1723 ``Frame Flags`` 1723 ``Frame Flags`` 1724 1724 1725 .. tabularcolumns:: |p{10.0cm}|p{1.2cm}|p{6.1 1725 .. tabularcolumns:: |p{10.0cm}|p{1.2cm}|p{6.1cm}| 1726 1726 1727 .. flat-table:: 1727 .. flat-table:: 1728 :header-rows: 0 1728 :header-rows: 0 1729 :stub-columns: 0 1729 :stub-columns: 0 1730 :widths: 1 1 2 1730 :widths: 1 1 2 1731 1731 1732 * - ``V4L2_VP9_FRAME_FLAG_KEY_FRAME`` 1732 * - ``V4L2_VP9_FRAME_FLAG_KEY_FRAME`` 1733 - 0x001 1733 - 0x001 1734 - The frame is a key frame. 1734 - The frame is a key frame. 1735 * - ``V4L2_VP9_FRAME_FLAG_SHOW_FRAME`` 1735 * - ``V4L2_VP9_FRAME_FLAG_SHOW_FRAME`` 1736 - 0x002 1736 - 0x002 1737 - The frame should be displayed. 1737 - The frame should be displayed. 1738 * - ``V4L2_VP9_FRAME_FLAG_ERROR_RESILIENT 1738 * - ``V4L2_VP9_FRAME_FLAG_ERROR_RESILIENT`` 1739 - 0x004 1739 - 0x004 1740 - The decoding should be error resilien 1740 - The decoding should be error resilient. 1741 * - ``V4L2_VP9_FRAME_FLAG_INTRA_ONLY`` 1741 * - ``V4L2_VP9_FRAME_FLAG_INTRA_ONLY`` 1742 - 0x008 1742 - 0x008 1743 - The frame does not reference other fr 1743 - The frame does not reference other frames. 1744 * - ``V4L2_VP9_FRAME_FLAG_ALLOW_HIGH_PREC 1744 * - ``V4L2_VP9_FRAME_FLAG_ALLOW_HIGH_PREC_MV`` 1745 - 0x010 1745 - 0x010 1746 - The frame can use high precision moti 1746 - The frame can use high precision motion vectors. 1747 * - ``V4L2_VP9_FRAME_FLAG_REFRESH_FRAME_C 1747 * - ``V4L2_VP9_FRAME_FLAG_REFRESH_FRAME_CTX`` 1748 - 0x020 1748 - 0x020 1749 - Frame context should be updated after 1749 - Frame context should be updated after decoding. 1750 * - ``V4L2_VP9_FRAME_FLAG_PARALLEL_DEC_MO 1750 * - ``V4L2_VP9_FRAME_FLAG_PARALLEL_DEC_MODE`` 1751 - 0x040 1751 - 0x040 1752 - Parallel decoding is used. 1752 - Parallel decoding is used. 1753 * - ``V4L2_VP9_FRAME_FLAG_X_SUBSAMPLING`` 1753 * - ``V4L2_VP9_FRAME_FLAG_X_SUBSAMPLING`` 1754 - 0x080 1754 - 0x080 1755 - Vertical subsampling is enabled. 1755 - Vertical subsampling is enabled. 1756 * - ``V4L2_VP9_FRAME_FLAG_Y_SUBSAMPLING`` 1756 * - ``V4L2_VP9_FRAME_FLAG_Y_SUBSAMPLING`` 1757 - 0x100 1757 - 0x100 1758 - Horizontal subsampling is enabled. 1758 - Horizontal subsampling is enabled. 1759 * - ``V4L2_VP9_FRAME_FLAG_COLOR_RANGE_FUL 1759 * - ``V4L2_VP9_FRAME_FLAG_COLOR_RANGE_FULL_SWING`` 1760 - 0x200 1760 - 0x200 1761 - The full UV range is used. 1761 - The full UV range is used. 1762 1762 1763 .. _vp9_ref_frame_sign_bias: 1763 .. _vp9_ref_frame_sign_bias: 1764 1764 1765 ``Reference Frame Sign Bias`` 1765 ``Reference Frame Sign Bias`` 1766 1766 1767 .. tabularcolumns:: |p{7.0cm}|p{1.2cm}|p{9.1c 1767 .. tabularcolumns:: |p{7.0cm}|p{1.2cm}|p{9.1cm}| 1768 1768 1769 .. flat-table:: 1769 .. flat-table:: 1770 :header-rows: 0 1770 :header-rows: 0 1771 :stub-columns: 0 1771 :stub-columns: 0 1772 :widths: 1 1 2 1772 :widths: 1 1 2 1773 1773 1774 * - ``V4L2_VP9_SIGN_BIAS_LAST`` 1774 * - ``V4L2_VP9_SIGN_BIAS_LAST`` 1775 - 0x1 1775 - 0x1 1776 - Sign bias is set for the last referen 1776 - Sign bias is set for the last reference frame. 1777 * - ``V4L2_VP9_SIGN_BIAS_GOLDEN`` 1777 * - ``V4L2_VP9_SIGN_BIAS_GOLDEN`` 1778 - 0x2 1778 - 0x2 1779 - Sign bias is set for the golden refer 1779 - Sign bias is set for the golden reference frame. 1780 * - ``V4L2_VP9_SIGN_BIAS_ALT`` 1780 * - ``V4L2_VP9_SIGN_BIAS_ALT`` 1781 - 0x2 1781 - 0x2 1782 - Sign bias is set for the alt referenc 1782 - Sign bias is set for the alt reference frame. 1783 1783 1784 .. _vp9_reset_frame_context: 1784 .. _vp9_reset_frame_context: 1785 1785 1786 ``Reset Frame Context`` 1786 ``Reset Frame Context`` 1787 1787 1788 .. tabularcolumns:: |p{7.0cm}|p{1.2cm}|p{9.1c 1788 .. tabularcolumns:: |p{7.0cm}|p{1.2cm}|p{9.1cm}| 1789 1789 1790 .. flat-table:: 1790 .. flat-table:: 1791 :header-rows: 0 1791 :header-rows: 0 1792 :stub-columns: 0 1792 :stub-columns: 0 1793 :widths: 1 1 2 1793 :widths: 1 1 2 1794 1794 1795 * - ``V4L2_VP9_RESET_FRAME_CTX_NONE`` 1795 * - ``V4L2_VP9_RESET_FRAME_CTX_NONE`` 1796 - 0 1796 - 0 1797 - Do not reset any frame context. 1797 - Do not reset any frame context. 1798 * - ``V4L2_VP9_RESET_FRAME_CTX_SPEC`` 1798 * - ``V4L2_VP9_RESET_FRAME_CTX_SPEC`` 1799 - 1 1799 - 1 1800 - Reset the frame context pointed to by 1800 - Reset the frame context pointed to by 1801 :c:type:`v4l2_ctrl_vp9_frame`.frame_c 1801 :c:type:`v4l2_ctrl_vp9_frame`.frame_context_idx. 1802 * - ``V4L2_VP9_RESET_FRAME_CTX_ALL`` 1802 * - ``V4L2_VP9_RESET_FRAME_CTX_ALL`` 1803 - 2 1803 - 2 1804 - Reset all frame contexts. 1804 - Reset all frame contexts. 1805 1805 1806 See section '7.2 Uncompressed header semantic 1806 See section '7.2 Uncompressed header semantics' of the :ref:`vp9` specification 1807 for more details. 1807 for more details. 1808 1808 1809 .. _vp9_interpolation_filter: 1809 .. _vp9_interpolation_filter: 1810 1810 1811 ``Interpolation Filter`` 1811 ``Interpolation Filter`` 1812 1812 1813 .. tabularcolumns:: |p{9.0cm}|p{1.2cm}|p{7.1c 1813 .. tabularcolumns:: |p{9.0cm}|p{1.2cm}|p{7.1cm}| 1814 1814 1815 .. flat-table:: 1815 .. flat-table:: 1816 :header-rows: 0 1816 :header-rows: 0 1817 :stub-columns: 0 1817 :stub-columns: 0 1818 :widths: 1 1 2 1818 :widths: 1 1 2 1819 1819 1820 * - ``V4L2_VP9_INTERP_FILTER_EIGHTTAP`` 1820 * - ``V4L2_VP9_INTERP_FILTER_EIGHTTAP`` 1821 - 0 1821 - 0 1822 - Eight tap filter. 1822 - Eight tap filter. 1823 * - ``V4L2_VP9_INTERP_FILTER_EIGHTTAP_SMO 1823 * - ``V4L2_VP9_INTERP_FILTER_EIGHTTAP_SMOOTH`` 1824 - 1 1824 - 1 1825 - Eight tap smooth filter. 1825 - Eight tap smooth filter. 1826 * - ``V4L2_VP9_INTERP_FILTER_EIGHTTAP_SHA 1826 * - ``V4L2_VP9_INTERP_FILTER_EIGHTTAP_SHARP`` 1827 - 2 1827 - 2 1828 - Eeight tap sharp filter. 1828 - Eeight tap sharp filter. 1829 * - ``V4L2_VP9_INTERP_FILTER_BILINEAR`` 1829 * - ``V4L2_VP9_INTERP_FILTER_BILINEAR`` 1830 - 3 1830 - 3 1831 - Bilinear filter. 1831 - Bilinear filter. 1832 * - ``V4L2_VP9_INTERP_FILTER_SWITCHABLE`` 1832 * - ``V4L2_VP9_INTERP_FILTER_SWITCHABLE`` 1833 - 4 1833 - 4 1834 - Filter selection is signaled at the b 1834 - Filter selection is signaled at the block level. 1835 1835 1836 See section '7.2.7 Interpolation filter seman 1836 See section '7.2.7 Interpolation filter semantics' of the :ref:`vp9` specification 1837 for more details. 1837 for more details. 1838 1838 1839 .. _vp9_reference_mode: 1839 .. _vp9_reference_mode: 1840 1840 1841 ``Reference Mode`` 1841 ``Reference Mode`` 1842 1842 1843 .. tabularcolumns:: |p{9.6cm}|p{0.5cm}|p{7.2c 1843 .. tabularcolumns:: |p{9.6cm}|p{0.5cm}|p{7.2cm}| 1844 1844 1845 .. flat-table:: 1845 .. flat-table:: 1846 :header-rows: 0 1846 :header-rows: 0 1847 :stub-columns: 0 1847 :stub-columns: 0 1848 :widths: 1 1 2 1848 :widths: 1 1 2 1849 1849 1850 * - ``V4L2_VP9_REFERENCE_MODE_SINGLE_REFE 1850 * - ``V4L2_VP9_REFERENCE_MODE_SINGLE_REFERENCE`` 1851 - 0 1851 - 0 1852 - Indicates that all the inter blocks u 1852 - Indicates that all the inter blocks use only a single reference frame 1853 to generate motion compensated predic 1853 to generate motion compensated prediction. 1854 * - ``V4L2_VP9_REFERENCE_MODE_COMPOUND_RE 1854 * - ``V4L2_VP9_REFERENCE_MODE_COMPOUND_REFERENCE`` 1855 - 1 1855 - 1 1856 - Requires all the inter blocks to use 1856 - Requires all the inter blocks to use compound mode. Single reference 1857 frame prediction is not allowed. 1857 frame prediction is not allowed. 1858 * - ``V4L2_VP9_REFERENCE_MODE_SELECT`` 1858 * - ``V4L2_VP9_REFERENCE_MODE_SELECT`` 1859 - 2 1859 - 2 1860 - Allows each individual inter block to 1860 - Allows each individual inter block to select between single and 1861 compound prediction modes. 1861 compound prediction modes. 1862 1862 1863 See section '7.3.6 Frame reference mode seman 1863 See section '7.3.6 Frame reference mode semantics' of the :ref:`vp9` specification for more details. 1864 1864 1865 .. c:type:: v4l2_vp9_segmentation 1865 .. c:type:: v4l2_vp9_segmentation 1866 1866 1867 Encodes the quantization parameters. See sect 1867 Encodes the quantization parameters. See section '7.2.10 Segmentation 1868 params syntax' of the :ref:`vp9` specificatio 1868 params syntax' of the :ref:`vp9` specification for more details. 1869 1869 1870 .. tabularcolumns:: |p{0.8cm}|p{5cm}|p{11.4cm 1870 .. tabularcolumns:: |p{0.8cm}|p{5cm}|p{11.4cm}| 1871 1871 1872 .. cssclass:: longtable 1872 .. cssclass:: longtable 1873 1873 1874 .. flat-table:: struct v4l2_vp9_segmentation 1874 .. flat-table:: struct v4l2_vp9_segmentation 1875 :header-rows: 0 1875 :header-rows: 0 1876 :stub-columns: 0 1876 :stub-columns: 0 1877 :widths: 1 1 2 1877 :widths: 1 1 2 1878 1878 1879 * - __u8 1879 * - __u8 1880 - ``feature_data[8][4]`` 1880 - ``feature_data[8][4]`` 1881 - Data attached to each feature. Data e 1881 - Data attached to each feature. Data entry is only valid if the feature 1882 is enabled. The array shall be indexe 1882 is enabled. The array shall be indexed with segment number as the first dimension 1883 (0..7) and one of V4L2_VP9_SEG_* as t 1883 (0..7) and one of V4L2_VP9_SEG_* as the second dimension. 1884 See :ref:`Segment Feature IDs<vp9_seg 1884 See :ref:`Segment Feature IDs<vp9_segment_feature>`. 1885 * - __u8 1885 * - __u8 1886 - ``feature_enabled[8]`` 1886 - ``feature_enabled[8]`` 1887 - Bitmask defining which features are e 1887 - Bitmask defining which features are enabled in each segment. The value for each 1888 segment is a combination of V4L2_VP9_ 1888 segment is a combination of V4L2_VP9_SEGMENT_FEATURE_ENABLED(id) values where id is 1889 one of V4L2_VP9_SEG_*. See :ref:`Segm 1889 one of V4L2_VP9_SEG_*. See :ref:`Segment Feature IDs<vp9_segment_feature>`. 1890 * - __u8 1890 * - __u8 1891 - ``tree_probs[7]`` 1891 - ``tree_probs[7]`` 1892 - Specifies the probability values to b 1892 - Specifies the probability values to be used when decoding a Segment-ID. 1893 See '5.15 Segmentation map' section o 1893 See '5.15 Segmentation map' section of :ref:`vp9` for more details. 1894 * - __u8 1894 * - __u8 1895 - ``pred_probs[3]`` 1895 - ``pred_probs[3]`` 1896 - Specifies the probability values to b 1896 - Specifies the probability values to be used when decoding a 1897 Predicted-Segment-ID. See '6.4.14 Get 1897 Predicted-Segment-ID. See '6.4.14 Get segment id syntax' 1898 section of :ref:`vp9` for more detail 1898 section of :ref:`vp9` for more details. 1899 * - __u8 1899 * - __u8 1900 - ``flags`` 1900 - ``flags`` 1901 - Combination of V4L2_VP9_SEGMENTATION_ 1901 - Combination of V4L2_VP9_SEGMENTATION_FLAG_* flags. See 1902 :ref:`Segmentation Flags<vp9_segmenta 1902 :ref:`Segmentation Flags<vp9_segmentation_flags>`. 1903 * - __u8 1903 * - __u8 1904 - ``reserved[5]`` 1904 - ``reserved[5]`` 1905 - Applications and drivers must set thi 1905 - Applications and drivers must set this to zero. 1906 1906 1907 .. _vp9_segment_feature: 1907 .. _vp9_segment_feature: 1908 1908 1909 ``Segment feature IDs`` 1909 ``Segment feature IDs`` 1910 1910 1911 .. tabularcolumns:: |p{6.0cm}|p{1cm}|p{10.3cm 1911 .. tabularcolumns:: |p{6.0cm}|p{1cm}|p{10.3cm}| 1912 1912 1913 .. flat-table:: 1913 .. flat-table:: 1914 :header-rows: 0 1914 :header-rows: 0 1915 :stub-columns: 0 1915 :stub-columns: 0 1916 :widths: 1 1 2 1916 :widths: 1 1 2 1917 1917 1918 * - ``V4L2_VP9_SEG_LVL_ALT_Q`` 1918 * - ``V4L2_VP9_SEG_LVL_ALT_Q`` 1919 - 0 1919 - 0 1920 - Quantizer segment feature. 1920 - Quantizer segment feature. 1921 * - ``V4L2_VP9_SEG_LVL_ALT_L`` 1921 * - ``V4L2_VP9_SEG_LVL_ALT_L`` 1922 - 1 1922 - 1 1923 - Loop filter segment feature. 1923 - Loop filter segment feature. 1924 * - ``V4L2_VP9_SEG_LVL_REF_FRAME`` 1924 * - ``V4L2_VP9_SEG_LVL_REF_FRAME`` 1925 - 2 1925 - 2 1926 - Reference frame segment feature. 1926 - Reference frame segment feature. 1927 * - ``V4L2_VP9_SEG_LVL_SKIP`` 1927 * - ``V4L2_VP9_SEG_LVL_SKIP`` 1928 - 3 1928 - 3 1929 - Skip segment feature. 1929 - Skip segment feature. 1930 * - ``V4L2_VP9_SEG_LVL_MAX`` 1930 * - ``V4L2_VP9_SEG_LVL_MAX`` 1931 - 4 1931 - 4 1932 - Number of segment features. 1932 - Number of segment features. 1933 1933 1934 .. _vp9_segmentation_flags: 1934 .. _vp9_segmentation_flags: 1935 1935 1936 ``Segmentation Flags`` 1936 ``Segmentation Flags`` 1937 1937 1938 .. tabularcolumns:: |p{10.6cm}|p{0.8cm}|p{5.9 1938 .. tabularcolumns:: |p{10.6cm}|p{0.8cm}|p{5.9cm}| 1939 1939 1940 .. flat-table:: 1940 .. flat-table:: 1941 :header-rows: 0 1941 :header-rows: 0 1942 :stub-columns: 0 1942 :stub-columns: 0 1943 :widths: 1 1 2 1943 :widths: 1 1 2 1944 1944 1945 * - ``V4L2_VP9_SEGMENTATION_FLAG_ENABLED` 1945 * - ``V4L2_VP9_SEGMENTATION_FLAG_ENABLED`` 1946 - 0x01 1946 - 0x01 1947 - Indicates that this frame makes use o 1947 - Indicates that this frame makes use of the segmentation tool. 1948 * - ``V4L2_VP9_SEGMENTATION_FLAG_UPDATE_M 1948 * - ``V4L2_VP9_SEGMENTATION_FLAG_UPDATE_MAP`` 1949 - 0x02 1949 - 0x02 1950 - Indicates that the segmentation map s 1950 - Indicates that the segmentation map should be updated during the 1951 decoding of this frame. 1951 decoding of this frame. 1952 * - ``V4L2_VP9_SEGMENTATION_FLAG_TEMPORAL 1952 * - ``V4L2_VP9_SEGMENTATION_FLAG_TEMPORAL_UPDATE`` 1953 - 0x04 1953 - 0x04 1954 - Indicates that the updates to the seg 1954 - Indicates that the updates to the segmentation map are coded 1955 relative to the existing segmentation 1955 relative to the existing segmentation map. 1956 * - ``V4L2_VP9_SEGMENTATION_FLAG_UPDATE_D 1956 * - ``V4L2_VP9_SEGMENTATION_FLAG_UPDATE_DATA`` 1957 - 0x08 1957 - 0x08 1958 - Indicates that new parameters are abo 1958 - Indicates that new parameters are about to be specified for each 1959 segment. 1959 segment. 1960 * - ``V4L2_VP9_SEGMENTATION_FLAG_ABS_OR_D 1960 * - ``V4L2_VP9_SEGMENTATION_FLAG_ABS_OR_DELTA_UPDATE`` 1961 - 0x10 1961 - 0x10 1962 - Indicates that the segmentation param 1962 - Indicates that the segmentation parameters represent the actual values 1963 to be used. 1963 to be used. 1964 1964 1965 .. c:type:: v4l2_vp9_quantization 1965 .. c:type:: v4l2_vp9_quantization 1966 1966 1967 Encodes the quantization parameters. See sect 1967 Encodes the quantization parameters. See section '7.2.9 Quantization params 1968 syntax' of the VP9 specification for more det 1968 syntax' of the VP9 specification for more details. 1969 1969 1970 .. tabularcolumns:: |p{0.8cm}|p{4cm}|p{12.4cm 1970 .. tabularcolumns:: |p{0.8cm}|p{4cm}|p{12.4cm}| 1971 1971 1972 .. cssclass:: longtable 1972 .. cssclass:: longtable 1973 1973 1974 .. flat-table:: struct v4l2_vp9_quantization 1974 .. flat-table:: struct v4l2_vp9_quantization 1975 :header-rows: 0 1975 :header-rows: 0 1976 :stub-columns: 0 1976 :stub-columns: 0 1977 :widths: 1 1 2 1977 :widths: 1 1 2 1978 1978 1979 * - __u8 1979 * - __u8 1980 - ``base_q_idx`` 1980 - ``base_q_idx`` 1981 - Indicates the base frame qindex. 1981 - Indicates the base frame qindex. 1982 * - __s8 1982 * - __s8 1983 - ``delta_q_y_dc`` 1983 - ``delta_q_y_dc`` 1984 - Indicates the Y DC quantizer relative 1984 - Indicates the Y DC quantizer relative to base_q_idx. 1985 * - __s8 1985 * - __s8 1986 - ``delta_q_uv_dc`` 1986 - ``delta_q_uv_dc`` 1987 - Indicates the UV DC quantizer relativ 1987 - Indicates the UV DC quantizer relative to base_q_idx. 1988 * - __s8 1988 * - __s8 1989 - ``delta_q_uv_ac`` 1989 - ``delta_q_uv_ac`` 1990 - Indicates the UV AC quantizer relativ 1990 - Indicates the UV AC quantizer relative to base_q_idx. 1991 * - __u8 1991 * - __u8 1992 - ``reserved[4]`` 1992 - ``reserved[4]`` 1993 - Applications and drivers must set thi 1993 - Applications and drivers must set this to zero. 1994 1994 1995 .. c:type:: v4l2_vp9_loop_filter 1995 .. c:type:: v4l2_vp9_loop_filter 1996 1996 1997 This structure contains all loop filter relat 1997 This structure contains all loop filter related parameters. See sections 1998 '7.2.8 Loop filter semantics' of the :ref:`vp 1998 '7.2.8 Loop filter semantics' of the :ref:`vp9` specification for more details. 1999 1999 2000 .. tabularcolumns:: |p{0.8cm}|p{4cm}|p{12.4cm 2000 .. tabularcolumns:: |p{0.8cm}|p{4cm}|p{12.4cm}| 2001 2001 2002 .. cssclass:: longtable 2002 .. cssclass:: longtable 2003 2003 2004 .. flat-table:: struct v4l2_vp9_loop_filter 2004 .. flat-table:: struct v4l2_vp9_loop_filter 2005 :header-rows: 0 2005 :header-rows: 0 2006 :stub-columns: 0 2006 :stub-columns: 0 2007 :widths: 1 1 2 2007 :widths: 1 1 2 2008 2008 2009 * - __s8 2009 * - __s8 2010 - ``ref_deltas[4]`` 2010 - ``ref_deltas[4]`` 2011 - Contains the adjustment needed for th 2011 - Contains the adjustment needed for the filter level based on the chosen 2012 reference frame. 2012 reference frame. 2013 * - __s8 2013 * - __s8 2014 - ``mode_deltas[2]`` 2014 - ``mode_deltas[2]`` 2015 - Contains the adjustment needed for th 2015 - Contains the adjustment needed for the filter level based on the chosen 2016 mode. 2016 mode. 2017 * - __u8 2017 * - __u8 2018 - ``level`` 2018 - ``level`` 2019 - Indicates the loop filter strength. 2019 - Indicates the loop filter strength. 2020 * - __u8 2020 * - __u8 2021 - ``sharpness`` 2021 - ``sharpness`` 2022 - Indicates the sharpness level. 2022 - Indicates the sharpness level. 2023 * - __u8 2023 * - __u8 2024 - ``flags`` 2024 - ``flags`` 2025 - Combination of V4L2_VP9_LOOP_FILTER_F 2025 - Combination of V4L2_VP9_LOOP_FILTER_FLAG_* flags. 2026 See :ref:`Loop Filter Flags <vp9_loop 2026 See :ref:`Loop Filter Flags <vp9_loop_filter_flags>`. 2027 * - __u8 2027 * - __u8 2028 - ``reserved[7]`` 2028 - ``reserved[7]`` 2029 - Applications and drivers must set thi 2029 - Applications and drivers must set this to zero. 2030 2030 2031 2031 2032 .. _vp9_loop_filter_flags: 2032 .. _vp9_loop_filter_flags: 2033 2033 2034 ``Loop Filter Flags`` 2034 ``Loop Filter Flags`` 2035 2035 2036 .. tabularcolumns:: |p{9.6cm}|p{0.5cm}|p{7.2c 2036 .. tabularcolumns:: |p{9.6cm}|p{0.5cm}|p{7.2cm}| 2037 2037 2038 .. flat-table:: 2038 .. flat-table:: 2039 :header-rows: 0 2039 :header-rows: 0 2040 :stub-columns: 0 2040 :stub-columns: 0 2041 :widths: 1 1 2 2041 :widths: 1 1 2 2042 2042 2043 * - ``V4L2_VP9_LOOP_FILTER_FLAG_DELTA_ENA 2043 * - ``V4L2_VP9_LOOP_FILTER_FLAG_DELTA_ENABLED`` 2044 - 0x1 2044 - 0x1 2045 - When set, the filter level depends on 2045 - When set, the filter level depends on the mode and reference frame used 2046 to predict a block. 2046 to predict a block. 2047 * - ``V4L2_VP9_LOOP_FILTER_FLAG_DELTA_UPD 2047 * - ``V4L2_VP9_LOOP_FILTER_FLAG_DELTA_UPDATE`` 2048 - 0x2 2048 - 0x2 2049 - When set, the bitstream contains addi 2049 - When set, the bitstream contains additional syntax elements that 2050 specify which mode and reference fram 2050 specify which mode and reference frame deltas are to be updated. 2051 2051 2052 .. _v4l2-codec-stateless-hevc: 2052 .. _v4l2-codec-stateless-hevc: 2053 2053 2054 ``V4L2_CID_STATELESS_HEVC_SPS (struct)`` 2054 ``V4L2_CID_STATELESS_HEVC_SPS (struct)`` 2055 Specifies the Sequence Parameter Set fiel 2055 Specifies the Sequence Parameter Set fields (as extracted from the 2056 bitstream) for the associated HEVC slice 2056 bitstream) for the associated HEVC slice data. 2057 These bitstream parameters are defined ac 2057 These bitstream parameters are defined according to :ref:`hevc`. 2058 They are described in section 7.4.3.2 "Se 2058 They are described in section 7.4.3.2 "Sequence parameter set RBSP 2059 semantics" of the specification. 2059 semantics" of the specification. 2060 2060 2061 .. c:type:: v4l2_ctrl_hevc_sps 2061 .. c:type:: v4l2_ctrl_hevc_sps 2062 2062 2063 .. raw:: latex 2063 .. raw:: latex 2064 2064 2065 \small 2065 \small 2066 2066 2067 .. tabularcolumns:: |p{1.2cm}|p{9.2cm}|p{6.9c 2067 .. tabularcolumns:: |p{1.2cm}|p{9.2cm}|p{6.9cm}| 2068 2068 2069 .. cssclass:: longtable 2069 .. cssclass:: longtable 2070 2070 2071 .. flat-table:: struct v4l2_ctrl_hevc_sps 2071 .. flat-table:: struct v4l2_ctrl_hevc_sps 2072 :header-rows: 0 2072 :header-rows: 0 2073 :stub-columns: 0 2073 :stub-columns: 0 2074 :widths: 1 1 2 2074 :widths: 1 1 2 2075 2075 2076 * - __u8 2076 * - __u8 2077 - ``video_parameter_set_id`` 2077 - ``video_parameter_set_id`` 2078 - Specifies the value of the vps_video_ 2078 - Specifies the value of the vps_video_parameter_set_id of the active VPS 2079 as described in section "7.4.3.2.1 Ge 2079 as described in section "7.4.3.2.1 General sequence parameter set RBSP semantics" 2080 of H.265 specifications. 2080 of H.265 specifications. 2081 * - __u8 2081 * - __u8 2082 - ``seq_parameter_set_id`` 2082 - ``seq_parameter_set_id`` 2083 - Provides an identifier for the SPS fo 2083 - Provides an identifier for the SPS for reference by other syntax elements 2084 as described in section "7.4.3.2.1 Ge 2084 as described in section "7.4.3.2.1 General sequence parameter set RBSP semantics" 2085 of H.265 specifications. 2085 of H.265 specifications. 2086 * - __u16 2086 * - __u16 2087 - ``pic_width_in_luma_samples`` 2087 - ``pic_width_in_luma_samples`` 2088 - Specifies the width of each decoded p 2088 - Specifies the width of each decoded picture in units of luma samples. 2089 * - __u16 2089 * - __u16 2090 - ``pic_height_in_luma_samples`` 2090 - ``pic_height_in_luma_samples`` 2091 - Specifies the height of each decoded 2091 - Specifies the height of each decoded picture in units of luma samples. 2092 * - __u8 2092 * - __u8 2093 - ``bit_depth_luma_minus8`` 2093 - ``bit_depth_luma_minus8`` 2094 - This value plus 8 specifies the bit d 2094 - This value plus 8 specifies the bit depth of the samples of the luma array. 2095 * - __u8 2095 * - __u8 2096 - ``bit_depth_chroma_minus8`` 2096 - ``bit_depth_chroma_minus8`` 2097 - This value plus 8 specifies the bit d 2097 - This value plus 8 specifies the bit depth of the samples of the chroma arrays. 2098 * - __u8 2098 * - __u8 2099 - ``log2_max_pic_order_cnt_lsb_minus4`` 2099 - ``log2_max_pic_order_cnt_lsb_minus4`` 2100 - Specifies the value of the variable M 2100 - Specifies the value of the variable MaxPicOrderCntLsb. 2101 * - __u8 2101 * - __u8 2102 - ``sps_max_dec_pic_buffering_minus1`` 2102 - ``sps_max_dec_pic_buffering_minus1`` 2103 - This value plus 1 specifies the maxim 2103 - This value plus 1 specifies the maximum required size of the decoded picture buffer for 2104 the coded video sequence (CVS). 2104 the coded video sequence (CVS). 2105 * - __u8 2105 * - __u8 2106 - ``sps_max_num_reorder_pics`` 2106 - ``sps_max_num_reorder_pics`` 2107 - Indicates the maximum allowed number 2107 - Indicates the maximum allowed number of pictures. 2108 * - __u8 2108 * - __u8 2109 - ``sps_max_latency_increase_plus1`` 2109 - ``sps_max_latency_increase_plus1`` 2110 - Used to signal MaxLatencyPictures, wh 2110 - Used to signal MaxLatencyPictures, which indicates the maximum number of 2111 pictures that can precede any picture 2111 pictures that can precede any picture in output order and follow that 2112 picture in decoding order. 2112 picture in decoding order. 2113 * - __u8 2113 * - __u8 2114 - ``log2_min_luma_coding_block_size_min 2114 - ``log2_min_luma_coding_block_size_minus3`` 2115 - This value plus 3 specifies the minim 2115 - This value plus 3 specifies the minimum luma coding block size. 2116 * - __u8 2116 * - __u8 2117 - ``log2_diff_max_min_luma_coding_block 2117 - ``log2_diff_max_min_luma_coding_block_size`` 2118 - Specifies the difference between the 2118 - Specifies the difference between the maximum and minimum luma coding block size. 2119 * - __u8 2119 * - __u8 2120 - ``log2_min_luma_transform_block_size_ 2120 - ``log2_min_luma_transform_block_size_minus2`` 2121 - This value plus 2 specifies the minim 2121 - This value plus 2 specifies the minimum luma transform block size. 2122 * - __u8 2122 * - __u8 2123 - ``log2_diff_max_min_luma_transform_bl 2123 - ``log2_diff_max_min_luma_transform_block_size`` 2124 - Specifies the difference between the 2124 - Specifies the difference between the maximum and minimum luma transform block size. 2125 * - __u8 2125 * - __u8 2126 - ``max_transform_hierarchy_depth_inter 2126 - ``max_transform_hierarchy_depth_inter`` 2127 - Specifies the maximum hierarchy depth 2127 - Specifies the maximum hierarchy depth for transform units of coding units coded 2128 in inter prediction mode. 2128 in inter prediction mode. 2129 * - __u8 2129 * - __u8 2130 - ``max_transform_hierarchy_depth_intra 2130 - ``max_transform_hierarchy_depth_intra`` 2131 - Specifies the maximum hierarchy depth 2131 - Specifies the maximum hierarchy depth for transform units of coding units coded in 2132 intra prediction mode. 2132 intra prediction mode. 2133 * - __u8 2133 * - __u8 2134 - ``pcm_sample_bit_depth_luma_minus1`` 2134 - ``pcm_sample_bit_depth_luma_minus1`` 2135 - This value plus 1 specifies the numbe 2135 - This value plus 1 specifies the number of bits used to represent each of PCM sample values of the 2136 luma component. 2136 luma component. 2137 * - __u8 2137 * - __u8 2138 - ``pcm_sample_bit_depth_chroma_minus1` 2138 - ``pcm_sample_bit_depth_chroma_minus1`` 2139 - Specifies the number of bits used to 2139 - Specifies the number of bits used to represent each of PCM sample values of 2140 the chroma components. 2140 the chroma components. 2141 * - __u8 2141 * - __u8 2142 - ``log2_min_pcm_luma_coding_block_size 2142 - ``log2_min_pcm_luma_coding_block_size_minus3`` 2143 - Plus 3 specifies the minimum size of 2143 - Plus 3 specifies the minimum size of coding blocks. 2144 * - __u8 2144 * - __u8 2145 - ``log2_diff_max_min_pcm_luma_coding_b 2145 - ``log2_diff_max_min_pcm_luma_coding_block_size`` 2146 - Specifies the difference between the 2146 - Specifies the difference between the maximum and minimum size of coding blocks. 2147 * - __u8 2147 * - __u8 2148 - ``num_short_term_ref_pic_sets`` 2148 - ``num_short_term_ref_pic_sets`` 2149 - Specifies the number of st_ref_pic_se 2149 - Specifies the number of st_ref_pic_set() syntax structures included in the SPS. 2150 * - __u8 2150 * - __u8 2151 - ``num_long_term_ref_pics_sps`` 2151 - ``num_long_term_ref_pics_sps`` 2152 - Specifies the number of candidate lon 2152 - Specifies the number of candidate long-term reference pictures that are 2153 specified in the SPS. 2153 specified in the SPS. 2154 * - __u8 2154 * - __u8 2155 - ``chroma_format_idc`` 2155 - ``chroma_format_idc`` 2156 - Specifies the chroma sampling. 2156 - Specifies the chroma sampling. 2157 * - __u8 2157 * - __u8 2158 - ``sps_max_sub_layers_minus1`` 2158 - ``sps_max_sub_layers_minus1`` 2159 - This value plus 1 specifies the maxim 2159 - This value plus 1 specifies the maximum number of temporal sub-layers. 2160 * - __u64 2160 * - __u64 2161 - ``flags`` 2161 - ``flags`` 2162 - See :ref:`Sequence Parameter Set Flag 2162 - See :ref:`Sequence Parameter Set Flags <hevc_sps_flags>` 2163 2163 2164 .. raw:: latex 2164 .. raw:: latex 2165 2165 2166 \normalsize 2166 \normalsize 2167 2167 2168 .. _hevc_sps_flags: 2168 .. _hevc_sps_flags: 2169 2169 2170 ``Sequence Parameter Set Flags`` 2170 ``Sequence Parameter Set Flags`` 2171 2171 2172 .. raw:: latex 2172 .. raw:: latex 2173 2173 2174 \small 2174 \small 2175 2175 2176 .. cssclass:: longtable 2176 .. cssclass:: longtable 2177 2177 2178 .. flat-table:: 2178 .. flat-table:: 2179 :header-rows: 0 2179 :header-rows: 0 2180 :stub-columns: 0 2180 :stub-columns: 0 2181 :widths: 1 1 2 2181 :widths: 1 1 2 2182 2182 2183 * - ``V4L2_HEVC_SPS_FLAG_SEPARATE_COLOUR_ 2183 * - ``V4L2_HEVC_SPS_FLAG_SEPARATE_COLOUR_PLANE`` 2184 - 0x00000001 2184 - 0x00000001 2185 - 2185 - 2186 * - ``V4L2_HEVC_SPS_FLAG_SCALING_LIST_ENA 2186 * - ``V4L2_HEVC_SPS_FLAG_SCALING_LIST_ENABLED`` 2187 - 0x00000002 2187 - 0x00000002 2188 - 2188 - 2189 * - ``V4L2_HEVC_SPS_FLAG_AMP_ENABLED`` 2189 * - ``V4L2_HEVC_SPS_FLAG_AMP_ENABLED`` 2190 - 0x00000004 2190 - 0x00000004 2191 - 2191 - 2192 * - ``V4L2_HEVC_SPS_FLAG_SAMPLE_ADAPTIVE_ 2192 * - ``V4L2_HEVC_SPS_FLAG_SAMPLE_ADAPTIVE_OFFSET`` 2193 - 0x00000008 2193 - 0x00000008 2194 - 2194 - 2195 * - ``V4L2_HEVC_SPS_FLAG_PCM_ENABLED`` 2195 * - ``V4L2_HEVC_SPS_FLAG_PCM_ENABLED`` 2196 - 0x00000010 2196 - 0x00000010 2197 - 2197 - 2198 * - ``V4L2_HEVC_SPS_FLAG_PCM_LOOP_FILTER_ 2198 * - ``V4L2_HEVC_SPS_FLAG_PCM_LOOP_FILTER_DISABLED`` 2199 - 0x00000020 2199 - 0x00000020 2200 - 2200 - 2201 * - ``V4L2_HEVC_SPS_FLAG_LONG_TERM_REF_PI 2201 * - ``V4L2_HEVC_SPS_FLAG_LONG_TERM_REF_PICS_PRESENT`` 2202 - 0x00000040 2202 - 0x00000040 2203 - 2203 - 2204 * - ``V4L2_HEVC_SPS_FLAG_SPS_TEMPORAL_MVP 2204 * - ``V4L2_HEVC_SPS_FLAG_SPS_TEMPORAL_MVP_ENABLED`` 2205 - 0x00000080 2205 - 0x00000080 2206 - 2206 - 2207 * - ``V4L2_HEVC_SPS_FLAG_STRONG_INTRA_SMO 2207 * - ``V4L2_HEVC_SPS_FLAG_STRONG_INTRA_SMOOTHING_ENABLED`` 2208 - 0x00000100 2208 - 0x00000100 2209 - 2209 - 2210 2210 2211 .. raw:: latex 2211 .. raw:: latex 2212 2212 2213 \normalsize 2213 \normalsize 2214 2214 2215 ``V4L2_CID_STATELESS_HEVC_PPS (struct)`` 2215 ``V4L2_CID_STATELESS_HEVC_PPS (struct)`` 2216 Specifies the Picture Parameter Set field 2216 Specifies the Picture Parameter Set fields (as extracted from the 2217 bitstream) for the associated HEVC slice 2217 bitstream) for the associated HEVC slice data. 2218 These bitstream parameters are defined ac 2218 These bitstream parameters are defined according to :ref:`hevc`. 2219 They are described in section 7.4.3.3 "Pi 2219 They are described in section 7.4.3.3 "Picture parameter set RBSP 2220 semantics" of the specification. 2220 semantics" of the specification. 2221 2221 2222 .. c:type:: v4l2_ctrl_hevc_pps 2222 .. c:type:: v4l2_ctrl_hevc_pps 2223 2223 2224 .. tabularcolumns:: |p{1.2cm}|p{8.6cm}|p{7.5c 2224 .. tabularcolumns:: |p{1.2cm}|p{8.6cm}|p{7.5cm}| 2225 2225 2226 .. cssclass:: longtable 2226 .. cssclass:: longtable 2227 2227 2228 .. flat-table:: struct v4l2_ctrl_hevc_pps 2228 .. flat-table:: struct v4l2_ctrl_hevc_pps 2229 :header-rows: 0 2229 :header-rows: 0 2230 :stub-columns: 0 2230 :stub-columns: 0 2231 :widths: 1 1 2 2231 :widths: 1 1 2 2232 2232 2233 * - __u8 2233 * - __u8 2234 - ``pic_parameter_set_id`` 2234 - ``pic_parameter_set_id`` 2235 - Identifies the PPS for reference by o 2235 - Identifies the PPS for reference by other syntax elements. 2236 * - __u8 2236 * - __u8 2237 - ``num_extra_slice_header_bits`` 2237 - ``num_extra_slice_header_bits`` 2238 - Specifies the number of extra slice h 2238 - Specifies the number of extra slice header bits that are present 2239 in the slice header RBSP for coded pi 2239 in the slice header RBSP for coded pictures referring to the PPS. 2240 * - __u8 2240 * - __u8 2241 - ``num_ref_idx_l0_default_active_minus 2241 - ``num_ref_idx_l0_default_active_minus1`` 2242 - This value plus 1 specifies the infer 2242 - This value plus 1 specifies the inferred value of num_ref_idx_l0_active_minus1. 2243 * - __u8 2243 * - __u8 2244 - ``num_ref_idx_l1_default_active_minus 2244 - ``num_ref_idx_l1_default_active_minus1`` 2245 - This value plus 1 specifies the infer 2245 - This value plus 1 specifies the inferred value of num_ref_idx_l1_active_minus1. 2246 * - __s8 2246 * - __s8 2247 - ``init_qp_minus26`` 2247 - ``init_qp_minus26`` 2248 - This value plus 26 specifies the init 2248 - This value plus 26 specifies the initial value of SliceQp Y for each slice 2249 referring to the PPS. 2249 referring to the PPS. 2250 * - __u8 2250 * - __u8 2251 - ``diff_cu_qp_delta_depth`` 2251 - ``diff_cu_qp_delta_depth`` 2252 - Specifies the difference between the 2252 - Specifies the difference between the luma coding tree block size 2253 and the minimum luma coding block siz 2253 and the minimum luma coding block size of coding units that 2254 convey cu_qp_delta_abs and cu_qp_delt 2254 convey cu_qp_delta_abs and cu_qp_delta_sign_flag. 2255 * - __s8 2255 * - __s8 2256 - ``pps_cb_qp_offset`` 2256 - ``pps_cb_qp_offset`` 2257 - Specifies the offsets to the luma qua 2257 - Specifies the offsets to the luma quantization parameter Cb. 2258 * - __s8 2258 * - __s8 2259 - ``pps_cr_qp_offset`` 2259 - ``pps_cr_qp_offset`` 2260 - Specifies the offsets to the luma qua 2260 - Specifies the offsets to the luma quantization parameter Cr. 2261 * - __u8 2261 * - __u8 2262 - ``num_tile_columns_minus1`` 2262 - ``num_tile_columns_minus1`` 2263 - This value plus 1 specifies the numbe 2263 - This value plus 1 specifies the number of tile columns partitioning the picture. 2264 * - __u8 2264 * - __u8 2265 - ``num_tile_rows_minus1`` 2265 - ``num_tile_rows_minus1`` 2266 - This value plus 1 specifies the numbe 2266 - This value plus 1 specifies the number of tile rows partitioning the picture. 2267 * - __u8 2267 * - __u8 2268 - ``column_width_minus1[20]`` 2268 - ``column_width_minus1[20]`` 2269 - This value plus 1 specifies the width 2269 - This value plus 1 specifies the width of the i-th tile column in units of 2270 coding tree blocks. 2270 coding tree blocks. 2271 * - __u8 2271 * - __u8 2272 - ``row_height_minus1[22]`` 2272 - ``row_height_minus1[22]`` 2273 - This value plus 1 specifies the heigh 2273 - This value plus 1 specifies the height of the i-th tile row in units of coding 2274 tree blocks. 2274 tree blocks. 2275 * - __s8 2275 * - __s8 2276 - ``pps_beta_offset_div2`` 2276 - ``pps_beta_offset_div2`` 2277 - Specifies the default deblocking para 2277 - Specifies the default deblocking parameter offsets for beta divided by 2. 2278 * - __s8 2278 * - __s8 2279 - ``pps_tc_offset_div2`` 2279 - ``pps_tc_offset_div2`` 2280 - Specifies the default deblocking para 2280 - Specifies the default deblocking parameter offsets for tC divided by 2. 2281 * - __u8 2281 * - __u8 2282 - ``log2_parallel_merge_level_minus2`` 2282 - ``log2_parallel_merge_level_minus2`` 2283 - This value plus 2 specifies the value 2283 - This value plus 2 specifies the value of the variable Log2ParMrgLevel. 2284 * - __u8 2284 * - __u8 2285 - ``padding[4]`` 2285 - ``padding[4]`` 2286 - Applications and drivers must set thi 2286 - Applications and drivers must set this to zero. 2287 * - __u64 2287 * - __u64 2288 - ``flags`` 2288 - ``flags`` 2289 - See :ref:`Picture Parameter Set Flags 2289 - See :ref:`Picture Parameter Set Flags <hevc_pps_flags>` 2290 2290 2291 .. _hevc_pps_flags: 2291 .. _hevc_pps_flags: 2292 2292 2293 ``Picture Parameter Set Flags`` 2293 ``Picture Parameter Set Flags`` 2294 2294 2295 .. raw:: latex 2295 .. raw:: latex 2296 2296 2297 \small 2297 \small 2298 2298 2299 .. flat-table:: 2299 .. flat-table:: 2300 :header-rows: 0 2300 :header-rows: 0 2301 :stub-columns: 0 2301 :stub-columns: 0 2302 :widths: 1 1 2 2302 :widths: 1 1 2 2303 2303 2304 * - ``V4L2_HEVC_PPS_FLAG_DEPENDENT_SLICE_ 2304 * - ``V4L2_HEVC_PPS_FLAG_DEPENDENT_SLICE_SEGMENT_ENABLED`` 2305 - 0x00000001 2305 - 0x00000001 2306 - 2306 - 2307 * - ``V4L2_HEVC_PPS_FLAG_OUTPUT_FLAG_PRES 2307 * - ``V4L2_HEVC_PPS_FLAG_OUTPUT_FLAG_PRESENT`` 2308 - 0x00000002 2308 - 0x00000002 2309 - 2309 - 2310 * - ``V4L2_HEVC_PPS_FLAG_SIGN_DATA_HIDING 2310 * - ``V4L2_HEVC_PPS_FLAG_SIGN_DATA_HIDING_ENABLED`` 2311 - 0x00000004 2311 - 0x00000004 2312 - 2312 - 2313 * - ``V4L2_HEVC_PPS_FLAG_CABAC_INIT_PRESE 2313 * - ``V4L2_HEVC_PPS_FLAG_CABAC_INIT_PRESENT`` 2314 - 0x00000008 2314 - 0x00000008 2315 - 2315 - 2316 * - ``V4L2_HEVC_PPS_FLAG_CONSTRAINED_INTR 2316 * - ``V4L2_HEVC_PPS_FLAG_CONSTRAINED_INTRA_PRED`` 2317 - 0x00000010 2317 - 0x00000010 2318 - 2318 - 2319 * - ``V4L2_HEVC_PPS_FLAG_TRANSFORM_SKIP_E 2319 * - ``V4L2_HEVC_PPS_FLAG_TRANSFORM_SKIP_ENABLED`` 2320 - 0x00000020 2320 - 0x00000020 2321 - 2321 - 2322 * - ``V4L2_HEVC_PPS_FLAG_CU_QP_DELTA_ENAB 2322 * - ``V4L2_HEVC_PPS_FLAG_CU_QP_DELTA_ENABLED`` 2323 - 0x00000040 2323 - 0x00000040 2324 - 2324 - 2325 * - ``V4L2_HEVC_PPS_FLAG_PPS_SLICE_CHROMA 2325 * - ``V4L2_HEVC_PPS_FLAG_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT`` 2326 - 0x00000080 2326 - 0x00000080 2327 - 2327 - 2328 * - ``V4L2_HEVC_PPS_FLAG_WEIGHTED_PRED`` 2328 * - ``V4L2_HEVC_PPS_FLAG_WEIGHTED_PRED`` 2329 - 0x00000100 2329 - 0x00000100 2330 - 2330 - 2331 * - ``V4L2_HEVC_PPS_FLAG_WEIGHTED_BIPRED` 2331 * - ``V4L2_HEVC_PPS_FLAG_WEIGHTED_BIPRED`` 2332 - 0x00000200 2332 - 0x00000200 2333 - 2333 - 2334 * - ``V4L2_HEVC_PPS_FLAG_TRANSQUANT_BYPAS 2334 * - ``V4L2_HEVC_PPS_FLAG_TRANSQUANT_BYPASS_ENABLED`` 2335 - 0x00000400 2335 - 0x00000400 2336 - 2336 - 2337 * - ``V4L2_HEVC_PPS_FLAG_TILES_ENABLED`` 2337 * - ``V4L2_HEVC_PPS_FLAG_TILES_ENABLED`` 2338 - 0x00000800 2338 - 0x00000800 2339 - 2339 - 2340 * - ``V4L2_HEVC_PPS_FLAG_ENTROPY_CODING_S 2340 * - ``V4L2_HEVC_PPS_FLAG_ENTROPY_CODING_SYNC_ENABLED`` 2341 - 0x00001000 2341 - 0x00001000 2342 - 2342 - 2343 * - ``V4L2_HEVC_PPS_FLAG_LOOP_FILTER_ACRO 2343 * - ``V4L2_HEVC_PPS_FLAG_LOOP_FILTER_ACROSS_TILES_ENABLED`` 2344 - 0x00002000 2344 - 0x00002000 2345 - 2345 - 2346 * - ``V4L2_HEVC_PPS_FLAG_PPS_LOOP_FILTER_ 2346 * - ``V4L2_HEVC_PPS_FLAG_PPS_LOOP_FILTER_ACROSS_SLICES_ENABLED`` 2347 - 0x00004000 2347 - 0x00004000 2348 - 2348 - 2349 * - ``V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTE 2349 * - ``V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTER_OVERRIDE_ENABLED`` 2350 - 0x00008000 2350 - 0x00008000 2351 - 2351 - 2352 * - ``V4L2_HEVC_PPS_FLAG_PPS_DISABLE_DEBL 2352 * - ``V4L2_HEVC_PPS_FLAG_PPS_DISABLE_DEBLOCKING_FILTER`` 2353 - 0x00010000 2353 - 0x00010000 2354 - 2354 - 2355 * - ``V4L2_HEVC_PPS_FLAG_LISTS_MODIFICATI 2355 * - ``V4L2_HEVC_PPS_FLAG_LISTS_MODIFICATION_PRESENT`` 2356 - 0x00020000 2356 - 0x00020000 2357 - 2357 - 2358 * - ``V4L2_HEVC_PPS_FLAG_SLICE_SEGMENT_HE 2358 * - ``V4L2_HEVC_PPS_FLAG_SLICE_SEGMENT_HEADER_EXTENSION_PRESENT`` 2359 - 0x00040000 2359 - 0x00040000 2360 - 2360 - 2361 * - ``V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTE 2361 * - ``V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT`` 2362 - 0x00080000 2362 - 0x00080000 2363 - Specifies the presence of deblocking 2363 - Specifies the presence of deblocking filter control syntax elements in 2364 the PPS 2364 the PPS 2365 * - ``V4L2_HEVC_PPS_FLAG_UNIFORM_SPACING` 2365 * - ``V4L2_HEVC_PPS_FLAG_UNIFORM_SPACING`` 2366 - 0x00100000 2366 - 0x00100000 2367 - Specifies that tile column boundaries 2367 - Specifies that tile column boundaries and likewise tile row boundaries 2368 are distributed uniformly across the 2368 are distributed uniformly across the picture 2369 2369 2370 .. raw:: latex 2370 .. raw:: latex 2371 2371 2372 \normalsize 2372 \normalsize 2373 2373 2374 ``V4L2_CID_STATELESS_HEVC_SLICE_PARAMS (struc 2374 ``V4L2_CID_STATELESS_HEVC_SLICE_PARAMS (struct)`` 2375 Specifies various slice-specific paramete 2375 Specifies various slice-specific parameters, especially from the NAL unit 2376 header, general slice segment header and 2376 header, general slice segment header and weighted prediction parameter 2377 parts of the bitstream. 2377 parts of the bitstream. 2378 These bitstream parameters are defined ac 2378 These bitstream parameters are defined according to :ref:`hevc`. 2379 They are described in section 7.4.7 "Gene 2379 They are described in section 7.4.7 "General slice segment header 2380 semantics" of the specification. 2380 semantics" of the specification. 2381 This control is a dynamically sized 1-dim 2381 This control is a dynamically sized 1-dimensional array, 2382 V4L2_CTRL_FLAG_DYNAMIC_ARRAY flag must be 2382 V4L2_CTRL_FLAG_DYNAMIC_ARRAY flag must be set when using it. 2383 2383 2384 .. c:type:: v4l2_ctrl_hevc_slice_params 2384 .. c:type:: v4l2_ctrl_hevc_slice_params 2385 2385 2386 .. raw:: latex 2386 .. raw:: latex 2387 2387 2388 \scriptsize 2388 \scriptsize 2389 2389 2390 .. tabularcolumns:: |p{5.4cm}|p{6.8cm}|p{5.1c 2390 .. tabularcolumns:: |p{5.4cm}|p{6.8cm}|p{5.1cm}| 2391 2391 2392 .. cssclass:: longtable 2392 .. cssclass:: longtable 2393 2393 2394 .. flat-table:: struct v4l2_ctrl_hevc_slice_p 2394 .. flat-table:: struct v4l2_ctrl_hevc_slice_params 2395 :header-rows: 0 2395 :header-rows: 0 2396 :stub-columns: 0 2396 :stub-columns: 0 2397 :widths: 1 1 2 2397 :widths: 1 1 2 2398 2398 2399 * - __u32 2399 * - __u32 2400 - ``bit_size`` 2400 - ``bit_size`` 2401 - Size (in bits) of the current slice d 2401 - Size (in bits) of the current slice data. 2402 * - __u32 2402 * - __u32 2403 - ``data_byte_offset`` 2403 - ``data_byte_offset`` 2404 - Offset (in byte) to the video data in 2404 - Offset (in byte) to the video data in the current slice data. 2405 * - __u32 2405 * - __u32 2406 - ``num_entry_point_offsets`` 2406 - ``num_entry_point_offsets`` 2407 - Specifies the number of entry point o 2407 - Specifies the number of entry point offset syntax elements in the slice header. 2408 When the driver supports it, the ``V4 2408 When the driver supports it, the ``V4L2_CID_STATELESS_HEVC_ENTRY_POINT_OFFSETS`` 2409 must be set. 2409 must be set. 2410 * - __u8 2410 * - __u8 2411 - ``nal_unit_type`` 2411 - ``nal_unit_type`` 2412 - Specifies the coding type of the slic 2412 - Specifies the coding type of the slice (B, P or I). 2413 * - __u8 2413 * - __u8 2414 - ``nuh_temporal_id_plus1`` 2414 - ``nuh_temporal_id_plus1`` 2415 - Minus 1 specifies a temporal identifi 2415 - Minus 1 specifies a temporal identifier for the NAL unit. 2416 * - __u8 2416 * - __u8 2417 - ``slice_type`` 2417 - ``slice_type`` 2418 - 2418 - 2419 (V4L2_HEVC_SLICE_TYPE_I, V4L2_HEVC_SL 2419 (V4L2_HEVC_SLICE_TYPE_I, V4L2_HEVC_SLICE_TYPE_P or 2420 V4L2_HEVC_SLICE_TYPE_B). 2420 V4L2_HEVC_SLICE_TYPE_B). 2421 * - __u8 2421 * - __u8 2422 - ``colour_plane_id`` 2422 - ``colour_plane_id`` 2423 - Specifies the colour plane associated 2423 - Specifies the colour plane associated with the current slice. 2424 * - __s32 2424 * - __s32 2425 - ``slice_pic_order_cnt`` 2425 - ``slice_pic_order_cnt`` 2426 - Specifies the picture order count. 2426 - Specifies the picture order count. 2427 * - __u8 2427 * - __u8 2428 - ``num_ref_idx_l0_active_minus1`` 2428 - ``num_ref_idx_l0_active_minus1`` 2429 - This value plus 1 specifies the maxim 2429 - This value plus 1 specifies the maximum reference index for reference picture list 0 2430 that may be used to decode the slice. 2430 that may be used to decode the slice. 2431 * - __u8 2431 * - __u8 2432 - ``num_ref_idx_l1_active_minus1`` 2432 - ``num_ref_idx_l1_active_minus1`` 2433 - This value plus 1 specifies the maxim 2433 - This value plus 1 specifies the maximum reference index for reference picture list 1 2434 that may be used to decode the slice. 2434 that may be used to decode the slice. 2435 * - __u8 2435 * - __u8 2436 - ``collocated_ref_idx`` 2436 - ``collocated_ref_idx`` 2437 - Specifies the reference index of the 2437 - Specifies the reference index of the collocated picture used for 2438 temporal motion vector prediction. 2438 temporal motion vector prediction. 2439 * - __u8 2439 * - __u8 2440 - ``five_minus_max_num_merge_cand`` 2440 - ``five_minus_max_num_merge_cand`` 2441 - Specifies the maximum number of mergi 2441 - Specifies the maximum number of merging motion vector prediction 2442 candidates supported in the slice sub 2442 candidates supported in the slice subtracted from 5. 2443 * - __s8 2443 * - __s8 2444 - ``slice_qp_delta`` 2444 - ``slice_qp_delta`` 2445 - Specifies the initial value of QpY to 2445 - Specifies the initial value of QpY to be used for the coding blocks in the slice. 2446 * - __s8 2446 * - __s8 2447 - ``slice_cb_qp_offset`` 2447 - ``slice_cb_qp_offset`` 2448 - Specifies a difference to be added to 2448 - Specifies a difference to be added to the value of pps_cb_qp_offset. 2449 * - __s8 2449 * - __s8 2450 - ``slice_cr_qp_offset`` 2450 - ``slice_cr_qp_offset`` 2451 - Specifies a difference to be added to 2451 - Specifies a difference to be added to the value of pps_cr_qp_offset. 2452 * - __s8 2452 * - __s8 2453 - ``slice_act_y_qp_offset`` 2453 - ``slice_act_y_qp_offset`` 2454 - Specifies the offset to the luma of q 2454 - Specifies the offset to the luma of quantization parameter qP derived in section 8.6.2 2455 * - __s8 2455 * - __s8 2456 - ``slice_act_cb_qp_offset`` 2456 - ``slice_act_cb_qp_offset`` 2457 - Specifies the offset to the cb of qua 2457 - Specifies the offset to the cb of quantization parameter qP derived in section 8.6.2 2458 * - __s8 2458 * - __s8 2459 - ``slice_act_cr_qp_offset`` 2459 - ``slice_act_cr_qp_offset`` 2460 - Specifies the offset to the cr of qua 2460 - Specifies the offset to the cr of quantization parameter qP derived in section 8.6.2 2461 * - __s8 2461 * - __s8 2462 - ``slice_beta_offset_div2`` 2462 - ``slice_beta_offset_div2`` 2463 - Specifies the deblocking parameter of 2463 - Specifies the deblocking parameter offsets for beta divided by 2. 2464 * - __s8 2464 * - __s8 2465 - ``slice_tc_offset_div2`` 2465 - ``slice_tc_offset_div2`` 2466 - Specifies the deblocking parameter of 2466 - Specifies the deblocking parameter offsets for tC divided by 2. 2467 * - __u8 2467 * - __u8 2468 - ``pic_struct`` 2468 - ``pic_struct`` 2469 - Indicates whether a picture should be 2469 - Indicates whether a picture should be displayed as a frame or as one or more fields. 2470 * - __u32 2470 * - __u32 2471 - ``slice_segment_addr`` 2471 - ``slice_segment_addr`` 2472 - Specifies the address of the first co 2472 - Specifies the address of the first coding tree block in the slice segment. 2473 * - __u8 2473 * - __u8 2474 - ``ref_idx_l0[V4L2_HEVC_DPB_ENTRIES_NU 2474 - ``ref_idx_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 2475 - The list of L0 reference elements as 2475 - The list of L0 reference elements as indices in the DPB. 2476 * - __u8 2476 * - __u8 2477 - ``ref_idx_l1[V4L2_HEVC_DPB_ENTRIES_NU 2477 - ``ref_idx_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 2478 - The list of L1 reference elements as 2478 - The list of L1 reference elements as indices in the DPB. 2479 * - __u16 2479 * - __u16 2480 - ``short_term_ref_pic_set_size`` 2480 - ``short_term_ref_pic_set_size`` 2481 - Specifies the size, in bits, of the s 2481 - Specifies the size, in bits, of the short-term reference picture set, described as st_ref_pic_set() 2482 in the specification, included in the 2482 in the specification, included in the slice header or SPS (section 7.3.6.1). 2483 * - __u16 2483 * - __u16 2484 - ``long_term_ref_pic_set_size`` 2484 - ``long_term_ref_pic_set_size`` 2485 - Specifies the size, in bits, of the l 2485 - Specifies the size, in bits, of the long-term reference picture set include in the slice header 2486 or SPS. It is the number of bits in t 2486 or SPS. It is the number of bits in the conditional block if(long_term_ref_pics_present_flag) 2487 in section 7.3.6.1 of the specificati 2487 in section 7.3.6.1 of the specification. 2488 * - __u8 2488 * - __u8 2489 - ``padding`` 2489 - ``padding`` 2490 - Applications and drivers must set thi 2490 - Applications and drivers must set this to zero. 2491 * - struct :c:type:`v4l2_hevc_pred_weight 2491 * - struct :c:type:`v4l2_hevc_pred_weight_table` 2492 - ``pred_weight_table`` 2492 - ``pred_weight_table`` 2493 - The prediction weight coefficients fo 2493 - The prediction weight coefficients for inter-picture prediction. 2494 * - __u64 2494 * - __u64 2495 - ``flags`` 2495 - ``flags`` 2496 - See :ref:`Slice Parameters Flags <hev 2496 - See :ref:`Slice Parameters Flags <hevc_slice_params_flags>` 2497 2497 2498 .. raw:: latex 2498 .. raw:: latex 2499 2499 2500 \normalsize 2500 \normalsize 2501 2501 2502 .. _hevc_slice_params_flags: 2502 .. _hevc_slice_params_flags: 2503 2503 2504 ``Slice Parameters Flags`` 2504 ``Slice Parameters Flags`` 2505 2505 2506 .. raw:: latex 2506 .. raw:: latex 2507 2507 2508 \scriptsize 2508 \scriptsize 2509 2509 2510 .. flat-table:: 2510 .. flat-table:: 2511 :header-rows: 0 2511 :header-rows: 0 2512 :stub-columns: 0 2512 :stub-columns: 0 2513 :widths: 1 1 2 2513 :widths: 1 1 2 2514 2514 2515 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_S 2515 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_LUMA`` 2516 - 0x00000001 2516 - 0x00000001 2517 - 2517 - 2518 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_S 2518 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_CHROMA`` 2519 - 0x00000002 2519 - 0x00000002 2520 - 2520 - 2521 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_T 2521 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_TEMPORAL_MVP_ENABLED`` 2522 - 0x00000004 2522 - 0x00000004 2523 - 2523 - 2524 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_MVD_L1_ 2524 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_MVD_L1_ZERO`` 2525 - 0x00000008 2525 - 0x00000008 2526 - 2526 - 2527 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_CABAC_I 2527 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_CABAC_INIT`` 2528 - 0x00000010 2528 - 0x00000010 2529 - 2529 - 2530 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_COLLOCA 2530 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_COLLOCATED_FROM_L0`` 2531 - 0x00000020 2531 - 0x00000020 2532 - 2532 - 2533 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_USE_INT 2533 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_USE_INTEGER_MV`` 2534 - 0x00000040 2534 - 0x00000040 2535 - 2535 - 2536 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_D 2536 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_DEBLOCKING_FILTER_DISABLED`` 2537 - 0x00000080 2537 - 0x00000080 2538 - 2538 - 2539 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_L 2539 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_LOOP_FILTER_ACROSS_SLICES_ENABLED`` 2540 - 0x00000100 2540 - 0x00000100 2541 - 2541 - 2542 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_DEPENDE 2542 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_DEPENDENT_SLICE_SEGMENT`` 2543 - 0x00000200 2543 - 0x00000200 2544 - 2544 - 2545 2545 2546 .. raw:: latex 2546 .. raw:: latex 2547 2547 2548 \normalsize 2548 \normalsize 2549 2549 2550 ``V4L2_CID_STATELESS_HEVC_ENTRY_POINT_OFFSETS 2550 ``V4L2_CID_STATELESS_HEVC_ENTRY_POINT_OFFSETS (integer)`` 2551 Specifies entry point offsets in bytes. 2551 Specifies entry point offsets in bytes. 2552 This control is a dynamically sized array 2552 This control is a dynamically sized array. The number of entry point 2553 offsets is reported by the ``elems`` fiel 2553 offsets is reported by the ``elems`` field. 2554 This bitstream parameter is defined accor 2554 This bitstream parameter is defined according to :ref:`hevc`. 2555 They are described in section 7.4.7.1 "Ge 2555 They are described in section 7.4.7.1 "General slice segment header 2556 semantics" of the specification. 2556 semantics" of the specification. 2557 When multiple slices are submitted in a r 2557 When multiple slices are submitted in a request, the length of 2558 this array must be the sum of num_entry_p 2558 this array must be the sum of num_entry_point_offsets of all the 2559 slices in the request. 2559 slices in the request. 2560 2560 2561 ``V4L2_CID_STATELESS_HEVC_SCALING_MATRIX (str 2561 ``V4L2_CID_STATELESS_HEVC_SCALING_MATRIX (struct)`` 2562 Specifies the HEVC scaling matrix paramet 2562 Specifies the HEVC scaling matrix parameters used for the scaling process 2563 for transform coefficients. 2563 for transform coefficients. 2564 These matrix and parameters are defined a 2564 These matrix and parameters are defined according to :ref:`hevc`. 2565 They are described in section 7.4.5 "Scal 2565 They are described in section 7.4.5 "Scaling list data semantics" of 2566 the specification. 2566 the specification. 2567 2567 2568 .. c:type:: v4l2_ctrl_hevc_scaling_matrix 2568 .. c:type:: v4l2_ctrl_hevc_scaling_matrix 2569 2569 2570 .. raw:: latex 2570 .. raw:: latex 2571 2571 2572 \scriptsize 2572 \scriptsize 2573 2573 2574 .. tabularcolumns:: |p{5.4cm}|p{6.8cm}|p{5.1c 2574 .. tabularcolumns:: |p{5.4cm}|p{6.8cm}|p{5.1cm}| 2575 2575 2576 .. cssclass:: longtable 2576 .. cssclass:: longtable 2577 2577 2578 .. flat-table:: struct v4l2_ctrl_hevc_scaling 2578 .. flat-table:: struct v4l2_ctrl_hevc_scaling_matrix 2579 :header-rows: 0 2579 :header-rows: 0 2580 :stub-columns: 0 2580 :stub-columns: 0 2581 :widths: 1 1 2 2581 :widths: 1 1 2 2582 2582 2583 * - __u8 2583 * - __u8 2584 - ``scaling_list_4x4[6][16]`` 2584 - ``scaling_list_4x4[6][16]`` 2585 - Scaling list is used for the scaling 2585 - Scaling list is used for the scaling process for transform 2586 coefficients. The values on each scal 2586 coefficients. The values on each scaling list are expected 2587 in raster scan order. 2587 in raster scan order. 2588 * - __u8 2588 * - __u8 2589 - ``scaling_list_8x8[6][64]`` 2589 - ``scaling_list_8x8[6][64]`` 2590 - Scaling list is used for the scaling 2590 - Scaling list is used for the scaling process for transform 2591 coefficients. The values on each scal 2591 coefficients. The values on each scaling list are expected 2592 in raster scan order. 2592 in raster scan order. 2593 * - __u8 2593 * - __u8 2594 - ``scaling_list_16x16[6][64]`` 2594 - ``scaling_list_16x16[6][64]`` 2595 - Scaling list is used for the scaling 2595 - Scaling list is used for the scaling process for transform 2596 coefficients. The values on each scal 2596 coefficients. The values on each scaling list are expected 2597 in raster scan order. 2597 in raster scan order. 2598 * - __u8 2598 * - __u8 2599 - ``scaling_list_32x32[2][64]`` 2599 - ``scaling_list_32x32[2][64]`` 2600 - Scaling list is used for the scaling 2600 - Scaling list is used for the scaling process for transform 2601 coefficients. The values on each scal 2601 coefficients. The values on each scaling list are expected 2602 in raster scan order. 2602 in raster scan order. 2603 * - __u8 2603 * - __u8 2604 - ``scaling_list_dc_coef_16x16[6]`` 2604 - ``scaling_list_dc_coef_16x16[6]`` 2605 - Scaling list is used for the scaling 2605 - Scaling list is used for the scaling process for transform 2606 coefficients. The values on each scal 2606 coefficients. The values on each scaling list are expected 2607 in raster scan order. 2607 in raster scan order. 2608 * - __u8 2608 * - __u8 2609 - ``scaling_list_dc_coef_32x32[2]`` 2609 - ``scaling_list_dc_coef_32x32[2]`` 2610 - Scaling list is used for the scaling 2610 - Scaling list is used for the scaling process for transform 2611 coefficients. The values on each scal 2611 coefficients. The values on each scaling list are expected 2612 in raster scan order. 2612 in raster scan order. 2613 2613 2614 .. raw:: latex 2614 .. raw:: latex 2615 2615 2616 \normalsize 2616 \normalsize 2617 2617 2618 .. c:type:: v4l2_hevc_dpb_entry 2618 .. c:type:: v4l2_hevc_dpb_entry 2619 2619 2620 .. raw:: latex 2620 .. raw:: latex 2621 2621 2622 \small 2622 \small 2623 2623 2624 .. tabularcolumns:: |p{1.0cm}|p{4.2cm}|p{12.1 2624 .. tabularcolumns:: |p{1.0cm}|p{4.2cm}|p{12.1cm}| 2625 2625 2626 .. flat-table:: struct v4l2_hevc_dpb_entry 2626 .. flat-table:: struct v4l2_hevc_dpb_entry 2627 :header-rows: 0 2627 :header-rows: 0 2628 :stub-columns: 0 2628 :stub-columns: 0 2629 :widths: 1 1 2 2629 :widths: 1 1 2 2630 2630 2631 * - __u64 2631 * - __u64 2632 - ``timestamp`` 2632 - ``timestamp`` 2633 - Timestamp of the V4L2 capture buffer 2633 - Timestamp of the V4L2 capture buffer to use as reference, used 2634 with B-coded and P-coded frames. The 2634 with B-coded and P-coded frames. The timestamp refers to the 2635 ``timestamp`` field in struct :c:type 2635 ``timestamp`` field in struct :c:type:`v4l2_buffer`. Use the 2636 :c:func:`v4l2_timeval_to_ns()` functi 2636 :c:func:`v4l2_timeval_to_ns()` function to convert the struct 2637 :c:type:`timeval` in struct :c:type:` 2637 :c:type:`timeval` in struct :c:type:`v4l2_buffer` to a __u64. 2638 * - __u8 2638 * - __u8 2639 - ``flags`` 2639 - ``flags`` 2640 - Long term flag for the reference fram 2640 - Long term flag for the reference frame 2641 (V4L2_HEVC_DPB_ENTRY_LONG_TERM_REFERE 2641 (V4L2_HEVC_DPB_ENTRY_LONG_TERM_REFERENCE). The flag is set as 2642 described in the ITU HEVC specificati 2642 described in the ITU HEVC specification chapter "8.3.2 Decoding 2643 process for reference picture set". 2643 process for reference picture set". 2644 * - __u8 2644 * - __u8 2645 - ``field_pic`` 2645 - ``field_pic`` 2646 - Whether the reference is a field pict 2646 - Whether the reference is a field picture or a frame. 2647 See :ref:`HEVC dpb field pic Flags <h 2647 See :ref:`HEVC dpb field pic Flags <hevc_dpb_field_pic_flags>` 2648 * - __s32 2648 * - __s32 2649 - ``pic_order_cnt_val`` 2649 - ``pic_order_cnt_val`` 2650 - The picture order count of the curren 2650 - The picture order count of the current picture. 2651 * - __u8 2651 * - __u8 2652 - ``padding[2]`` 2652 - ``padding[2]`` 2653 - Applications and drivers must set thi 2653 - Applications and drivers must set this to zero. 2654 2654 2655 .. raw:: latex 2655 .. raw:: latex 2656 2656 2657 \normalsize 2657 \normalsize 2658 2658 2659 .. _hevc_dpb_field_pic_flags: 2659 .. _hevc_dpb_field_pic_flags: 2660 2660 2661 ``HEVC dpb field pic Flags`` 2661 ``HEVC dpb field pic Flags`` 2662 2662 2663 .. raw:: latex 2663 .. raw:: latex 2664 2664 2665 \scriptsize 2665 \scriptsize 2666 2666 2667 .. flat-table:: 2667 .. flat-table:: 2668 :header-rows: 0 2668 :header-rows: 0 2669 :stub-columns: 0 2669 :stub-columns: 0 2670 :widths: 1 1 2 2670 :widths: 1 1 2 2671 2671 2672 * - ``V4L2_HEVC_SEI_PIC_STRUCT_FRAME`` 2672 * - ``V4L2_HEVC_SEI_PIC_STRUCT_FRAME`` 2673 - 0 2673 - 0 2674 - (progressive) Frame 2674 - (progressive) Frame 2675 * - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_FIELD` 2675 * - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_FIELD`` 2676 - 1 2676 - 1 2677 - Top field 2677 - Top field 2678 * - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_FIE 2678 * - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_FIELD`` 2679 - 2 2679 - 2 2680 - Bottom field 2680 - Bottom field 2681 * - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_BOTTOM 2681 * - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_BOTTOM`` 2682 - 3 2682 - 3 2683 - Top field, bottom field, in that orde 2683 - Top field, bottom field, in that order 2684 * - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_TOP 2684 * - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_TOP`` 2685 - 4 2685 - 4 2686 - Bottom field, top field, in that orde 2686 - Bottom field, top field, in that order 2687 * - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_BOTTOM 2687 * - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_BOTTOM_TOP`` 2688 - 5 2688 - 5 2689 - Top field, bottom field, top field re 2689 - Top field, bottom field, top field repeated, in that order 2690 * - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_TOP 2690 * - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM`` 2691 - 6 2691 - 6 2692 - Bottom field, top field, bottom field 2692 - Bottom field, top field, bottom field repeated, in that order 2693 * - ``V4L2_HEVC_SEI_PIC_STRUCT_FRAME_DOUB 2693 * - ``V4L2_HEVC_SEI_PIC_STRUCT_FRAME_DOUBLING`` 2694 - 7 2694 - 7 2695 - Frame doubling 2695 - Frame doubling 2696 * - ``V4L2_HEVC_SEI_PIC_STRUCT_FRAME_TRIP 2696 * - ``V4L2_HEVC_SEI_PIC_STRUCT_FRAME_TRIPLING`` 2697 - 8 2697 - 8 2698 - Frame tripling 2698 - Frame tripling 2699 * - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_PAIRED 2699 * - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_PAIRED_PREVIOUS_BOTTOM`` 2700 - 9 2700 - 9 2701 - Top field paired with previous bottom 2701 - Top field paired with previous bottom field in output order 2702 * - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_PAI 2702 * - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_PAIRED_PREVIOUS_TOP`` 2703 - 10 2703 - 10 2704 - Bottom field paired with previous top 2704 - Bottom field paired with previous top field in output order 2705 * - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_PAIRED 2705 * - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_PAIRED_NEXT_BOTTOM`` 2706 - 11 2706 - 11 2707 - Top field paired with next bottom fie 2707 - Top field paired with next bottom field in output order 2708 * - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_PAI 2708 * - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_PAIRED_NEXT_TOP`` 2709 - 12 2709 - 12 2710 - Bottom field paired with next top fie 2710 - Bottom field paired with next top field in output order 2711 2711 2712 .. c:type:: v4l2_hevc_pred_weight_table 2712 .. c:type:: v4l2_hevc_pred_weight_table 2713 2713 2714 .. raw:: latex 2714 .. raw:: latex 2715 2715 2716 \footnotesize 2716 \footnotesize 2717 2717 2718 .. tabularcolumns:: |p{0.8cm}|p{10.6cm}|p{5.9 2718 .. tabularcolumns:: |p{0.8cm}|p{10.6cm}|p{5.9cm}| 2719 2719 2720 .. flat-table:: struct v4l2_hevc_pred_weight_ 2720 .. flat-table:: struct v4l2_hevc_pred_weight_table 2721 :header-rows: 0 2721 :header-rows: 0 2722 :stub-columns: 0 2722 :stub-columns: 0 2723 :widths: 1 1 2 2723 :widths: 1 1 2 2724 2724 2725 * - __s8 2725 * - __s8 2726 - ``delta_luma_weight_l0[V4L2_HEVC_DPB_ 2726 - ``delta_luma_weight_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 2727 - The difference of the weighting facto 2727 - The difference of the weighting factor applied to the luma 2728 prediction value for list 0. 2728 prediction value for list 0. 2729 * - __s8 2729 * - __s8 2730 - ``luma_offset_l0[V4L2_HEVC_DPB_ENTRIE 2730 - ``luma_offset_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 2731 - The additive offset applied to the lu 2731 - The additive offset applied to the luma prediction value for list 0. 2732 * - __s8 2732 * - __s8 2733 - ``delta_chroma_weight_l0[V4L2_HEVC_DP 2733 - ``delta_chroma_weight_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]`` 2734 - The difference of the weighting facto 2734 - The difference of the weighting factor applied to the chroma 2735 prediction value for list 0. 2735 prediction value for list 0. 2736 * - __s8 2736 * - __s8 2737 - ``chroma_offset_l0[V4L2_HEVC_DPB_ENTR 2737 - ``chroma_offset_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]`` 2738 - The difference of the additive offset 2738 - The difference of the additive offset applied to the chroma 2739 prediction values for list 0. 2739 prediction values for list 0. 2740 * - __s8 2740 * - __s8 2741 - ``delta_luma_weight_l1[V4L2_HEVC_DPB_ 2741 - ``delta_luma_weight_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 2742 - The difference of the weighting facto 2742 - The difference of the weighting factor applied to the luma 2743 prediction value for list 1. 2743 prediction value for list 1. 2744 * - __s8 2744 * - __s8 2745 - ``luma_offset_l1[V4L2_HEVC_DPB_ENTRIE 2745 - ``luma_offset_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 2746 - The additive offset applied to the lu 2746 - The additive offset applied to the luma prediction value for list 1. 2747 * - __s8 2747 * - __s8 2748 - ``delta_chroma_weight_l1[V4L2_HEVC_DP 2748 - ``delta_chroma_weight_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]`` 2749 - The difference of the weighting facto 2749 - The difference of the weighting factor applied to the chroma 2750 prediction value for list 1. 2750 prediction value for list 1. 2751 * - __s8 2751 * - __s8 2752 - ``chroma_offset_l1[V4L2_HEVC_DPB_ENTR 2752 - ``chroma_offset_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]`` 2753 - The difference of the additive offset 2753 - The difference of the additive offset applied to the chroma 2754 prediction values for list 1. 2754 prediction values for list 1. 2755 * - __u8 2755 * - __u8 2756 - ``luma_log2_weight_denom`` 2756 - ``luma_log2_weight_denom`` 2757 - The base 2 logarithm of the denominat 2757 - The base 2 logarithm of the denominator for all luma weighting 2758 factors. 2758 factors. 2759 * - __s8 2759 * - __s8 2760 - ``delta_chroma_log2_weight_denom`` 2760 - ``delta_chroma_log2_weight_denom`` 2761 - The difference of the base 2 logarith 2761 - The difference of the base 2 logarithm of the denominator for 2762 all chroma weighting factors. 2762 all chroma weighting factors. 2763 * - __u8 2763 * - __u8 2764 - ``padding[6]`` 2764 - ``padding[6]`` 2765 - Applications and drivers must set thi 2765 - Applications and drivers must set this to zero. 2766 2766 2767 .. raw:: latex 2767 .. raw:: latex 2768 2768 2769 \normalsize 2769 \normalsize 2770 2770 2771 ``V4L2_CID_STATELESS_HEVC_DECODE_MODE (enum)` 2771 ``V4L2_CID_STATELESS_HEVC_DECODE_MODE (enum)`` 2772 Specifies the decoding mode to use. Curre 2772 Specifies the decoding mode to use. Currently exposes slice-based and 2773 frame-based decoding but new modes might 2773 frame-based decoding but new modes might be added later on. 2774 This control is used as a modifier for V4 2774 This control is used as a modifier for V4L2_PIX_FMT_HEVC_SLICE 2775 pixel format. Applications that support V 2775 pixel format. Applications that support V4L2_PIX_FMT_HEVC_SLICE 2776 are required to set this control in order 2776 are required to set this control in order to specify the decoding mode 2777 that is expected for the buffer. 2777 that is expected for the buffer. 2778 Drivers may expose a single or multiple d 2778 Drivers may expose a single or multiple decoding modes, depending 2779 on what they can support. 2779 on what they can support. 2780 2780 2781 .. c:type:: v4l2_stateless_hevc_decode_mode 2781 .. c:type:: v4l2_stateless_hevc_decode_mode 2782 2782 2783 .. raw:: latex 2783 .. raw:: latex 2784 2784 2785 \small 2785 \small 2786 2786 2787 .. tabularcolumns:: |p{9.4cm}|p{0.6cm}|p{7.3c 2787 .. tabularcolumns:: |p{9.4cm}|p{0.6cm}|p{7.3cm}| 2788 2788 2789 .. flat-table:: 2789 .. flat-table:: 2790 :header-rows: 0 2790 :header-rows: 0 2791 :stub-columns: 0 2791 :stub-columns: 0 2792 :widths: 1 1 2 2792 :widths: 1 1 2 2793 2793 2794 * - ``V4L2_STATELESS_HEVC_DECODE_MODE_SLI 2794 * - ``V4L2_STATELESS_HEVC_DECODE_MODE_SLICE_BASED`` 2795 - 0 2795 - 0 2796 - Decoding is done at the slice granula 2796 - Decoding is done at the slice granularity. 2797 The OUTPUT buffer must contain a sing 2797 The OUTPUT buffer must contain a single slice. 2798 * - ``V4L2_STATELESS_HEVC_DECODE_MODE_FRA 2798 * - ``V4L2_STATELESS_HEVC_DECODE_MODE_FRAME_BASED`` 2799 - 1 2799 - 1 2800 - Decoding is done at the frame granula 2800 - Decoding is done at the frame granularity. 2801 The OUTPUT buffer must contain all sl 2801 The OUTPUT buffer must contain all slices needed to decode the 2802 frame. 2802 frame. 2803 2803 2804 .. raw:: latex 2804 .. raw:: latex 2805 2805 2806 \normalsize 2806 \normalsize 2807 2807 2808 ``V4L2_CID_STATELESS_HEVC_START_CODE (enum)`` 2808 ``V4L2_CID_STATELESS_HEVC_START_CODE (enum)`` 2809 Specifies the HEVC slice start code expec 2809 Specifies the HEVC slice start code expected for each slice. 2810 This control is used as a modifier for V4 2810 This control is used as a modifier for V4L2_PIX_FMT_HEVC_SLICE 2811 pixel format. Applications that support V 2811 pixel format. Applications that support V4L2_PIX_FMT_HEVC_SLICE 2812 are required to set this control in order 2812 are required to set this control in order to specify the start code 2813 that is expected for the buffer. 2813 that is expected for the buffer. 2814 Drivers may expose a single or multiple s 2814 Drivers may expose a single or multiple start codes, depending 2815 on what they can support. 2815 on what they can support. 2816 2816 2817 .. c:type:: v4l2_stateless_hevc_start_code 2817 .. c:type:: v4l2_stateless_hevc_start_code 2818 2818 2819 .. tabularcolumns:: |p{9.2cm}|p{0.6cm}|p{7.5c 2819 .. tabularcolumns:: |p{9.2cm}|p{0.6cm}|p{7.5cm}| 2820 2820 2821 .. flat-table:: 2821 .. flat-table:: 2822 :header-rows: 0 2822 :header-rows: 0 2823 :stub-columns: 0 2823 :stub-columns: 0 2824 :widths: 1 1 2 2824 :widths: 1 1 2 2825 2825 2826 * - ``V4L2_STATELESS_HEVC_START_CODE_NONE 2826 * - ``V4L2_STATELESS_HEVC_START_CODE_NONE`` 2827 - 0 2827 - 0 2828 - Selecting this value specifies that H 2828 - Selecting this value specifies that HEVC slices are passed 2829 to the driver without any start code. 2829 to the driver without any start code. The bitstream data should be 2830 according to :ref:`hevc` 7.3.1.1 Gene 2830 according to :ref:`hevc` 7.3.1.1 General NAL unit syntax, hence 2831 contains emulation prevention bytes w 2831 contains emulation prevention bytes when required. 2832 * - ``V4L2_STATELESS_HEVC_START_CODE_ANNE 2832 * - ``V4L2_STATELESS_HEVC_START_CODE_ANNEX_B`` 2833 - 1 2833 - 1 2834 - Selecting this value specifies that H 2834 - Selecting this value specifies that HEVC slices are expected 2835 to be prefixed by Annex B start codes 2835 to be prefixed by Annex B start codes. According to :ref:`hevc` 2836 valid start codes can be 3-bytes 0x00 2836 valid start codes can be 3-bytes 0x000001 or 4-bytes 0x00000001. 2837 2837 2838 .. raw:: latex 2838 .. raw:: latex 2839 2839 2840 \normalsize 2840 \normalsize 2841 2841 2842 ``V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID ( 2842 ``V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID (integer)`` 2843 Specifies a priority identifier for the N 2843 Specifies a priority identifier for the NAL unit, which will be applied to 2844 the base layer. By default this value is 2844 the base layer. By default this value is set to 0 for the base layer, 2845 and the next layer will have the priority 2845 and the next layer will have the priority ID assigned as 1, 2, 3 and so on. 2846 The video encoder can't decide the priori 2846 The video encoder can't decide the priority id to be applied to a layer, 2847 so this has to come from client. 2847 so this has to come from client. 2848 This is applicable to H264 and valid Rang 2848 This is applicable to H264 and valid Range is from 0 to 63. 2849 Source Rec. ITU-T H.264 (06/2019); G.7.4. 2849 Source Rec. ITU-T H.264 (06/2019); G.7.4.1.1, G.8.8.1. 2850 2850 2851 ``V4L2_CID_MPEG_VIDEO_LTR_COUNT (integer)`` 2851 ``V4L2_CID_MPEG_VIDEO_LTR_COUNT (integer)`` 2852 Specifies the maximum number of Long Term 2852 Specifies the maximum number of Long Term Reference (LTR) frames at any 2853 given time that the encoder can keep. 2853 given time that the encoder can keep. 2854 This is applicable to the H264 and HEVC e 2854 This is applicable to the H264 and HEVC encoders. 2855 2855 2856 ``V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX (intege 2856 ``V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX (integer)`` 2857 After setting this control the frame that 2857 After setting this control the frame that will be queued next 2858 will be marked as a Long Term Reference ( 2858 will be marked as a Long Term Reference (LTR) frame 2859 and given this LTR index which ranges fro 2859 and given this LTR index which ranges from 0 to LTR_COUNT-1. 2860 This is applicable to the H264 and HEVC e 2860 This is applicable to the H264 and HEVC encoders. 2861 Source Rec. ITU-T H.264 (06/2019); Table 2861 Source Rec. ITU-T H.264 (06/2019); Table 7.9 2862 2862 2863 ``V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES (bitmask 2863 ``V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES (bitmask)`` 2864 Specifies the Long Term Reference (LTR) f 2864 Specifies the Long Term Reference (LTR) frame(s) to be used for 2865 encoding the next frame queued after sett 2865 encoding the next frame queued after setting this control. 2866 This provides a bitmask which consists of 2866 This provides a bitmask which consists of bits [0, LTR_COUNT-1]. 2867 This is applicable to the H264 and HEVC e 2867 This is applicable to the H264 and HEVC encoders. 2868 2868 2869 ``V4L2_CID_STATELESS_HEVC_DECODE_PARAMS (stru 2869 ``V4L2_CID_STATELESS_HEVC_DECODE_PARAMS (struct)`` 2870 Specifies various decode parameters, espe 2870 Specifies various decode parameters, especially the references picture order 2871 count (POC) for all the lists (short, lon 2871 count (POC) for all the lists (short, long, before, current, after) and the 2872 number of entries for each of them. 2872 number of entries for each of them. 2873 These parameters are defined according to 2873 These parameters are defined according to :ref:`hevc`. 2874 They are described in section 8.3 "Slice 2874 They are described in section 8.3 "Slice decoding process" of the 2875 specification. 2875 specification. 2876 2876 2877 .. c:type:: v4l2_ctrl_hevc_decode_params 2877 .. c:type:: v4l2_ctrl_hevc_decode_params 2878 2878 2879 .. cssclass:: longtable 2879 .. cssclass:: longtable 2880 2880 2881 .. flat-table:: struct v4l2_ctrl_hevc_decode_ 2881 .. flat-table:: struct v4l2_ctrl_hevc_decode_params 2882 :header-rows: 0 2882 :header-rows: 0 2883 :stub-columns: 0 2883 :stub-columns: 0 2884 :widths: 1 1 2 2884 :widths: 1 1 2 2885 2885 2886 * - __s32 2886 * - __s32 2887 - ``pic_order_cnt_val`` 2887 - ``pic_order_cnt_val`` 2888 - PicOrderCntVal as described in sectio 2888 - PicOrderCntVal as described in section 8.3.1 "Decoding process 2889 for picture order count" of the speci 2889 for picture order count" of the specification. 2890 * - __u16 2890 * - __u16 2891 - ``short_term_ref_pic_set_size`` 2891 - ``short_term_ref_pic_set_size`` 2892 - Specifies the size, in bits, of the s 2892 - Specifies the size, in bits, of the short-term reference picture set, of the first slice 2893 described as st_ref_pic_set() in the 2893 described as st_ref_pic_set() in the specification, included in the slice header 2894 or SPS (section 7.3.6.1). 2894 or SPS (section 7.3.6.1). 2895 * - __u16 2895 * - __u16 2896 - ``long_term_ref_pic_set_size`` 2896 - ``long_term_ref_pic_set_size`` 2897 - Specifies the size, in bits, of the l 2897 - Specifies the size, in bits, of the long-term reference picture set, of the first slice 2898 included in the slice header or SPS. 2898 included in the slice header or SPS. It is the number of bits in the conditional block 2899 if(long_term_ref_pics_present_flag) i 2899 if(long_term_ref_pics_present_flag) in section 7.3.6.1 of the specification. 2900 * - __u8 2900 * - __u8 2901 - ``num_active_dpb_entries`` 2901 - ``num_active_dpb_entries`` 2902 - The number of entries in ``dpb``. 2902 - The number of entries in ``dpb``. 2903 * - __u8 2903 * - __u8 2904 - ``num_poc_st_curr_before`` 2904 - ``num_poc_st_curr_before`` 2905 - The number of reference pictures in t 2905 - The number of reference pictures in the short-term set that come before 2906 the current frame. 2906 the current frame. 2907 * - __u8 2907 * - __u8 2908 - ``num_poc_st_curr_after`` 2908 - ``num_poc_st_curr_after`` 2909 - The number of reference pictures in t 2909 - The number of reference pictures in the short-term set that come after 2910 the current frame. 2910 the current frame. 2911 * - __u8 2911 * - __u8 2912 - ``num_poc_lt_curr`` 2912 - ``num_poc_lt_curr`` 2913 - The number of reference pictures in t 2913 - The number of reference pictures in the long-term set. 2914 * - __u8 2914 * - __u8 2915 - ``poc_st_curr_before[V4L2_HEVC_DPB_EN 2915 - ``poc_st_curr_before[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 2916 - PocStCurrBefore as described in secti 2916 - PocStCurrBefore as described in section 8.3.2 "Decoding process for reference 2917 picture set": provides the index of t 2917 picture set": provides the index of the short term before references in DPB array. 2918 * - __u8 2918 * - __u8 2919 - ``poc_st_curr_after[V4L2_HEVC_DPB_ENT 2919 - ``poc_st_curr_after[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 2920 - PocStCurrAfter as described in sectio 2920 - PocStCurrAfter as described in section 8.3.2 "Decoding process for reference 2921 picture set": provides the index of t 2921 picture set": provides the index of the short term after references in DPB array. 2922 * - __u8 2922 * - __u8 2923 - ``poc_lt_curr[V4L2_HEVC_DPB_ENTRIES_N 2923 - ``poc_lt_curr[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 2924 - PocLtCurr as described in section 8.3 2924 - PocLtCurr as described in section 8.3.2 "Decoding process for reference 2925 picture set": provides the index of t 2925 picture set": provides the index of the long term references in DPB array. 2926 * - __u8 2926 * - __u8 2927 - ``num_delta_pocs_of_ref_rps_idx`` 2927 - ``num_delta_pocs_of_ref_rps_idx`` 2928 - When the short_term_ref_pic_set_sps_f 2928 - When the short_term_ref_pic_set_sps_flag in the slice header is equal to 0, 2929 it is the same as the derived value N 2929 it is the same as the derived value NumDeltaPocs[RefRpsIdx]. It can be used to parse 2930 the RPS data in slice headers instead 2930 the RPS data in slice headers instead of skipping it with @short_term_ref_pic_set_size. 2931 When the value of short_term_ref_pic_ 2931 When the value of short_term_ref_pic_set_sps_flag in the slice header is 2932 equal to 1, num_delta_pocs_of_ref_rps 2932 equal to 1, num_delta_pocs_of_ref_rps_idx shall be set to 0. 2933 * - struct :c:type:`v4l2_hevc_dpb_entry` 2933 * - struct :c:type:`v4l2_hevc_dpb_entry` 2934 - ``dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]` 2934 - ``dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 2935 - The decoded picture buffer, for meta- 2935 - The decoded picture buffer, for meta-data about reference frames. 2936 * - __u64 2936 * - __u64 2937 - ``flags`` 2937 - ``flags`` 2938 - See :ref:`Decode Parameters Flags <he 2938 - See :ref:`Decode Parameters Flags <hevc_decode_params_flags>` 2939 2939 2940 .. _hevc_decode_params_flags: 2940 .. _hevc_decode_params_flags: 2941 2941 2942 ``Decode Parameters Flags`` 2942 ``Decode Parameters Flags`` 2943 2943 2944 .. cssclass:: longtable 2944 .. cssclass:: longtable 2945 2945 2946 .. flat-table:: 2946 .. flat-table:: 2947 :header-rows: 0 2947 :header-rows: 0 2948 :stub-columns: 0 2948 :stub-columns: 0 2949 :widths: 1 1 2 2949 :widths: 1 1 2 2950 2950 2951 * - ``V4L2_HEVC_DECODE_PARAM_FLAG_IRAP_PI 2951 * - ``V4L2_HEVC_DECODE_PARAM_FLAG_IRAP_PIC`` 2952 - 0x00000001 2952 - 0x00000001 2953 - 2953 - 2954 * - ``V4L2_HEVC_DECODE_PARAM_FLAG_IDR_PIC 2954 * - ``V4L2_HEVC_DECODE_PARAM_FLAG_IDR_PIC`` 2955 - 0x00000002 2955 - 0x00000002 2956 - 2956 - 2957 * - ``V4L2_HEVC_DECODE_PARAM_FLAG_NO_OUTP 2957 * - ``V4L2_HEVC_DECODE_PARAM_FLAG_NO_OUTPUT_OF_PRIOR`` 2958 - 0x00000004 2958 - 0x00000004 2959 - 2959 - 2960 2960 2961 .. _v4l2-codec-stateless-av1: 2961 .. _v4l2-codec-stateless-av1: 2962 2962 2963 ``V4L2_CID_STATELESS_AV1_SEQUENCE (struct)`` 2963 ``V4L2_CID_STATELESS_AV1_SEQUENCE (struct)`` 2964 Represents an AV1 Sequence OBU (Open Bits 2964 Represents an AV1 Sequence OBU (Open Bitstream Unit). See section 5.5 2965 "Sequence header OBU syntax" in :ref:`av1 2965 "Sequence header OBU syntax" in :ref:`av1` for more details. 2966 2966 2967 .. c:type:: v4l2_ctrl_av1_sequence 2967 .. c:type:: v4l2_ctrl_av1_sequence 2968 2968 2969 .. cssclass:: longtable 2969 .. cssclass:: longtable 2970 2970 2971 .. tabularcolumns:: |p{5.8cm}|p{4.8cm}|p{6.6c 2971 .. tabularcolumns:: |p{5.8cm}|p{4.8cm}|p{6.6cm}| 2972 2972 2973 .. flat-table:: struct v4l2_ctrl_av1_sequence 2973 .. flat-table:: struct v4l2_ctrl_av1_sequence 2974 :header-rows: 0 2974 :header-rows: 0 2975 :stub-columns: 0 2975 :stub-columns: 0 2976 :widths: 1 1 2 2976 :widths: 1 1 2 2977 2977 2978 * - __u32 2978 * - __u32 2979 - ``flags`` 2979 - ``flags`` 2980 - See :ref:`AV1 Sequence Flags <av1_seq 2980 - See :ref:`AV1 Sequence Flags <av1_sequence_flags>`. 2981 * - __u8 2981 * - __u8 2982 - ``seq_profile`` 2982 - ``seq_profile`` 2983 - Specifies the features that can be us 2983 - Specifies the features that can be used in the coded video sequence. 2984 * - __u8 2984 * - __u8 2985 - ``order_hint_bits`` 2985 - ``order_hint_bits`` 2986 - Specifies the number of bits used for 2986 - Specifies the number of bits used for the order_hint field at each frame. 2987 * - __u8 2987 * - __u8 2988 - ``bit_depth`` 2988 - ``bit_depth`` 2989 - the bit depth to use for the sequence 2989 - the bit depth to use for the sequence as described in section 5.5.2 2990 "Color config syntax" in :ref:`av1` f 2990 "Color config syntax" in :ref:`av1` for more details. 2991 * - __u8 2991 * - __u8 2992 - ``reserved`` 2992 - ``reserved`` 2993 - Applications and drivers must set thi 2993 - Applications and drivers must set this to zero. 2994 * - __u16 2994 * - __u16 2995 - ``max_frame_width_minus_1`` 2995 - ``max_frame_width_minus_1`` 2996 - Specifies the maximum frame width min 2996 - Specifies the maximum frame width minus 1 for the frames represented by 2997 this sequence header. 2997 this sequence header. 2998 * - __u16 2998 * - __u16 2999 - ``max_frame_height_minus_1`` 2999 - ``max_frame_height_minus_1`` 3000 - Specifies the maximum frame height mi 3000 - Specifies the maximum frame height minus 1 for the frames represented by 3001 this sequence header. 3001 this sequence header. 3002 3002 3003 .. _av1_sequence_flags: 3003 .. _av1_sequence_flags: 3004 3004 3005 ``AV1 Sequence Flags`` 3005 ``AV1 Sequence Flags`` 3006 3006 3007 .. cssclass:: longtable 3007 .. cssclass:: longtable 3008 3008 3009 .. flat-table:: 3009 .. flat-table:: 3010 :header-rows: 0 3010 :header-rows: 0 3011 :stub-columns: 0 3011 :stub-columns: 0 3012 :widths: 1 1 2 3012 :widths: 1 1 2 3013 3013 3014 * - ``V4L2_AV1_SEQUENCE_FLAG_STILL_PICTUR 3014 * - ``V4L2_AV1_SEQUENCE_FLAG_STILL_PICTURE`` 3015 - 0x00000001 3015 - 0x00000001 3016 - If set, specifies that the coded vide 3016 - If set, specifies that the coded video sequence contains only one coded 3017 frame. If not set, specifies that the 3017 frame. If not set, specifies that the coded video sequence contains one 3018 or more coded frames. 3018 or more coded frames. 3019 * - ``V4L2_AV1_SEQUENCE_FLAG_USE_128X128_ 3019 * - ``V4L2_AV1_SEQUENCE_FLAG_USE_128X128_SUPERBLOCK`` 3020 - 0x00000002 3020 - 0x00000002 3021 - If set, indicates that superblocks co 3021 - If set, indicates that superblocks contain 128x128 luma samples. 3022 When equal to 0, it indicates that su 3022 When equal to 0, it indicates that superblocks contain 64x64 luma 3023 samples. The number of contained chro 3023 samples. The number of contained chroma samples depends on 3024 subsampling_x and subsampling_y. 3024 subsampling_x and subsampling_y. 3025 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_FILTE 3025 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_FILTER_INTRA`` 3026 - 0x00000004 3026 - 0x00000004 3027 - If set, specifies that the use_filter 3027 - If set, specifies that the use_filter_intra syntax element may be 3028 present. If not set, specifies that t 3028 present. If not set, specifies that the use_filter_intra syntax element 3029 will not be present. 3029 will not be present. 3030 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_INTRA 3030 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_INTRA_EDGE_FILTER`` 3031 - 0x00000008 3031 - 0x00000008 3032 - Specifies whether the intra edge filt 3032 - Specifies whether the intra edge filtering process should be enabled. 3033 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_INTER 3033 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_INTERINTRA_COMPOUND`` 3034 - 0x00000010 3034 - 0x00000010 3035 - If set, specifies that the mode info 3035 - If set, specifies that the mode info for inter blocks may contain the 3036 syntax element interintra. If not set 3036 syntax element interintra. If not set, specifies that the syntax element 3037 interintra will not be present. 3037 interintra will not be present. 3038 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_MASKE 3038 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_MASKED_COMPOUND`` 3039 - 0x00000020 3039 - 0x00000020 3040 - If set, specifies that the mode info 3040 - If set, specifies that the mode info for inter blocks may contain the 3041 syntax element compound_type. If not 3041 syntax element compound_type. If not set, specifies that the syntax 3042 element compound_type will not be pre 3042 element compound_type will not be present. 3043 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_WARPE 3043 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_WARPED_MOTION`` 3044 - 0x00000040 3044 - 0x00000040 3045 - If set, indicates that the allow_warp 3045 - If set, indicates that the allow_warped_motion syntax element may be 3046 present. If not set, indicates that t 3046 present. If not set, indicates that the allow_warped_motion syntax 3047 element will not be present. 3047 element will not be present. 3048 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_DUAL_ 3048 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_DUAL_FILTER`` 3049 - 0x00000080 3049 - 0x00000080 3050 - If set, indicates that the inter pred 3050 - If set, indicates that the inter prediction filter type may be specified 3051 independently in the horizontal and v 3051 independently in the horizontal and vertical directions. If the flag is 3052 equal to 0, only one filter type may 3052 equal to 0, only one filter type may be specified, which is then used in 3053 both directions. 3053 both directions. 3054 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_ORDER 3054 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_ORDER_HINT`` 3055 - 0x00000100 3055 - 0x00000100 3056 - If set, indicates that tools based on 3056 - If set, indicates that tools based on the values of order hints may be 3057 used. If not set, indicates that tool 3057 used. If not set, indicates that tools based on order hints are 3058 disabled. 3058 disabled. 3059 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_JNT_C 3059 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_JNT_COMP`` 3060 - 0x00000200 3060 - 0x00000200 3061 - If set, indicates that the distance w 3061 - If set, indicates that the distance weights process may be used for 3062 inter prediction. 3062 inter prediction. 3063 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_REF_F 3063 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_REF_FRAME_MVS`` 3064 - 0x00000400 3064 - 0x00000400 3065 - If set, indicates that the use_ref_fr 3065 - If set, indicates that the use_ref_frame_mvs syntax element may be 3066 present. If not set, indicates that t 3066 present. If not set, indicates that the use_ref_frame_mvs syntax element 3067 will not be present. 3067 will not be present. 3068 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_SUPER 3068 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_SUPERRES`` 3069 - 0x00000800 3069 - 0x00000800 3070 - If set, specifies that the use_superr 3070 - If set, specifies that the use_superres syntax element will be present 3071 in the uncompressed header. If not se 3071 in the uncompressed header. If not set, specifies that the use_superres 3072 syntax element will not be present (i 3072 syntax element will not be present (instead use_superres will be set to 3073 0 in the uncompressed header without 3073 0 in the uncompressed header without being read). 3074 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_CDEF` 3074 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_CDEF`` 3075 - 0x00001000 3075 - 0x00001000 3076 - If set, specifies that cdef filtering 3076 - If set, specifies that cdef filtering may be enabled. If not set, 3077 specifies that cdef filtering is disa 3077 specifies that cdef filtering is disabled. 3078 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_RESTO 3078 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_RESTORATION`` 3079 - 0x00002000 3079 - 0x00002000 3080 - If set, specifies that loop restorati 3080 - If set, specifies that loop restoration filtering may be enabled. If not 3081 set, specifies that loop restoration 3081 set, specifies that loop restoration filtering is disabled. 3082 * - ``V4L2_AV1_SEQUENCE_FLAG_MONO_CHROME` 3082 * - ``V4L2_AV1_SEQUENCE_FLAG_MONO_CHROME`` 3083 - 0x00004000 3083 - 0x00004000 3084 - If set, indicates that the video does 3084 - If set, indicates that the video does not contain U and V color planes. 3085 If not set, indicates that the video 3085 If not set, indicates that the video contains Y, U, and V color planes. 3086 * - ``V4L2_AV1_SEQUENCE_FLAG_COLOR_RANGE` 3086 * - ``V4L2_AV1_SEQUENCE_FLAG_COLOR_RANGE`` 3087 - 0x00008000 3087 - 0x00008000 3088 - If set, signals full swing representa 3088 - If set, signals full swing representation, i.e. "Full Range 3089 Quantization". If not set, signals st 3089 Quantization". If not set, signals studio swing representation, i.e. 3090 "Limited Range Quantization". 3090 "Limited Range Quantization". 3091 * - ``V4L2_AV1_SEQUENCE_FLAG_SUBSAMPLING_ 3091 * - ``V4L2_AV1_SEQUENCE_FLAG_SUBSAMPLING_X`` 3092 - 0x00010000 3092 - 0x00010000 3093 - Specify the chroma subsampling format 3093 - Specify the chroma subsampling format. 3094 * - ``V4L2_AV1_SEQUENCE_FLAG_SUBSAMPLING_ 3094 * - ``V4L2_AV1_SEQUENCE_FLAG_SUBSAMPLING_Y`` 3095 - 0x00020000 3095 - 0x00020000 3096 - Specify the chroma subsampling format 3096 - Specify the chroma subsampling format. 3097 * - ``V4L2_AV1_SEQUENCE_FLAG_FILM_GRAIN_P 3097 * - ``V4L2_AV1_SEQUENCE_FLAG_FILM_GRAIN_PARAMS_PRESENT`` 3098 - 0x00040000 3098 - 0x00040000 3099 - Specifies whether film grain paramete 3099 - Specifies whether film grain parameters are present in the coded video 3100 sequence. 3100 sequence. 3101 * - ``V4L2_AV1_SEQUENCE_FLAG_SEPARATE_UV_ 3101 * - ``V4L2_AV1_SEQUENCE_FLAG_SEPARATE_UV_DELTA_Q`` 3102 - 0x00080000 3102 - 0x00080000 3103 - If set, indicates that the U and V pl 3103 - If set, indicates that the U and V planes may have separate delta 3104 quantizer values. If not set, indicat 3104 quantizer values. If not set, indicates that the U and V planes will share 3105 the same delta quantizer value. 3105 the same delta quantizer value. 3106 3106 3107 ``V4L2_CID_STATELESS_AV1_TILE_GROUP_ENTRY (st 3107 ``V4L2_CID_STATELESS_AV1_TILE_GROUP_ENTRY (struct)`` 3108 Represents a single AV1 tile inside an AV 3108 Represents a single AV1 tile inside an AV1 Tile Group. Note that MiRowStart, 3109 MiRowEnd, MiColStart and MiColEnd can be 3109 MiRowEnd, MiColStart and MiColEnd can be retrieved from struct 3110 v4l2_av1_tile_info in struct v4l2_ctrl_av 3110 v4l2_av1_tile_info in struct v4l2_ctrl_av1_frame using tile_row and 3111 tile_col. See section 6.10.1 "General til 3111 tile_col. See section 6.10.1 "General tile group OBU semantics" in 3112 :ref:`av1` for more details. 3112 :ref:`av1` for more details. 3113 3113 3114 .. c:type:: v4l2_ctrl_av1_tile_group_entry 3114 .. c:type:: v4l2_ctrl_av1_tile_group_entry 3115 3115 3116 .. cssclass:: longtable 3116 .. cssclass:: longtable 3117 3117 3118 .. tabularcolumns:: |p{5.8cm}|p{4.8cm}|p{6.6c 3118 .. tabularcolumns:: |p{5.8cm}|p{4.8cm}|p{6.6cm}| 3119 3119 3120 .. flat-table:: struct v4l2_ctrl_av1_tile_gro 3120 .. flat-table:: struct v4l2_ctrl_av1_tile_group_entry 3121 :header-rows: 0 3121 :header-rows: 0 3122 :stub-columns: 0 3122 :stub-columns: 0 3123 :widths: 1 1 2 3123 :widths: 1 1 2 3124 3124 3125 * - __u32 3125 * - __u32 3126 - ``tile_offset`` 3126 - ``tile_offset`` 3127 - Offset from the OBU data, i.e. where 3127 - Offset from the OBU data, i.e. where the coded tile data actually starts. 3128 * - __u32 3128 * - __u32 3129 - ``tile_size`` 3129 - ``tile_size`` 3130 - Specifies the size in bytes of the co 3130 - Specifies the size in bytes of the coded tile. Equivalent to "TileSize" 3131 in :ref:`av1`. 3131 in :ref:`av1`. 3132 * - __u32 3132 * - __u32 3133 - ``tile_row`` 3133 - ``tile_row`` 3134 - Specifies the row of the current tile 3134 - Specifies the row of the current tile. Equivalent to "TileRow" in 3135 :ref:`av1`. 3135 :ref:`av1`. 3136 * - __u32 3136 * - __u32 3137 - ``tile_col`` 3137 - ``tile_col`` 3138 - Specifies the column of the current t 3138 - Specifies the column of the current tile. Equivalent to "TileColumn" in 3139 :ref:`av1`. 3139 :ref:`av1`. 3140 3140 3141 .. c:type:: v4l2_av1_warp_model 3141 .. c:type:: v4l2_av1_warp_model 3142 3142 3143 AV1 Warp Model as described in sectio 3143 AV1 Warp Model as described in section 3 "Symbols and abbreviated terms" of 3144 :ref:`av1`. 3144 :ref:`av1`. 3145 3145 3146 .. raw:: latex 3146 .. raw:: latex 3147 3147 3148 \scriptsize 3148 \scriptsize 3149 3149 3150 .. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6c 3150 .. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| 3151 3151 3152 .. flat-table:: 3152 .. flat-table:: 3153 :header-rows: 0 3153 :header-rows: 0 3154 :stub-columns: 0 3154 :stub-columns: 0 3155 :widths: 1 1 2 3155 :widths: 1 1 2 3156 3156 3157 * - ``V4L2_AV1_WARP_MODEL_IDENTITY`` 3157 * - ``V4L2_AV1_WARP_MODEL_IDENTITY`` 3158 - 0 3158 - 0 3159 - Warp model is just an identity transf 3159 - Warp model is just an identity transform. 3160 * - ``V4L2_AV1_WARP_MODEL_TRANSLATION`` 3160 * - ``V4L2_AV1_WARP_MODEL_TRANSLATION`` 3161 - 1 3161 - 1 3162 - Warp model is a pure translation. 3162 - Warp model is a pure translation. 3163 * - ``V4L2_AV1_WARP_MODEL_ROTZOOM`` 3163 * - ``V4L2_AV1_WARP_MODEL_ROTZOOM`` 3164 - 2 3164 - 2 3165 - Warp model is a rotation + symmetric 3165 - Warp model is a rotation + symmetric zoom + translation. 3166 * - ``V4L2_AV1_WARP_MODEL_AFFINE`` 3166 * - ``V4L2_AV1_WARP_MODEL_AFFINE`` 3167 - 3 3167 - 3 3168 - Warp model is a general affine transf 3168 - Warp model is a general affine transform. 3169 3169 3170 .. c:type:: v4l2_av1_reference_frame 3170 .. c:type:: v4l2_av1_reference_frame 3171 3171 3172 AV1 Reference Frames as described in section 3172 AV1 Reference Frames as described in section 6.10.24 "Ref frames semantics" 3173 of :ref:`av1`. 3173 of :ref:`av1`. 3174 3174 3175 .. raw:: latex 3175 .. raw:: latex 3176 3176 3177 \scriptsize 3177 \scriptsize 3178 3178 3179 .. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6c 3179 .. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| 3180 3180 3181 .. flat-table:: 3181 .. flat-table:: 3182 :header-rows: 0 3182 :header-rows: 0 3183 :stub-columns: 0 3183 :stub-columns: 0 3184 :widths: 1 1 2 3184 :widths: 1 1 2 3185 3185 3186 * - ``V4L2_AV1_REF_INTRA_FRAME`` 3186 * - ``V4L2_AV1_REF_INTRA_FRAME`` 3187 - 0 3187 - 0 3188 - Intra Frame Reference. 3188 - Intra Frame Reference. 3189 * - ``V4L2_AV1_REF_LAST_FRAME`` 3189 * - ``V4L2_AV1_REF_LAST_FRAME`` 3190 - 1 3190 - 1 3191 - Last Frame Reference. 3191 - Last Frame Reference. 3192 * - ``V4L2_AV1_REF_LAST2_FRAME`` 3192 * - ``V4L2_AV1_REF_LAST2_FRAME`` 3193 - 2 3193 - 2 3194 - Last2 Frame Reference. 3194 - Last2 Frame Reference. 3195 * - ``V4L2_AV1_REF_LAST3_FRAME`` 3195 * - ``V4L2_AV1_REF_LAST3_FRAME`` 3196 - 3 3196 - 3 3197 - Last3 Frame Reference. 3197 - Last3 Frame Reference. 3198 * - ``V4L2_AV1_REF_GOLDEN_FRAME`` 3198 * - ``V4L2_AV1_REF_GOLDEN_FRAME`` 3199 - 4 3199 - 4 3200 - Golden Frame Reference. 3200 - Golden Frame Reference. 3201 * - ``V4L2_AV1_REF_BWDREF_FRAME`` 3201 * - ``V4L2_AV1_REF_BWDREF_FRAME`` 3202 - 5 3202 - 5 3203 - BWD Frame Reference. 3203 - BWD Frame Reference. 3204 * - ``V4L2_AV1_REF_ALTREF2_FRAME`` 3204 * - ``V4L2_AV1_REF_ALTREF2_FRAME`` 3205 - 6 3205 - 6 3206 - ALTREF2 Frame Reference. 3206 - ALTREF2 Frame Reference. 3207 * - ``V4L2_AV1_REF_ALTREF_FRAME`` 3207 * - ``V4L2_AV1_REF_ALTREF_FRAME`` 3208 - 7 3208 - 7 3209 - ALTREF Frame Reference. 3209 - ALTREF Frame Reference. 3210 3210 3211 .. c:type:: v4l2_av1_global_motion 3211 .. c:type:: v4l2_av1_global_motion 3212 3212 3213 AV1 Global Motion parameters as described in 3213 AV1 Global Motion parameters as described in section 6.8.17 3214 "Global motion params semantics" of :ref:`av1 3214 "Global motion params semantics" of :ref:`av1`. 3215 3215 3216 .. cssclass:: longtable 3216 .. cssclass:: longtable 3217 3217 3218 .. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0 3218 .. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| 3219 3219 3220 .. flat-table:: struct v4l2_av1_global_motion 3220 .. flat-table:: struct v4l2_av1_global_motion 3221 :header-rows: 0 3221 :header-rows: 0 3222 :stub-columns: 0 3222 :stub-columns: 0 3223 :widths: 1 1 2 3223 :widths: 1 1 2 3224 3224 3225 * - __u8 3225 * - __u8 3226 - ``flags[V4L2_AV1_TOTAL_REFS_PER_FRAME 3226 - ``flags[V4L2_AV1_TOTAL_REFS_PER_FRAME]`` 3227 - A bitfield containing the flags per r 3227 - A bitfield containing the flags per reference frame. See 3228 :ref:`AV1 Global Motion Flags <av1_gl 3228 :ref:`AV1 Global Motion Flags <av1_global_motion_flags>` for more 3229 details. 3229 details. 3230 * - enum :c:type:`v4l2_av1_warp_model` 3230 * - enum :c:type:`v4l2_av1_warp_model` 3231 - ``type[V4L2_AV1_TOTAL_REFS_PER_FRAME] 3231 - ``type[V4L2_AV1_TOTAL_REFS_PER_FRAME]`` 3232 - The type of global motion transform u 3232 - The type of global motion transform used. 3233 * - __s32 3233 * - __s32 3234 - ``params[V4L2_AV1_TOTAL_REFS_PER_FRAM 3234 - ``params[V4L2_AV1_TOTAL_REFS_PER_FRAME][6]`` 3235 - This field has the same meaning as "g 3235 - This field has the same meaning as "gm_params" in :ref:`av1`. 3236 * - __u8 3236 * - __u8 3237 - ``invalid`` 3237 - ``invalid`` 3238 - Bitfield indicating whether the globa 3238 - Bitfield indicating whether the global motion params are invalid for a 3239 given reference frame. See section 7. 3239 given reference frame. See section 7.11.3.6 Setup shear process and the 3240 variable "warpValid". Use V4L2_AV1_GL 3240 variable "warpValid". Use V4L2_AV1_GLOBAL_MOTION_IS_INVALID(ref) to 3241 create a suitable mask. 3241 create a suitable mask. 3242 * - __u8 3242 * - __u8 3243 - ``reserved[3]`` 3243 - ``reserved[3]`` 3244 - Applications and drivers must set thi 3244 - Applications and drivers must set this to zero. 3245 3245 3246 .. _av1_global_motion_flags: 3246 .. _av1_global_motion_flags: 3247 3247 3248 ``AV1 Global Motion Flags`` 3248 ``AV1 Global Motion Flags`` 3249 3249 3250 .. cssclass:: longtable 3250 .. cssclass:: longtable 3251 3251 3252 .. flat-table:: 3252 .. flat-table:: 3253 :header-rows: 0 3253 :header-rows: 0 3254 :stub-columns: 0 3254 :stub-columns: 0 3255 :widths: 1 1 2 3255 :widths: 1 1 2 3256 3256 3257 * - ``V4L2_AV1_GLOBAL_MOTION_FLAG_IS_GLOB 3257 * - ``V4L2_AV1_GLOBAL_MOTION_FLAG_IS_GLOBAL`` 3258 - 0x00000001 3258 - 0x00000001 3259 - Specifies whether global motion param 3259 - Specifies whether global motion parameters are present for a particular 3260 reference frame. 3260 reference frame. 3261 * - ``V4L2_AV1_GLOBAL_MOTION_FLAG_IS_ROT_ 3261 * - ``V4L2_AV1_GLOBAL_MOTION_FLAG_IS_ROT_ZOOM`` 3262 - 0x00000002 3262 - 0x00000002 3263 - Specifies whether a particular refere 3263 - Specifies whether a particular reference frame uses rotation and zoom 3264 global motion. 3264 global motion. 3265 * - ``V4L2_AV1_GLOBAL_MOTION_FLAG_IS_TRAN 3265 * - ``V4L2_AV1_GLOBAL_MOTION_FLAG_IS_TRANSLATION`` 3266 - 0x00000004 3266 - 0x00000004 3267 - Specifies whether a particular refere 3267 - Specifies whether a particular reference frame uses translation global 3268 motion 3268 motion 3269 3269 3270 .. c:type:: v4l2_av1_frame_restoration_type 3270 .. c:type:: v4l2_av1_frame_restoration_type 3271 3271 3272 AV1 Frame Restoration Type. 3272 AV1 Frame Restoration Type. 3273 3273 3274 .. raw:: latex 3274 .. raw:: latex 3275 3275 3276 \scriptsize 3276 \scriptsize 3277 3277 3278 .. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6c 3278 .. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| 3279 3279 3280 .. flat-table:: 3280 .. flat-table:: 3281 :header-rows: 0 3281 :header-rows: 0 3282 :stub-columns: 0 3282 :stub-columns: 0 3283 :widths: 1 1 2 3283 :widths: 1 1 2 3284 3284 3285 * - ``V4L2_AV1_FRAME_RESTORE_NONE`` 3285 * - ``V4L2_AV1_FRAME_RESTORE_NONE`` 3286 - 0 3286 - 0 3287 - No filtering is applied. 3287 - No filtering is applied. 3288 * - ``V4L2_AV1_FRAME_RESTORE_WIENER`` 3288 * - ``V4L2_AV1_FRAME_RESTORE_WIENER`` 3289 - 1 3289 - 1 3290 - Wiener filter process is invoked. 3290 - Wiener filter process is invoked. 3291 * - ``V4L2_AV1_FRAME_RESTORE_SGRPROJ`` 3291 * - ``V4L2_AV1_FRAME_RESTORE_SGRPROJ`` 3292 - 2 3292 - 2 3293 - Self guided filter process is invoked 3293 - Self guided filter process is invoked. 3294 * - ``V4L2_AV1_FRAME_RESTORE_SWITCHABLE`` 3294 * - ``V4L2_AV1_FRAME_RESTORE_SWITCHABLE`` 3295 - 3 3295 - 3 3296 - Restoration filter is swichtable. 3296 - Restoration filter is swichtable. 3297 3297 3298 .. c:type:: v4l2_av1_loop_restoration 3298 .. c:type:: v4l2_av1_loop_restoration 3299 3299 3300 AV1 Loop Restoration as described in section 3300 AV1 Loop Restoration as described in section 6.10.15 "Loop restoration params 3301 semantics" of :ref:`av1`. 3301 semantics" of :ref:`av1`. 3302 3302 3303 .. cssclass:: longtable 3303 .. cssclass:: longtable 3304 3304 3305 .. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0 3305 .. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| 3306 3306 3307 .. flat-table:: struct v4l2_av1_loop_restorat 3307 .. flat-table:: struct v4l2_av1_loop_restoration 3308 :header-rows: 0 3308 :header-rows: 0 3309 :stub-columns: 0 3309 :stub-columns: 0 3310 :widths: 1 1 2 3310 :widths: 1 1 2 3311 3311 3312 * - __u8 3312 * - __u8 3313 - ``flags`` 3313 - ``flags`` 3314 - See :ref:`AV1 Loop Restoration Flags 3314 - See :ref:`AV1 Loop Restoration Flags <av1_loop_restoration_flags>`. 3315 * - __u8 3315 * - __u8 3316 - ``lr_unit_shift`` 3316 - ``lr_unit_shift`` 3317 - Specifies if the luma restoration siz 3317 - Specifies if the luma restoration size should be halved. 3318 * - __u8 3318 * - __u8 3319 - ``lr_uv_shift`` 3319 - ``lr_uv_shift`` 3320 - Specifies if the chroma size should b 3320 - Specifies if the chroma size should be half the luma size. 3321 * - __u8 3321 * - __u8 3322 - ``reserved`` 3322 - ``reserved`` 3323 - Applications and drivers must set thi 3323 - Applications and drivers must set this to zero. 3324 * - :c:type:`v4l2_av1_frame_restoration_t 3324 * - :c:type:`v4l2_av1_frame_restoration_type` 3325 - ``frame_restoration_type[V4L2_AV1_NUM 3325 - ``frame_restoration_type[V4L2_AV1_NUM_PLANES_MAX]`` 3326 - Specifies the type of restoration use 3326 - Specifies the type of restoration used for each plane. 3327 * - __u8 3327 * - __u8 3328 - ``loop_restoration_size[V4L2_AV1_MAX_ 3328 - ``loop_restoration_size[V4L2_AV1_MAX_NUM_PLANES]`` 3329 - Specifies the size of loop restoratio 3329 - Specifies the size of loop restoration units in units of samples in the 3330 current plane. 3330 current plane. 3331 3331 3332 .. _av1_loop_restoration_flags: 3332 .. _av1_loop_restoration_flags: 3333 3333 3334 ``AV1 Loop Restoration Flags`` 3334 ``AV1 Loop Restoration Flags`` 3335 3335 3336 .. cssclass:: longtable 3336 .. cssclass:: longtable 3337 3337 3338 .. flat-table:: 3338 .. flat-table:: 3339 :header-rows: 0 3339 :header-rows: 0 3340 :stub-columns: 0 3340 :stub-columns: 0 3341 :widths: 1 1 2 3341 :widths: 1 1 2 3342 3342 3343 * - ``V4L2_AV1_LOOP_RESTORATION_FLAG_USES 3343 * - ``V4L2_AV1_LOOP_RESTORATION_FLAG_USES_LR`` 3344 - 0x00000001 3344 - 0x00000001 3345 - Retains the same meaning as UsesLr in 3345 - Retains the same meaning as UsesLr in :ref:`av1`. 3346 * - ``V4L2_AV1_LOOP_RESTORATION_FLAG_USES 3346 * - ``V4L2_AV1_LOOP_RESTORATION_FLAG_USES_CHROMA_LR`` 3347 - 0x00000002 3347 - 0x00000002 3348 - Retains the same meaning as UsesChrom 3348 - Retains the same meaning as UsesChromaLr in :ref:`av1`. 3349 3349 3350 .. c:type:: v4l2_av1_cdef 3350 .. c:type:: v4l2_av1_cdef 3351 3351 3352 AV1 CDEF params semantics as described in sec 3352 AV1 CDEF params semantics as described in section 6.10.14 "CDEF params 3353 semantics" of :ref:`av1`. 3353 semantics" of :ref:`av1`. 3354 3354 3355 .. cssclass:: longtable 3355 .. cssclass:: longtable 3356 3356 3357 .. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0 3357 .. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| 3358 3358 3359 .. flat-table:: struct v4l2_av1_cdef 3359 .. flat-table:: struct v4l2_av1_cdef 3360 :header-rows: 0 3360 :header-rows: 0 3361 :stub-columns: 0 3361 :stub-columns: 0 3362 :widths: 1 1 2 3362 :widths: 1 1 2 3363 3363 3364 * - __u8 3364 * - __u8 3365 - ``damping_minus_3`` 3365 - ``damping_minus_3`` 3366 - Controls the amount of damping in the 3366 - Controls the amount of damping in the deringing filter. 3367 * - __u8 3367 * - __u8 3368 - ``bits`` 3368 - ``bits`` 3369 - Specifies the number of bits needed t 3369 - Specifies the number of bits needed to specify which CDEF filter to 3370 apply. 3370 apply. 3371 * - __u8 3371 * - __u8 3372 - ``y_pri_strength[V4L2_AV1_CDEF_MAX]`` 3372 - ``y_pri_strength[V4L2_AV1_CDEF_MAX]`` 3373 - Specifies the strength of the primar 3373 - Specifies the strength of the primary filter. 3374 * - __u8 3374 * - __u8 3375 - ``y_sec_strength[V4L2_AV1_CDEF_MAX]`` 3375 - ``y_sec_strength[V4L2_AV1_CDEF_MAX]`` 3376 - Specifies the strength of the second 3376 - Specifies the strength of the secondary filter. 3377 * - __u8 3377 * - __u8 3378 - ``uv_pri_strength[V4L2_AV1_CDEF_MAX]` 3378 - ``uv_pri_strength[V4L2_AV1_CDEF_MAX]`` 3379 - Specifies the strength of the primar 3379 - Specifies the strength of the primary filter. 3380 * - __u8 3380 * - __u8 3381 - ``uv_sec_strength[V4L2_AV1_CDEF_MAX]` 3381 - ``uv_sec_strength[V4L2_AV1_CDEF_MAX]`` 3382 - Specifies the strength of the second 3382 - Specifies the strength of the secondary filter. 3383 3383 3384 .. c:type:: v4l2_av1_segment_feature 3384 .. c:type:: v4l2_av1_segment_feature 3385 3385 3386 AV1 segment features as described in section 3386 AV1 segment features as described in section 3 "Symbols and abbreviated terms" 3387 of :ref:`av1`. 3387 of :ref:`av1`. 3388 3388 3389 .. raw:: latex 3389 .. raw:: latex 3390 3390 3391 \scriptsize 3391 \scriptsize 3392 3392 3393 .. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6c 3393 .. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| 3394 3394 3395 .. flat-table:: 3395 .. flat-table:: 3396 :header-rows: 0 3396 :header-rows: 0 3397 :stub-columns: 0 3397 :stub-columns: 0 3398 :widths: 1 1 2 3398 :widths: 1 1 2 3399 3399 3400 * - ``V4L2_AV1_SEG_LVL_ALT_Q`` 3400 * - ``V4L2_AV1_SEG_LVL_ALT_Q`` 3401 - 0 3401 - 0 3402 - Index for quantizer segment feature. 3402 - Index for quantizer segment feature. 3403 * - ``V4L2_AV1_SEG_LVL_ALT_LF_Y_V`` 3403 * - ``V4L2_AV1_SEG_LVL_ALT_LF_Y_V`` 3404 - 1 3404 - 1 3405 - Index for vertical luma loop filter s 3405 - Index for vertical luma loop filter segment feature. 3406 * - ``V4L2_AV1_SEG_LVL_REF_FRAME`` 3406 * - ``V4L2_AV1_SEG_LVL_REF_FRAME`` 3407 - 5 3407 - 5 3408 - Index for reference frame segment fea 3408 - Index for reference frame segment feature. 3409 * - ``V4L2_AV1_SEG_LVL_REF_SKIP`` 3409 * - ``V4L2_AV1_SEG_LVL_REF_SKIP`` 3410 - 6 3410 - 6 3411 - Index for skip segment feature. 3411 - Index for skip segment feature. 3412 * - ``V4L2_AV1_SEG_LVL_REF_GLOBALMV`` 3412 * - ``V4L2_AV1_SEG_LVL_REF_GLOBALMV`` 3413 - 7 3413 - 7 3414 - Index for global mv feature. 3414 - Index for global mv feature. 3415 * - ``V4L2_AV1_SEG_LVL_MAX`` 3415 * - ``V4L2_AV1_SEG_LVL_MAX`` 3416 - 8 3416 - 8 3417 - Number of segment features. 3417 - Number of segment features. 3418 3418 3419 .. c:type:: v4l2_av1_segmentation 3419 .. c:type:: v4l2_av1_segmentation 3420 3420 3421 AV1 Segmentation params as defined in section 3421 AV1 Segmentation params as defined in section 6.8.13 "Segmentation params 3422 semantics" of :ref:`av1`. 3422 semantics" of :ref:`av1`. 3423 3423 3424 .. cssclass:: longtable 3424 .. cssclass:: longtable 3425 3425 3426 .. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0 3426 .. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| 3427 3427 3428 .. flat-table:: struct v4l2_av1_segmentation 3428 .. flat-table:: struct v4l2_av1_segmentation 3429 :header-rows: 0 3429 :header-rows: 0 3430 :stub-columns: 0 3430 :stub-columns: 0 3431 :widths: 1 1 2 3431 :widths: 1 1 2 3432 3432 3433 * - __u8 3433 * - __u8 3434 - ``flags`` 3434 - ``flags`` 3435 - See :ref:`AV1 Segmentation Flags <av1 3435 - See :ref:`AV1 Segmentation Flags <av1_segmentation_flags>` 3436 * - __u8 3436 * - __u8 3437 - ``last_active_seg_id`` 3437 - ``last_active_seg_id`` 3438 - Indicates the highest numbered segme 3438 - Indicates the highest numbered segment id that has some 3439 enabled feature. This is used when d 3439 enabled feature. This is used when decoding the segment id to only decode 3440 choices corresponding to used segmen 3440 choices corresponding to used segments. 3441 * - __u8 3441 * - __u8 3442 - ``feature_enabled[V4L2_AV1_MAX_SEGMEN 3442 - ``feature_enabled[V4L2_AV1_MAX_SEGMENTS]`` 3443 - Bitmask defining which features are e 3443 - Bitmask defining which features are enabled in each segment. Use 3444 V4L2_AV1_SEGMENT_FEATURE_ENABLED to b 3444 V4L2_AV1_SEGMENT_FEATURE_ENABLED to build a suitable mask. 3445 * - __u16 3445 * - __u16 3446 - ``feature_data[V4L2_AV1_MAX_SEGMENTS] 3446 - ``feature_data[V4L2_AV1_MAX_SEGMENTS][V4L2_AV1_SEG_LVL_MAX]`` 3447 - Data attached to each feature. Data 3447 - Data attached to each feature. Data entry is only valid if the feature 3448 is enabled. 3448 is enabled. 3449 3449 3450 .. _av1_segmentation_flags: 3450 .. _av1_segmentation_flags: 3451 3451 3452 ``AV1 Segmentation Flags`` 3452 ``AV1 Segmentation Flags`` 3453 3453 3454 .. cssclass:: longtable 3454 .. cssclass:: longtable 3455 3455 3456 .. flat-table:: 3456 .. flat-table:: 3457 :header-rows: 0 3457 :header-rows: 0 3458 :stub-columns: 0 3458 :stub-columns: 0 3459 :widths: 1 1 2 3459 :widths: 1 1 2 3460 3460 3461 * - ``V4L2_AV1_SEGMENTATION_FLAG_ENABLED` 3461 * - ``V4L2_AV1_SEGMENTATION_FLAG_ENABLED`` 3462 - 0x00000001 3462 - 0x00000001 3463 - If set, indicates that this frame mak 3463 - If set, indicates that this frame makes use of the segmentation tool. If 3464 not set, indicates that the frame doe 3464 not set, indicates that the frame does not use segmentation. 3465 * - ``V4L2_AV1_SEGMENTATION_FLAG_UPDATE_M 3465 * - ``V4L2_AV1_SEGMENTATION_FLAG_UPDATE_MAP`` 3466 - 0x00000002 3466 - 0x00000002 3467 - If set, indicates that the segmentati 3467 - If set, indicates that the segmentation map are updated during the 3468 decoding of this frame. If not set, i 3468 decoding of this frame. If not set, indicates that the segmentation map 3469 from the previous frame is used. 3469 from the previous frame is used. 3470 * - ``V4L2_AV1_SEGMENTATION_FLAG_TEMPORAL 3470 * - ``V4L2_AV1_SEGMENTATION_FLAG_TEMPORAL_UPDATE`` 3471 - 0x00000004 3471 - 0x00000004 3472 - If set, indicates that the updates to 3472 - If set, indicates that the updates to the segmentation map are coded 3473 relative to the existing segmentation 3473 relative to the existing segmentation map. If not set, indicates that 3474 the new segmentation map is coded wit 3474 the new segmentation map is coded without reference to the existing 3475 segmentation map. 3475 segmentation map. 3476 * - ``V4L2_AV1_SEGMENTATION_FLAG_UPDATE_D 3476 * - ``V4L2_AV1_SEGMENTATION_FLAG_UPDATE_DATA`` 3477 - 0x00000008 3477 - 0x00000008 3478 - If set, indicates that the updates to 3478 - If set, indicates that the updates to the segmentation map are coded 3479 relative to the existing segmentation 3479 relative to the existing segmentation map. If not set, indicates that 3480 the new segmentation map is coded wit 3480 the new segmentation map is coded without reference to the existing 3481 segmentation map. 3481 segmentation map. 3482 * - ``V4L2_AV1_SEGMENTATION_FLAG_SEG_ID_P 3482 * - ``V4L2_AV1_SEGMENTATION_FLAG_SEG_ID_PRE_SKIP`` 3483 - 0x00000010 3483 - 0x00000010 3484 - If set, indicates that the segment id 3484 - If set, indicates that the segment id will be read before the skip 3485 syntax element. If not set, indicates 3485 syntax element. If not set, indicates that the skip syntax element will 3486 be read first. 3486 be read first. 3487 3487 3488 .. c:type:: v4l2_av1_loop_filter 3488 .. c:type:: v4l2_av1_loop_filter 3489 3489 3490 AV1 Loop filter params as defined in section 3490 AV1 Loop filter params as defined in section 6.8.10 "Loop filter semantics" of 3491 :ref:`av1`. 3491 :ref:`av1`. 3492 3492 3493 .. cssclass:: longtable 3493 .. cssclass:: longtable 3494 3494 3495 .. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0 3495 .. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| 3496 3496 3497 .. flat-table:: struct v4l2_av1_loop_filter 3497 .. flat-table:: struct v4l2_av1_loop_filter 3498 :header-rows: 0 3498 :header-rows: 0 3499 :stub-columns: 0 3499 :stub-columns: 0 3500 :widths: 1 1 2 3500 :widths: 1 1 2 3501 3501 3502 * - __u8 3502 * - __u8 3503 - ``flags`` 3503 - ``flags`` 3504 - See 3504 - See 3505 :ref:`AV1 Loop Filter flags <av1_loop 3505 :ref:`AV1 Loop Filter flags <av1_loop_filter_flags>` for more details. 3506 * - __u8 3506 * - __u8 3507 - ``level[4]`` 3507 - ``level[4]`` 3508 - An array containing loop filter stren 3508 - An array containing loop filter strength values. Different loop 3509 filter strength values from the array 3509 filter strength values from the array are used depending on the image 3510 plane being filtered, and the edge di 3510 plane being filtered, and the edge direction (vertical or horizontal) 3511 being filtered. 3511 being filtered. 3512 * - __u8 3512 * - __u8 3513 - ``sharpness`` 3513 - ``sharpness`` 3514 - indicates the sharpness level. The lo 3514 - indicates the sharpness level. The loop_filter_level and 3515 loop_filter_sharpness together determ 3515 loop_filter_sharpness together determine when a block edge is filtered, 3516 and by how much the filtering can cha 3516 and by how much the filtering can change the sample values. The loop 3517 filter process is described in sectio 3517 filter process is described in section 7.14 of :ref:`av1`. 3518 * - __u8 3518 * - __u8 3519 - ``ref_deltas[V4L2_AV1_TOTAL_REFS_PER_ 3519 - ``ref_deltas[V4L2_AV1_TOTAL_REFS_PER_FRAME]`` 3520 - contains the adjustment needed for th 3520 - contains the adjustment needed for the filter level based on the 3521 chosen reference frame. If this synta 3521 chosen reference frame. If this syntax element is not present, it 3522 maintains its previous value. 3522 maintains its previous value. 3523 * - __u8 3523 * - __u8 3524 - ``mode_deltas[2]`` 3524 - ``mode_deltas[2]`` 3525 - contains the adjustment needed for th 3525 - contains the adjustment needed for the filter level based on 3526 the chosen mode. If this syntax eleme 3526 the chosen mode. If this syntax element is not present, it maintains its 3527 previous value. 3527 previous value. 3528 * - __u8 3528 * - __u8 3529 - ``delta_lf_res`` 3529 - ``delta_lf_res`` 3530 - specifies the left shift which should 3530 - specifies the left shift which should be applied to decoded loop filter 3531 delta values. 3531 delta values. 3532 3532 3533 .. _av1_loop_filter_flags: 3533 .. _av1_loop_filter_flags: 3534 3534 3535 ``AV1 Loop Filter Flags`` 3535 ``AV1 Loop Filter Flags`` 3536 3536 3537 .. cssclass:: longtable 3537 .. cssclass:: longtable 3538 3538 3539 .. flat-table:: 3539 .. flat-table:: 3540 :header-rows: 0 3540 :header-rows: 0 3541 :stub-columns: 0 3541 :stub-columns: 0 3542 :widths: 1 1 2 3542 :widths: 1 1 2 3543 3543 3544 * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_ENA 3544 * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_ENABLED`` 3545 - 0x00000001 3545 - 0x00000001 3546 - If set, means that the filter level d 3546 - If set, means that the filter level depends on the mode and reference 3547 frame used to predict a block. If not 3547 frame used to predict a block. If not set, means that the filter level 3548 does not depend on the mode and refer 3548 does not depend on the mode and reference frame. 3549 * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_UPD 3549 * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_UPDATE`` 3550 - 0x00000002 3550 - 0x00000002 3551 - If set, means that additional syntax 3551 - If set, means that additional syntax elements are present that specify 3552 which mode and reference frame deltas 3552 which mode and reference frame deltas are to be updated. If not set, 3553 means that these syntax elements are 3553 means that these syntax elements are not present. 3554 * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_LF_ 3554 * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_LF_PRESENT`` 3555 - 0x00000004 3555 - 0x00000004 3556 - Specifies whether loop filter delta v 3556 - Specifies whether loop filter delta values are present 3557 * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_LF_ 3557 * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_LF_MULTI`` 3558 - 0x00000008 3558 - 0x00000008 3559 - A value equal to 1 specifies that sep 3559 - A value equal to 1 specifies that separate loop filter 3560 deltas are sent for horizontal luma e 3560 deltas are sent for horizontal luma edges, vertical luma edges, 3561 the U edges, and the V edges. A value 3561 the U edges, and the V edges. A value of delta_lf_multi equal to 0 3562 specifies that the same loop filter d 3562 specifies that the same loop filter delta is used for all edges. 3563 3563 3564 .. c:type:: v4l2_av1_quantization 3564 .. c:type:: v4l2_av1_quantization 3565 3565 3566 AV1 Quantization params as defined in section 3566 AV1 Quantization params as defined in section 6.8.11 "Quantization params 3567 semantics" of :ref:`av1`. 3567 semantics" of :ref:`av1`. 3568 3568 3569 .. cssclass:: longtable 3569 .. cssclass:: longtable 3570 3570 3571 .. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0 3571 .. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| 3572 3572 3573 .. flat-table:: struct v4l2_av1_quantization 3573 .. flat-table:: struct v4l2_av1_quantization 3574 :header-rows: 0 3574 :header-rows: 0 3575 :stub-columns: 0 3575 :stub-columns: 0 3576 :widths: 1 1 2 3576 :widths: 1 1 2 3577 3577 3578 * - __u8 3578 * - __u8 3579 - ``flags`` 3579 - ``flags`` 3580 - See 3580 - See 3581 :ref:`AV1 Loop Filter flags <av1_quan 3581 :ref:`AV1 Loop Filter flags <av1_quantization_flags>` for more details. 3582 * - __u8 3582 * - __u8 3583 - ``base_q_idx`` 3583 - ``base_q_idx`` 3584 - Indicates the base frame qindex. This 3584 - Indicates the base frame qindex. This is used for Y AC coefficients and 3585 as the base value for the other quant 3585 as the base value for the other quantizers. 3586 * - __u8 3586 * - __u8 3587 - ``delta_q_y_dc`` 3587 - ``delta_q_y_dc`` 3588 - Indicates the Y DC quantizer relative 3588 - Indicates the Y DC quantizer relative to base_q_idx. 3589 * - __u8 3589 * - __u8 3590 - ``delta_q_u_dc`` 3590 - ``delta_q_u_dc`` 3591 - Indicates the U DC quantizer relative 3591 - Indicates the U DC quantizer relative to base_q_idx. 3592 * - __u8 3592 * - __u8 3593 - ``delta_q_u_ac`` 3593 - ``delta_q_u_ac`` 3594 - Indicates the U AC quantizer relative 3594 - Indicates the U AC quantizer relative to base_q_idx. 3595 * - __u8 3595 * - __u8 3596 - ``delta_q_v_dc`` 3596 - ``delta_q_v_dc`` 3597 - Indicates the V DC quantizer relative 3597 - Indicates the V DC quantizer relative to base_q_idx. 3598 * - __u8 3598 * - __u8 3599 - ``delta_q_v_ac`` 3599 - ``delta_q_v_ac`` 3600 - Indicates the V AC quantizer relative 3600 - Indicates the V AC quantizer relative to base_q_idx. 3601 * - __u8 3601 * - __u8 3602 - ``qm_y`` 3602 - ``qm_y`` 3603 - Specifies the level in the quantizer 3603 - Specifies the level in the quantizer matrix that should be used for 3604 luma plane decoding. 3604 luma plane decoding. 3605 * - __u8 3605 * - __u8 3606 - ``qm_u`` 3606 - ``qm_u`` 3607 - Specifies the level in the quantizer 3607 - Specifies the level in the quantizer matrix that should be used for 3608 chroma U plane decoding. 3608 chroma U plane decoding. 3609 * - __u8 3609 * - __u8 3610 - ``qm_v`` 3610 - ``qm_v`` 3611 - Specifies the level in the quantizer 3611 - Specifies the level in the quantizer matrix that should be used for 3612 chroma V plane decoding. 3612 chroma V plane decoding. 3613 * - __u8 3613 * - __u8 3614 - ``delta_q_res`` 3614 - ``delta_q_res`` 3615 - Specifies the left shift which should 3615 - Specifies the left shift which should be applied to decoded quantizer 3616 index delta values. 3616 index delta values. 3617 3617 3618 .. _av1_quantization_flags: 3618 .. _av1_quantization_flags: 3619 3619 3620 ``AV1 Quantization Flags`` 3620 ``AV1 Quantization Flags`` 3621 3621 3622 .. cssclass:: longtable 3622 .. cssclass:: longtable 3623 3623 3624 .. flat-table:: 3624 .. flat-table:: 3625 :header-rows: 0 3625 :header-rows: 0 3626 :stub-columns: 0 3626 :stub-columns: 0 3627 :widths: 1 1 2 3627 :widths: 1 1 2 3628 3628 3629 * - ``V4L2_AV1_QUANTIZATION_FLAG_DIFF_UV_ 3629 * - ``V4L2_AV1_QUANTIZATION_FLAG_DIFF_UV_DELTA`` 3630 - 0x00000001 3630 - 0x00000001 3631 - If set, indicates that the U and V de 3631 - If set, indicates that the U and V delta quantizer values are coded 3632 separately. If not set, indicates tha 3632 separately. If not set, indicates that the U and V delta quantizer 3633 values share a common value. 3633 values share a common value. 3634 * - ``V4L2_AV1_QUANTIZATION_FLAG_USING_QM 3634 * - ``V4L2_AV1_QUANTIZATION_FLAG_USING_QMATRIX`` 3635 - 0x00000002 3635 - 0x00000002 3636 - If set, specifies that the quantizer 3636 - If set, specifies that the quantizer matrix will be used to compute 3637 quantizers. 3637 quantizers. 3638 * - ``V4L2_AV1_QUANTIZATION_FLAG_DELTA_Q_ 3638 * - ``V4L2_AV1_QUANTIZATION_FLAG_DELTA_Q_PRESENT`` 3639 - 0x00000004 3639 - 0x00000004 3640 - Specifies whether quantizer index del 3640 - Specifies whether quantizer index delta values are present. 3641 3641 3642 .. c:type:: v4l2_av1_tile_info 3642 .. c:type:: v4l2_av1_tile_info 3643 3643 3644 AV1 Tile info as defined in section 6.8.14 "T 3644 AV1 Tile info as defined in section 6.8.14 "Tile info semantics" of ref:`av1`. 3645 3645 3646 .. cssclass:: longtable 3646 .. cssclass:: longtable 3647 3647 3648 .. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0 3648 .. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| 3649 3649 3650 .. flat-table:: struct v4l2_av1_tile_info 3650 .. flat-table:: struct v4l2_av1_tile_info 3651 :header-rows: 0 3651 :header-rows: 0 3652 :stub-columns: 0 3652 :stub-columns: 0 3653 :widths: 1 1 2 3653 :widths: 1 1 2 3654 3654 3655 * - __u8 3655 * - __u8 3656 - ``flags`` 3656 - ``flags`` 3657 - See 3657 - See 3658 :ref:`AV1 Tile Info flags <av1_tile_i 3658 :ref:`AV1 Tile Info flags <av1_tile_info_flags>` for more details. 3659 * - __u8 3659 * - __u8 3660 - ``context_update_tile_id`` 3660 - ``context_update_tile_id`` 3661 - Specifies which tile to use for the C 3661 - Specifies which tile to use for the CDF update. 3662 * - __u8 3662 * - __u8 3663 - ``tile_cols`` 3663 - ``tile_cols`` 3664 - Specifies the number of tiles across 3664 - Specifies the number of tiles across the frame. 3665 * - __u8 3665 * - __u8 3666 - ``tile_rows`` 3666 - ``tile_rows`` 3667 - Specifies the number of tiles down th 3667 - Specifies the number of tiles down the frame. 3668 * - __u32 3668 * - __u32 3669 - ``mi_col_starts[V4L2_AV1_MAX_TILE_COL 3669 - ``mi_col_starts[V4L2_AV1_MAX_TILE_COLS + 1]`` 3670 - An array specifying the start column 3670 - An array specifying the start column (in units of 4x4 luma 3671 samples) for each tile across the ima 3671 samples) for each tile across the image. 3672 * - __u32 3672 * - __u32 3673 - ``mi_row_starts[V4L2_AV1_MAX_TILE_ROW 3673 - ``mi_row_starts[V4L2_AV1_MAX_TILE_ROWS + 1]`` 3674 - An array specifying the start row (in 3674 - An array specifying the start row (in units of 4x4 luma 3675 samples) for each tile across the ima 3675 samples) for each tile across the image. 3676 * - __u32 3676 * - __u32 3677 - ``width_in_sbs_minus_1[V4L2_AV1_MAX_T 3677 - ``width_in_sbs_minus_1[V4L2_AV1_MAX_TILE_COLS]`` 3678 - Specifies the width of a tile minus 1 3678 - Specifies the width of a tile minus 1 in units of superblocks. 3679 * - __u32 3679 * - __u32 3680 - ``height_in_sbs_minus_1[V4L2_AV1_MAX_ 3680 - ``height_in_sbs_minus_1[V4L2_AV1_MAX_TILE_ROWS]`` 3681 - Specifies the height of a tile minus 3681 - Specifies the height of a tile minus 1 in units of superblocks. 3682 * - __u8 3682 * - __u8 3683 - ``tile_size_bytes`` 3683 - ``tile_size_bytes`` 3684 - Specifies the number of bytes needed 3684 - Specifies the number of bytes needed to code each tile size. 3685 * - __u8 3685 * - __u8 3686 - ``reserved[3]`` 3686 - ``reserved[3]`` 3687 - Applications and drivers must set thi 3687 - Applications and drivers must set this to zero. 3688 3688 3689 .. _av1_tile_info_flags: 3689 .. _av1_tile_info_flags: 3690 3690 3691 ``AV1 Tile Info Flags`` 3691 ``AV1 Tile Info Flags`` 3692 3692 3693 .. cssclass:: longtable 3693 .. cssclass:: longtable 3694 3694 3695 .. flat-table:: 3695 .. flat-table:: 3696 :header-rows: 0 3696 :header-rows: 0 3697 :stub-columns: 0 3697 :stub-columns: 0 3698 :widths: 1 1 2 3698 :widths: 1 1 2 3699 3699 3700 * - ``V4L2_AV1_TILE_INFO_FLAG_UNIFORM_TIL 3700 * - ``V4L2_AV1_TILE_INFO_FLAG_UNIFORM_TILE_SPACING`` 3701 - 0x00000001 3701 - 0x00000001 3702 - If set, means that the tiles are unif 3702 - If set, means that the tiles are uniformly spaced across the frame. (In 3703 other words, all tiles are the same s 3703 other words, all tiles are the same size except for the ones at the 3704 right and bottom edge which can be sm 3704 right and bottom edge which can be smaller). If not set means that the 3705 tile sizes are coded. 3705 tile sizes are coded. 3706 3706 3707 .. c:type:: v4l2_av1_frame_type 3707 .. c:type:: v4l2_av1_frame_type 3708 3708 3709 AV1 Frame Type 3709 AV1 Frame Type 3710 3710 3711 .. raw:: latex 3711 .. raw:: latex 3712 3712 3713 \scriptsize 3713 \scriptsize 3714 3714 3715 .. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6c 3715 .. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| 3716 3716 3717 .. flat-table:: 3717 .. flat-table:: 3718 :header-rows: 0 3718 :header-rows: 0 3719 :stub-columns: 0 3719 :stub-columns: 0 3720 :widths: 1 1 2 3720 :widths: 1 1 2 3721 3721 3722 * - ``V4L2_AV1_KEY_FRAME`` 3722 * - ``V4L2_AV1_KEY_FRAME`` 3723 - 0 3723 - 0 3724 - Key frame. 3724 - Key frame. 3725 * - ``V4L2_AV1_INTER_FRAME`` 3725 * - ``V4L2_AV1_INTER_FRAME`` 3726 - 1 3726 - 1 3727 - Inter frame. 3727 - Inter frame. 3728 * - ``V4L2_AV1_INTRA_ONLY_FRAME`` 3728 * - ``V4L2_AV1_INTRA_ONLY_FRAME`` 3729 - 2 3729 - 2 3730 - Intra-only frame. 3730 - Intra-only frame. 3731 * - ``V4L2_AV1_SWITCH_FRAME`` 3731 * - ``V4L2_AV1_SWITCH_FRAME`` 3732 - 3 3732 - 3 3733 - Switch frame. 3733 - Switch frame. 3734 3734 3735 .. c:type:: v4l2_av1_interpolation_filter 3735 .. c:type:: v4l2_av1_interpolation_filter 3736 3736 3737 AV1 Interpolation Filter 3737 AV1 Interpolation Filter 3738 3738 3739 .. raw:: latex 3739 .. raw:: latex 3740 3740 3741 \scriptsize 3741 \scriptsize 3742 3742 3743 .. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6c 3743 .. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| 3744 3744 3745 .. flat-table:: 3745 .. flat-table:: 3746 :header-rows: 0 3746 :header-rows: 0 3747 :stub-columns: 0 3747 :stub-columns: 0 3748 :widths: 1 1 2 3748 :widths: 1 1 2 3749 3749 3750 * - ``V4L2_AV1_INTERPOLATION_FILTER_EIGHT 3750 * - ``V4L2_AV1_INTERPOLATION_FILTER_EIGHTTAP`` 3751 - 0 3751 - 0 3752 - Eight tap filter. 3752 - Eight tap filter. 3753 * - ``V4L2_AV1_INTERPOLATION_FILTER_EIGHT 3753 * - ``V4L2_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH`` 3754 - 1 3754 - 1 3755 - Eight tap smooth filter. 3755 - Eight tap smooth filter. 3756 * - ``V4L2_AV1_INTERPOLATION_FILTER_EIGHT 3756 * - ``V4L2_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP`` 3757 - 2 3757 - 2 3758 - Eight tap sharp filter. 3758 - Eight tap sharp filter. 3759 * - ``V4L2_AV1_INTERPOLATION_FILTER_BILIN 3759 * - ``V4L2_AV1_INTERPOLATION_FILTER_BILINEAR`` 3760 - 3 3760 - 3 3761 - Bilinear filter. 3761 - Bilinear filter. 3762 * - ``V4L2_AV1_INTERPOLATION_FILTER_SWITC 3762 * - ``V4L2_AV1_INTERPOLATION_FILTER_SWITCHABLE`` 3763 - 4 3763 - 4 3764 - Filter selection is signaled at the b 3764 - Filter selection is signaled at the block level. 3765 3765 3766 .. c:type:: v4l2_av1_tx_mode 3766 .. c:type:: v4l2_av1_tx_mode 3767 3767 3768 AV1 Tx mode as described in section 6.8.21 "T 3768 AV1 Tx mode as described in section 6.8.21 "TX mode semantics" of :ref:`av1`. 3769 3769 3770 .. raw:: latex 3770 .. raw:: latex 3771 3771 3772 \scriptsize 3772 \scriptsize 3773 3773 3774 .. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6c 3774 .. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| 3775 3775 3776 .. flat-table:: 3776 .. flat-table:: 3777 :header-rows: 0 3777 :header-rows: 0 3778 :stub-columns: 0 3778 :stub-columns: 0 3779 :widths: 1 1 2 3779 :widths: 1 1 2 3780 3780 3781 * - ``V4L2_AV1_TX_MODE_ONLY_4X4`` 3781 * - ``V4L2_AV1_TX_MODE_ONLY_4X4`` 3782 - 0 3782 - 0 3783 - The inverse transform will use only 3783 - The inverse transform will use only 4x4 transforms. 3784 * - ``V4L2_AV1_TX_MODE_LARGEST`` 3784 * - ``V4L2_AV1_TX_MODE_LARGEST`` 3785 - 1 3785 - 1 3786 - The inverse transform will use the la 3786 - The inverse transform will use the largest transform size that fits 3787 inside the block. 3787 inside the block. 3788 * - ``V4L2_AV1_TX_MODE_SELECT`` 3788 * - ``V4L2_AV1_TX_MODE_SELECT`` 3789 - 2 3789 - 2 3790 - The choice of transform size is speci 3790 - The choice of transform size is specified explicitly for each block. 3791 3791 3792 ``V4L2_CID_STATELESS_AV1_FRAME (struct)`` 3792 ``V4L2_CID_STATELESS_AV1_FRAME (struct)`` 3793 Represents a Frame Header OBU. See 6.8 "F 3793 Represents a Frame Header OBU. See 6.8 "Frame Header OBU semantics" of 3794 :ref:`av1` for more details. 3794 :ref:`av1` for more details. 3795 3795 3796 .. c:type:: v4l2_ctrl_av1_frame 3796 .. c:type:: v4l2_ctrl_av1_frame 3797 3797 3798 .. cssclass:: longtable 3798 .. cssclass:: longtable 3799 3799 3800 .. tabularcolumns:: |p{5.8cm}|p{4.8cm}|p{6.6c 3800 .. tabularcolumns:: |p{5.8cm}|p{4.8cm}|p{6.6cm}| 3801 3801 3802 .. flat-table:: struct v4l2_ctrl_av1_frame 3802 .. flat-table:: struct v4l2_ctrl_av1_frame 3803 :header-rows: 0 3803 :header-rows: 0 3804 :stub-columns: 0 3804 :stub-columns: 0 3805 :widths: 1 1 2 3805 :widths: 1 1 2 3806 3806 3807 * - struct :c:type:`v4l2_av1_tile_info` 3807 * - struct :c:type:`v4l2_av1_tile_info` 3808 - ``tile_info`` 3808 - ``tile_info`` 3809 - Tile info 3809 - Tile info 3810 * - struct :c:type:`v4l2_av1_quantization 3810 * - struct :c:type:`v4l2_av1_quantization` 3811 - ``quantization`` 3811 - ``quantization`` 3812 - Quantization parameters. 3812 - Quantization parameters. 3813 * - __u8 3813 * - __u8 3814 - ``superres_denom`` 3814 - ``superres_denom`` 3815 - The denominator for the upscaling rat 3815 - The denominator for the upscaling ratio. 3816 * - struct :c:type:`v4l2_av1_segmentation 3816 * - struct :c:type:`v4l2_av1_segmentation` 3817 - ``segmentation`` 3817 - ``segmentation`` 3818 - Segmentation parameters. 3818 - Segmentation parameters. 3819 * - struct :c:type:`v4l2_av1_loop_filter` 3819 * - struct :c:type:`v4l2_av1_loop_filter` 3820 - ``loop_filter`` 3820 - ``loop_filter`` 3821 - Loop filter params 3821 - Loop filter params 3822 * - struct :c:type:`v4l2_av1_cdef` 3822 * - struct :c:type:`v4l2_av1_cdef` 3823 - ``cdef`` 3823 - ``cdef`` 3824 - CDEF params 3824 - CDEF params 3825 * - __u8 3825 * - __u8 3826 - ``skip_mode_frame[2]`` 3826 - ``skip_mode_frame[2]`` 3827 - Specifies the frames to use for compo 3827 - Specifies the frames to use for compound prediction when skip_mode is 3828 equal to 1. 3828 equal to 1. 3829 * - __u8 3829 * - __u8 3830 - ``primary_ref_frame`` 3830 - ``primary_ref_frame`` 3831 - Specifies which reference frame conta 3831 - Specifies which reference frame contains the CDF values and other state 3832 that should be loaded at the start of 3832 that should be loaded at the start of the frame. 3833 * - struct :c:type:`v4l2_av1_loop_restora 3833 * - struct :c:type:`v4l2_av1_loop_restoration` 3834 - ``loop_restoration`` 3834 - ``loop_restoration`` 3835 - Loop restoration parameters. 3835 - Loop restoration parameters. 3836 * - struct :c:type:`v4l2_av1_global_motio 3836 * - struct :c:type:`v4l2_av1_global_motion` 3837 - ``global_motion`` 3837 - ``global_motion`` 3838 - Global motion parameters. 3838 - Global motion parameters. 3839 * - __u32 3839 * - __u32 3840 - ``flags`` 3840 - ``flags`` 3841 - See 3841 - See 3842 :ref:`AV1 Frame flags <av1_frame_flag 3842 :ref:`AV1 Frame flags <av1_frame_flags>` for more details. 3843 * - enum :c:type:`v4l2_av1_frame_type` 3843 * - enum :c:type:`v4l2_av1_frame_type` 3844 - ``frame_type`` 3844 - ``frame_type`` 3845 - Specifies the AV1 frame type 3845 - Specifies the AV1 frame type 3846 * - __u32 3846 * - __u32 3847 - ``order_hint`` 3847 - ``order_hint`` 3848 - Specifies OrderHintBits least signifi 3848 - Specifies OrderHintBits least significant bits of the expected output 3849 order for this frame. 3849 order for this frame. 3850 * - __u32 3850 * - __u32 3851 - ``upscaled_width`` 3851 - ``upscaled_width`` 3852 - The upscaled width. 3852 - The upscaled width. 3853 * - enum :c:type:`v4l2_av1_interpolation_ 3853 * - enum :c:type:`v4l2_av1_interpolation_filter` 3854 - ``interpolation_filter`` 3854 - ``interpolation_filter`` 3855 - Specifies the filter selection used f 3855 - Specifies the filter selection used for performing inter prediction. 3856 * - enum :c:type:`v4l2_av1_tx_mode` 3856 * - enum :c:type:`v4l2_av1_tx_mode` 3857 - ``tx_mode`` 3857 - ``tx_mode`` 3858 - Specifies how the transform size is d 3858 - Specifies how the transform size is determined. 3859 * - __u32 3859 * - __u32 3860 - ``frame_width_minus_1`` 3860 - ``frame_width_minus_1`` 3861 - Add 1 to get the frame's width. 3861 - Add 1 to get the frame's width. 3862 * - __u32 3862 * - __u32 3863 - ``frame_height_minus_1`` 3863 - ``frame_height_minus_1`` 3864 - Add 1 to get the frame's height. 3864 - Add 1 to get the frame's height. 3865 * - __u16 3865 * - __u16 3866 - ``render_width_minus_1`` 3866 - ``render_width_minus_1`` 3867 - Add 1 to get the render width of the 3867 - Add 1 to get the render width of the frame in luma samples. 3868 * - __u16 3868 * - __u16 3869 - ``render_height_minus_1`` 3869 - ``render_height_minus_1`` 3870 - Add 1 to get the render height of the 3870 - Add 1 to get the render height of the frame in luma samples. 3871 * - __u32 3871 * - __u32 3872 - ``current_frame_id`` 3872 - ``current_frame_id`` 3873 - Specifies the frame id number for the 3873 - Specifies the frame id number for the current frame. Frame 3874 id numbers are additional information 3874 id numbers are additional information that do not affect the decoding 3875 process, but provide decoders with a 3875 process, but provide decoders with a way of detecting missing reference 3876 frames so that appropriate action can 3876 frames so that appropriate action can be taken. 3877 * - __u8 3877 * - __u8 3878 - ``buffer_removal_time[V4L2_AV1_MAX_OP 3878 - ``buffer_removal_time[V4L2_AV1_MAX_OPERATING_POINTS]`` 3879 - Specifies the frame removal time in u 3879 - Specifies the frame removal time in units of DecCT clock ticks counted 3880 from the removal time of the last ran 3880 from the removal time of the last random access point for operating point 3881 opNum. 3881 opNum. 3882 * - __u8 3882 * - __u8 3883 - ``reserved[4]`` 3883 - ``reserved[4]`` 3884 - Applications and drivers must set thi 3884 - Applications and drivers must set this to zero. 3885 * - __u32 3885 * - __u32 3886 - ``order_hints[V4L2_AV1_TOTAL_REFS_PER 3886 - ``order_hints[V4L2_AV1_TOTAL_REFS_PER_FRAME]`` 3887 - Specifies the expected output order h 3887 - Specifies the expected output order hint for each reference frame. 3888 This field corresponds to the OrderHi 3888 This field corresponds to the OrderHints variable from the specification 3889 (section 5.9.2 "Uncompressed header 3889 (section 5.9.2 "Uncompressed header syntax"). As such, this is only 3890 used for non-intra frames and ignored 3890 used for non-intra frames and ignored otherwise. order_hints[0] is 3891 always ignored. 3891 always ignored. 3892 * - __u64 3892 * - __u64 3893 - ``reference_frame_ts[V4L2_AV1_TOTAL_R 3893 - ``reference_frame_ts[V4L2_AV1_TOTAL_REFS_PER_FRAME]`` 3894 - The V4L2 timestamp for each of the re 3894 - The V4L2 timestamp for each of the reference frames enumerated in 3895 enum :c:type:`v4l2_av1_reference_fram 3895 enum :c:type:`v4l2_av1_reference_frame` starting at 3896 ``V4L2_AV1_REF_LAST_FRAME``. This rep 3896 ``V4L2_AV1_REF_LAST_FRAME``. This represents the state of reference 3897 slot as described in the spec and upd 3897 slot as described in the spec and updated by userland through the 3898 "Reference frame update process" in s 3898 "Reference frame update process" in section 7.20 The timestamp refers 3899 to the ``timestamp`` field in struct 3899 to the ``timestamp`` field in struct :c:type:`v4l2_buffer`. Use the 3900 :c:func:`v4l2_timeval_to_ns()` functi 3900 :c:func:`v4l2_timeval_to_ns()` function to convert the struct 3901 :c:type:`timeval` in struct :c:type:` 3901 :c:type:`timeval` in struct :c:type:`v4l2_buffer` to a __u64. 3902 * - __s8 3902 * - __s8 3903 - ``ref_frame_idx[V4L2_AV1_REFS_PER_FRA 3903 - ``ref_frame_idx[V4L2_AV1_REFS_PER_FRAME]`` 3904 - An index into ``reference_frame_ts`` 3904 - An index into ``reference_frame_ts`` representing the ordered list of 3905 references used by inter-frame. Match 3905 references used by inter-frame. Matches the bitstream syntax 3906 element of the same name. 3906 element of the same name. 3907 * - __u8 3907 * - __u8 3908 - ``refresh_frame_flags`` 3908 - ``refresh_frame_flags`` 3909 - Contains a bitmask that specifies whi 3909 - Contains a bitmask that specifies which reference frame slots will be 3910 updated with the current frame after 3910 updated with the current frame after it is decoded. 3911 3911 3912 .. _av1_frame_flags: 3912 .. _av1_frame_flags: 3913 3913 3914 ``AV1 Frame Flags`` 3914 ``AV1 Frame Flags`` 3915 3915 3916 .. cssclass:: longtable 3916 .. cssclass:: longtable 3917 3917 3918 .. flat-table:: 3918 .. flat-table:: 3919 :header-rows: 0 3919 :header-rows: 0 3920 :stub-columns: 0 3920 :stub-columns: 0 3921 :widths: 1 1 2 3921 :widths: 1 1 2 3922 3922 3923 * - ``V4L2_AV1_FRAME_FLAG_SHOW_FRAME`` 3923 * - ``V4L2_AV1_FRAME_FLAG_SHOW_FRAME`` 3924 - 0x00000001 3924 - 0x00000001 3925 - If set, specifies that this frame sho 3925 - If set, specifies that this frame should be immediately output once 3926 decoded. If not set, specifies that t 3926 decoded. If not set, specifies that this frame should not be immediately 3927 output; it may be output later if a l 3927 output; it may be output later if a later uncompressed header uses 3928 show_existing_frame equal to 1. 3928 show_existing_frame equal to 1. 3929 * - ``V4L2_AV1_FRAME_FLAG_SHOWABLE_FRAME` 3929 * - ``V4L2_AV1_FRAME_FLAG_SHOWABLE_FRAME`` 3930 - 0x00000002 3930 - 0x00000002 3931 - If set, specifies that the frame may 3931 - If set, specifies that the frame may be output using the 3932 show_existing_frame mechanism. If not 3932 show_existing_frame mechanism. If not set, specifies that this frame 3933 will not be output using the show_exi 3933 will not be output using the show_existing_frame mechanism. 3934 * - ``V4L2_AV1_FRAME_FLAG_ERROR_RESILIENT 3934 * - ``V4L2_AV1_FRAME_FLAG_ERROR_RESILIENT_MODE`` 3935 - 0x00000004 3935 - 0x00000004 3936 - Specifies whether error resilient mod 3936 - Specifies whether error resilient mode is enabled. 3937 * - ``V4L2_AV1_FRAME_FLAG_DISABLE_CDF_UPD 3937 * - ``V4L2_AV1_FRAME_FLAG_DISABLE_CDF_UPDATE`` 3938 - 0x00000008 3938 - 0x00000008 3939 - Specifies whether the CDF update in t 3939 - Specifies whether the CDF update in the symbol decoding process should 3940 be disabled. 3940 be disabled. 3941 * - ``V4L2_AV1_FRAME_FLAG_ALLOW_SCREEN_CO 3941 * - ``V4L2_AV1_FRAME_FLAG_ALLOW_SCREEN_CONTENT_TOOLS`` 3942 - 0x00000010 3942 - 0x00000010 3943 - If set, indicates that intra blocks m 3943 - If set, indicates that intra blocks may use palette encoding. If not 3944 set, indicates that palette encoding 3944 set, indicates that palette encoding is never used. 3945 * - ``V4L2_AV1_FRAME_FLAG_FORCE_INTEGER_M 3945 * - ``V4L2_AV1_FRAME_FLAG_FORCE_INTEGER_MV`` 3946 - 0x00000020 3946 - 0x00000020 3947 - If set, specifies that motion vectors 3947 - If set, specifies that motion vectors will always be integers. If not 3948 set, specifies that motion vectors ca 3948 set, specifies that motion vectors can contain fractional bits. 3949 * - ``V4L2_AV1_FRAME_FLAG_ALLOW_INTRABC`` 3949 * - ``V4L2_AV1_FRAME_FLAG_ALLOW_INTRABC`` 3950 - 0x00000040 3950 - 0x00000040 3951 - If set, indicates that intra block co 3951 - If set, indicates that intra block copy may be used in this frame. If 3952 not set, indicates that intra block c 3952 not set, indicates that intra block copy is not allowed in this frame. 3953 * - ``V4L2_AV1_FRAME_FLAG_USE_SUPERRES`` 3953 * - ``V4L2_AV1_FRAME_FLAG_USE_SUPERRES`` 3954 - 0x00000080 3954 - 0x00000080 3955 - If set, indicates that upscaling is n 3955 - If set, indicates that upscaling is needed. 3956 * - ``V4L2_AV1_FRAME_FLAG_ALLOW_HIGH_PREC 3956 * - ``V4L2_AV1_FRAME_FLAG_ALLOW_HIGH_PRECISION_MV`` 3957 - 0x00000100 3957 - 0x00000100 3958 - If set, specifies that motion vectors 3958 - If set, specifies that motion vectors are specified to eighth pel 3959 precision. If not set, specifies that 3959 precision. If not set, specifies that motion vectors are specified to 3960 quarter pel precision; 3960 quarter pel precision; 3961 * - ``V4L2_AV1_FRAME_FLAG_IS_MOTION_MODE_ 3961 * - ``V4L2_AV1_FRAME_FLAG_IS_MOTION_MODE_SWITCHABLE`` 3962 - 0x00000200 3962 - 0x00000200 3963 - If not set, specifies that only the S 3963 - If not set, specifies that only the SIMPLE motion mode will be used. 3964 * - ``V4L2_AV1_FRAME_FLAG_USE_REF_FRAME_M 3964 * - ``V4L2_AV1_FRAME_FLAG_USE_REF_FRAME_MVS`` 3965 - 0x00000400 3965 - 0x00000400 3966 - If set specifies that motion vector i 3966 - If set specifies that motion vector information from a previous frame 3967 can be used when decoding the current 3967 can be used when decoding the current frame. If not set, specifies that 3968 this information will not be used. 3968 this information will not be used. 3969 * - ``V4L2_AV1_FRAME_FLAG_DISABLE_FRAME_E 3969 * - ``V4L2_AV1_FRAME_FLAG_DISABLE_FRAME_END_UPDATE_CDF`` 3970 - 0x00000800 3970 - 0x00000800 3971 - If set indicates that the end of fram 3971 - If set indicates that the end of frame CDF update is disabled. If not 3972 set, indicates that the end of frame 3972 set, indicates that the end of frame CDF update is enabled 3973 * - ``V4L2_AV1_FRAME_FLAG_ALLOW_WARPED_MO 3973 * - ``V4L2_AV1_FRAME_FLAG_ALLOW_WARPED_MOTION`` 3974 - 0x00001000 3974 - 0x00001000 3975 - If set, indicates that the syntax ele 3975 - If set, indicates that the syntax element motion_mode may be present, if 3976 not set, indicates that the syntax el 3976 not set, indicates that the syntax element motion_mode will not be 3977 present. 3977 present. 3978 * - ``V4L2_AV1_FRAME_FLAG_REFERENCE_SELEC 3978 * - ``V4L2_AV1_FRAME_FLAG_REFERENCE_SELECT`` 3979 - 0x00002000 3979 - 0x00002000 3980 - If set, specifies that the mode info 3980 - If set, specifies that the mode info for inter blocks contains the 3981 syntax element comp_mode that indicat 3981 syntax element comp_mode that indicates whether to use single or 3982 compound reference prediction. If not 3982 compound reference prediction. If not set, specifies that all inter 3983 blocks will use single prediction. 3983 blocks will use single prediction. 3984 * - ``V4L2_AV1_FRAME_FLAG_REDUCED_TX_SET` 3984 * - ``V4L2_AV1_FRAME_FLAG_REDUCED_TX_SET`` 3985 - 0x00004000 3985 - 0x00004000 3986 - If set, specifies that the frame is r 3986 - If set, specifies that the frame is restricted to a reduced subset of 3987 the full set of transform types. 3987 the full set of transform types. 3988 * - ``V4L2_AV1_FRAME_FLAG_SKIP_MODE_ALLOW 3988 * - ``V4L2_AV1_FRAME_FLAG_SKIP_MODE_ALLOWED`` 3989 - 0x00008000 3989 - 0x00008000 3990 - This flag retains the same meaning as 3990 - This flag retains the same meaning as SkipModeAllowed in :ref:`av1`. 3991 * - ``V4L2_AV1_FRAME_FLAG_SKIP_MODE_PRESE 3991 * - ``V4L2_AV1_FRAME_FLAG_SKIP_MODE_PRESENT`` 3992 - 0x00010000 3992 - 0x00010000 3993 - If set, specifies that the syntax ele 3993 - If set, specifies that the syntax element skip_mode will be present, if 3994 not set, specifies that skip_mode wil 3994 not set, specifies that skip_mode will not be used for this frame. 3995 * - ``V4L2_AV1_FRAME_FLAG_FRAME_SIZE_OVER 3995 * - ``V4L2_AV1_FRAME_FLAG_FRAME_SIZE_OVERRIDE`` 3996 - 0x00020000 3996 - 0x00020000 3997 - If set, specifies that the frame size 3997 - If set, specifies that the frame size will either be specified as the 3998 size of one of the reference frames, 3998 size of one of the reference frames, or computed from the 3999 frame_width_minus_1 and frame_height_ 3999 frame_width_minus_1 and frame_height_minus_1 syntax elements. If not 4000 set, specifies that the frame size is 4000 set, specifies that the frame size is equal to the size in the sequence 4001 header. 4001 header. 4002 * - ``V4L2_AV1_FRAME_FLAG_BUFFER_REMOVAL_ 4002 * - ``V4L2_AV1_FRAME_FLAG_BUFFER_REMOVAL_TIME_PRESENT`` 4003 - 0x00040000 4003 - 0x00040000 4004 - If set, specifies that buffer_removal 4004 - If set, specifies that buffer_removal_time is present. If not set, 4005 specifies that buffer_removal_time is 4005 specifies that buffer_removal_time is not present. 4006 * - ``V4L2_AV1_FRAME_FLAG_FRAME_REFS_SHOR 4006 * - ``V4L2_AV1_FRAME_FLAG_FRAME_REFS_SHORT_SIGNALING`` 4007 - 0x00080000 4007 - 0x00080000 4008 - If set, indicates that only two refer 4008 - If set, indicates that only two reference frames are explicitly 4009 signaled. If not set, indicates that 4009 signaled. If not set, indicates that all reference frames are explicitly 4010 signaled. 4010 signaled. 4011 4011 4012 ``V4L2_CID_STATELESS_AV1_FILM_GRAIN (struct)` 4012 ``V4L2_CID_STATELESS_AV1_FILM_GRAIN (struct)`` 4013 Represents the optional film grain parame 4013 Represents the optional film grain parameters. See section 4014 6.8.20 "Film grain params semantics" of : 4014 6.8.20 "Film grain params semantics" of :ref:`av1` for more details. 4015 4015 4016 .. c:type:: v4l2_ctrl_av1_film_grain 4016 .. c:type:: v4l2_ctrl_av1_film_grain 4017 4017 4018 .. cssclass:: longtable 4018 .. cssclass:: longtable 4019 4019 4020 .. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0 4020 .. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| 4021 4021 4022 .. flat-table:: struct v4l2_ctrl_av1_film_gra 4022 .. flat-table:: struct v4l2_ctrl_av1_film_grain 4023 :header-rows: 0 4023 :header-rows: 0 4024 :stub-columns: 0 4024 :stub-columns: 0 4025 :widths: 1 1 2 4025 :widths: 1 1 2 4026 4026 4027 * - __u8 4027 * - __u8 4028 - ``flags`` 4028 - ``flags`` 4029 - See :ref:`AV1 Film Grain Flags <av1_f 4029 - See :ref:`AV1 Film Grain Flags <av1_film_grain_flags>`. 4030 * - __u8 4030 * - __u8 4031 - ``cr_mult`` 4031 - ``cr_mult`` 4032 - Represents a multiplier for the cr co 4032 - Represents a multiplier for the cr component used in derivation of the 4033 input index to the cr component scali 4033 input index to the cr component scaling function. 4034 * - __u16 4034 * - __u16 4035 - ``grain_seed`` 4035 - ``grain_seed`` 4036 - Specifies the starting value for the 4036 - Specifies the starting value for the pseudo-random numbers used during 4037 film grain synthesis. 4037 film grain synthesis. 4038 * - __u8 4038 * - __u8 4039 - ``film_grain_params_ref_idx`` 4039 - ``film_grain_params_ref_idx`` 4040 - Indicates which reference frame conta 4040 - Indicates which reference frame contains the film grain parameters to be 4041 used for this frame. 4041 used for this frame. 4042 * - __u8 4042 * - __u8 4043 - ``num_y_points`` 4043 - ``num_y_points`` 4044 - Specifies the number of points for th 4044 - Specifies the number of points for the piece-wise linear scaling 4045 function of the luma component. 4045 function of the luma component. 4046 * - __u8 4046 * - __u8 4047 - ``point_y_value[V4L2_AV1_MAX_NUM_Y_PO 4047 - ``point_y_value[V4L2_AV1_MAX_NUM_Y_POINTS]`` 4048 - Represents the x (luma value) coordin 4048 - Represents the x (luma value) coordinate for the i-th point 4049 of the piecewise linear scaling funct 4049 of the piecewise linear scaling function for luma component. The values 4050 are signaled on the scale of 0..255. 4050 are signaled on the scale of 0..255. In case of 10 bit video, these 4051 values correspond to luma values divi 4051 values correspond to luma values divided by 4. In case of 12 bit video, 4052 these values correspond to luma value 4052 these values correspond to luma values divided by 16. 4053 * - __u8 4053 * - __u8 4054 - ``point_y_scaling[V4L2_AV1_MAX_NUM_Y_ 4054 - ``point_y_scaling[V4L2_AV1_MAX_NUM_Y_POINTS]`` 4055 - Represents the scaling (output) value 4055 - Represents the scaling (output) value for the i-th point 4056 of the piecewise linear scaling funct 4056 of the piecewise linear scaling function for luma component. 4057 * - __u8 4057 * - __u8 4058 - ``num_cb_points`` 4058 - ``num_cb_points`` 4059 - Specifies the number of points for t 4059 - Specifies the number of points for the piece-wise linear scaling 4060 function of the cb component. 4060 function of the cb component. 4061 * - __u8 4061 * - __u8 4062 - ``point_cb_value[V4L2_AV1_MAX_NUM_CB_ 4062 - ``point_cb_value[V4L2_AV1_MAX_NUM_CB_POINTS]`` 4063 - Represents the x coordinate for the i 4063 - Represents the x coordinate for the i-th point of the 4064 piece-wise linear scaling function fo 4064 piece-wise linear scaling function for cb component. The values are 4065 signaled on the scale of 0..255. 4065 signaled on the scale of 0..255. 4066 * - __u8 4066 * - __u8 4067 - ``point_cb_scaling[V4L2_AV1_MAX_NUM_C 4067 - ``point_cb_scaling[V4L2_AV1_MAX_NUM_CB_POINTS]`` 4068 - Represents the scaling (output) value 4068 - Represents the scaling (output) value for the i-th point of the 4069 piecewise linear scaling function for 4069 piecewise linear scaling function for cb component. 4070 * - __u8 4070 * - __u8 4071 - ``num_cr_points`` 4071 - ``num_cr_points`` 4072 - Represents the number of points for t 4072 - Represents the number of points for the piece-wise 4073 linear scaling function of the cr com 4073 linear scaling function of the cr component. 4074 * - __u8 4074 * - __u8 4075 - ``point_cr_value[V4L2_AV1_MAX_NUM_CR_ 4075 - ``point_cr_value[V4L2_AV1_MAX_NUM_CR_POINTS]`` 4076 - Represents the x coordinate for the i 4076 - Represents the x coordinate for the i-th point of the 4077 piece-wise linear scaling function fo 4077 piece-wise linear scaling function for cr component. The values are 4078 signaled on the scale of 0..255. 4078 signaled on the scale of 0..255. 4079 * - __u8 4079 * - __u8 4080 - ``point_cr_scaling[V4L2_AV1_MAX_NUM_C 4080 - ``point_cr_scaling[V4L2_AV1_MAX_NUM_CR_POINTS]`` 4081 - Represents the scaling (output) value 4081 - Represents the scaling (output) value for the i-th point of the 4082 piecewise linear scaling function for 4082 piecewise linear scaling function for cr component. 4083 * - __u8 4083 * - __u8 4084 - ``grain_scaling_minus_8`` 4084 - ``grain_scaling_minus_8`` 4085 - Represents the shift - 8 applied to t 4085 - Represents the shift - 8 applied to the values of the chroma component. 4086 The grain_scaling_minus_8 can take va 4086 The grain_scaling_minus_8 can take values of 0..3 and determines the 4087 range and quantization step of the st 4087 range and quantization step of the standard deviation of film grain. 4088 * - __u8 4088 * - __u8 4089 - ``ar_coeff_lag`` 4089 - ``ar_coeff_lag`` 4090 - Specifies the number of auto-regressi 4090 - Specifies the number of auto-regressive coefficients for luma and 4091 chroma. 4091 chroma. 4092 * - __u8 4092 * - __u8 4093 - ``ar_coeffs_y_plus_128[V4L2_AV1_AR_CO 4093 - ``ar_coeffs_y_plus_128[V4L2_AV1_AR_COEFFS_SIZE]`` 4094 - Specifies auto-regressive coefficient 4094 - Specifies auto-regressive coefficients used for the Y plane. 4095 * - __u8 4095 * - __u8 4096 - ``ar_coeffs_cb_plus_128[V4L2_AV1_AR_C 4096 - ``ar_coeffs_cb_plus_128[V4L2_AV1_AR_COEFFS_SIZE]`` 4097 - Specifies auto-regressive coefficient 4097 - Specifies auto-regressive coefficients used for the U plane. 4098 * - __u8 4098 * - __u8 4099 - ``ar_coeffs_cr_plus_128[V4L2_AV1_AR_C 4099 - ``ar_coeffs_cr_plus_128[V4L2_AV1_AR_COEFFS_SIZE]`` 4100 - Specifies auto-regressive coefficient 4100 - Specifies auto-regressive coefficients used for the V plane. 4101 * - __u8 4101 * - __u8 4102 - ``ar_coeff_shift_minus_6`` 4102 - ``ar_coeff_shift_minus_6`` 4103 - Specifies the range of the auto-regre 4103 - Specifies the range of the auto-regressive coefficients. Values of 0, 4104 1, 2, and 3 correspond to the ranges 4104 1, 2, and 3 correspond to the ranges for auto-regressive coefficients of 4105 [-2, 2), [-1, 1), [-0.5, 0.5) and [-0 4105 [-2, 2), [-1, 1), [-0.5, 0.5) and [-0.25, 0.25) respectively. 4106 * - __u8 4106 * - __u8 4107 - ``grain_scale_shift`` 4107 - ``grain_scale_shift`` 4108 - Specifies how much the Gaussian rando 4108 - Specifies how much the Gaussian random numbers should be scaled down 4109 during the grain synthesis process. 4109 during the grain synthesis process. 4110 * - __u8 4110 * - __u8 4111 - ``cb_mult`` 4111 - ``cb_mult`` 4112 - Represents a multiplier for the cb co 4112 - Represents a multiplier for the cb component used in derivation of the 4113 input index to the cb component scali 4113 input index to the cb component scaling function. 4114 * - __u8 4114 * - __u8 4115 - ``cb_luma_mult`` 4115 - ``cb_luma_mult`` 4116 - Represents a multiplier for the avera 4116 - Represents a multiplier for the average luma component used in 4117 derivation of the input index to the 4117 derivation of the input index to the cb component scaling function.. 4118 * - __u8 4118 * - __u8 4119 - ``cr_luma_mult`` 4119 - ``cr_luma_mult`` 4120 - Represents a multiplier for the avera 4120 - Represents a multiplier for the average luma component used in 4121 derivation of the input index to the 4121 derivation of the input index to the cr component scaling function. 4122 * - __u16 4122 * - __u16 4123 - ``cb_offset`` 4123 - ``cb_offset`` 4124 - Represents an offset used in derivati 4124 - Represents an offset used in derivation of the input index to the 4125 cb component scaling function. 4125 cb component scaling function. 4126 * - __u16 4126 * - __u16 4127 - ``cr_offset`` 4127 - ``cr_offset`` 4128 - Represents an offset used in derivati 4128 - Represents an offset used in derivation of the input index to the 4129 cr component scaling function. 4129 cr component scaling function. 4130 * - __u8 4130 * - __u8 4131 - ``reserved[4]`` 4131 - ``reserved[4]`` 4132 - Applications and drivers must set thi 4132 - Applications and drivers must set this to zero. 4133 4133 4134 .. _av1_film_grain_flags: 4134 .. _av1_film_grain_flags: 4135 4135 4136 ``AV1 Film Grain Flags`` 4136 ``AV1 Film Grain Flags`` 4137 4137 4138 .. cssclass:: longtable 4138 .. cssclass:: longtable 4139 4139 4140 .. flat-table:: 4140 .. flat-table:: 4141 :header-rows: 0 4141 :header-rows: 0 4142 :stub-columns: 0 4142 :stub-columns: 0 4143 :widths: 1 1 2 4143 :widths: 1 1 2 4144 4144 4145 * - ``V4L2_AV1_FILM_GRAIN_FLAG_APPLY_GRAI 4145 * - ``V4L2_AV1_FILM_GRAIN_FLAG_APPLY_GRAIN`` 4146 - 0x00000001 4146 - 0x00000001 4147 - If set, specifies that film grain sho 4147 - If set, specifies that film grain should be added to this frame. If not 4148 set, specifies that film grain should 4148 set, specifies that film grain should not be added. 4149 * - ``V4L2_AV1_FILM_GRAIN_FLAG_UPDATE_GRA 4149 * - ``V4L2_AV1_FILM_GRAIN_FLAG_UPDATE_GRAIN`` 4150 - 0x00000002 4150 - 0x00000002 4151 - If set, means that a new set of param 4151 - If set, means that a new set of parameters should be sent. If not set, 4152 specifies that the previous set of pa 4152 specifies that the previous set of parameters should be used. 4153 * - ``V4L2_AV1_FILM_GRAIN_FLAG_CHROMA_SCA 4153 * - ``V4L2_AV1_FILM_GRAIN_FLAG_CHROMA_SCALING_FROM_LUMA`` 4154 - 0x00000004 4154 - 0x00000004 4155 - If set, specifies that the chroma sca 4155 - If set, specifies that the chroma scaling is inferred from the luma 4156 scaling. 4156 scaling. 4157 * - ``V4L2_AV1_FILM_GRAIN_FLAG_OVERLAP`` 4157 * - ``V4L2_AV1_FILM_GRAIN_FLAG_OVERLAP`` 4158 - 0x00000008 4158 - 0x00000008 4159 - If set, indicates that the overlap be 4159 - If set, indicates that the overlap between film grain blocks shall be 4160 applied. If not set, indicates that t 4160 applied. If not set, indicates that the overlap between film grain blocks 4161 shall not be applied. 4161 shall not be applied. 4162 * - ``V4L2_AV1_FILM_GRAIN_FLAG_CLIP_TO_RE 4162 * - ``V4L2_AV1_FILM_GRAIN_FLAG_CLIP_TO_RESTRICTED_RANGE`` 4163 - 0x00000010 4163 - 0x00000010 4164 - If set, indicates that clipping to th 4164 - If set, indicates that clipping to the restricted (studio, i.e. limited) 4165 range shall be applied to the sample 4165 range shall be applied to the sample values after adding the film grain 4166 (see the semantics for color_range fo 4166 (see the semantics for color_range for an explanation of studio swing). 4167 If not set, indicates that clipping t 4167 If not set, indicates that clipping to the full range shall be applied 4168 to the sample values after adding the 4168 to the sample values after adding the film grain.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.