162306a36Sopenharmony_ci.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci.. _codec-stateless-controls: 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci********************************* 662306a36Sopenharmony_ciStateless Codec Control Reference 762306a36Sopenharmony_ci********************************* 862306a36Sopenharmony_ci 962306a36Sopenharmony_ciThe Stateless Codec control class is intended to support 1062306a36Sopenharmony_cistateless decoder and encoders (i.e. hardware accelerators). 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciThese drivers are typically supported by the :ref:`stateless_decoder`, 1362306a36Sopenharmony_ciand deal with parsed pixel formats such as V4L2_PIX_FMT_H264_SLICE. 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciStateless Codec Control ID 1662306a36Sopenharmony_ci========================== 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci.. _codec-stateless-control-id: 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci``V4L2_CID_CODEC_STATELESS_CLASS (class)`` 2162306a36Sopenharmony_ci The Stateless Codec class descriptor. 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci.. _v4l2-codec-stateless-h264: 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci``V4L2_CID_STATELESS_H264_SPS (struct)`` 2662306a36Sopenharmony_ci Specifies the sequence parameter set (as extracted from the 2762306a36Sopenharmony_ci bitstream) for the associated H264 slice data. This includes the 2862306a36Sopenharmony_ci necessary parameters for configuring a stateless hardware decoding 2962306a36Sopenharmony_ci pipeline for H264. The bitstream parameters are defined according 3062306a36Sopenharmony_ci to :ref:`h264`, section 7.4.2.1.1 "Sequence Parameter Set Data 3162306a36Sopenharmony_ci Semantics". For further documentation, refer to the above 3262306a36Sopenharmony_ci specification, unless there is an explicit comment stating 3362306a36Sopenharmony_ci otherwise. 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci.. c:type:: v4l2_ctrl_h264_sps 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci.. raw:: latex 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci \small 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci.. tabularcolumns:: |p{1.2cm}|p{8.6cm}|p{7.5cm}| 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci.. flat-table:: struct v4l2_ctrl_h264_sps 4462306a36Sopenharmony_ci :header-rows: 0 4562306a36Sopenharmony_ci :stub-columns: 0 4662306a36Sopenharmony_ci :widths: 1 1 2 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci * - __u8 4962306a36Sopenharmony_ci - ``profile_idc`` 5062306a36Sopenharmony_ci - 5162306a36Sopenharmony_ci * - __u8 5262306a36Sopenharmony_ci - ``constraint_set_flags`` 5362306a36Sopenharmony_ci - See :ref:`Sequence Parameter Set Constraints Set Flags <h264_sps_constraints_set_flags>` 5462306a36Sopenharmony_ci * - __u8 5562306a36Sopenharmony_ci - ``level_idc`` 5662306a36Sopenharmony_ci - 5762306a36Sopenharmony_ci * - __u8 5862306a36Sopenharmony_ci - ``seq_parameter_set_id`` 5962306a36Sopenharmony_ci - 6062306a36Sopenharmony_ci * - __u8 6162306a36Sopenharmony_ci - ``chroma_format_idc`` 6262306a36Sopenharmony_ci - 6362306a36Sopenharmony_ci * - __u8 6462306a36Sopenharmony_ci - ``bit_depth_luma_minus8`` 6562306a36Sopenharmony_ci - 6662306a36Sopenharmony_ci * - __u8 6762306a36Sopenharmony_ci - ``bit_depth_chroma_minus8`` 6862306a36Sopenharmony_ci - 6962306a36Sopenharmony_ci * - __u8 7062306a36Sopenharmony_ci - ``log2_max_frame_num_minus4`` 7162306a36Sopenharmony_ci - 7262306a36Sopenharmony_ci * - __u8 7362306a36Sopenharmony_ci - ``pic_order_cnt_type`` 7462306a36Sopenharmony_ci - 7562306a36Sopenharmony_ci * - __u8 7662306a36Sopenharmony_ci - ``log2_max_pic_order_cnt_lsb_minus4`` 7762306a36Sopenharmony_ci - 7862306a36Sopenharmony_ci * - __u8 7962306a36Sopenharmony_ci - ``max_num_ref_frames`` 8062306a36Sopenharmony_ci - 8162306a36Sopenharmony_ci * - __u8 8262306a36Sopenharmony_ci - ``num_ref_frames_in_pic_order_cnt_cycle`` 8362306a36Sopenharmony_ci - 8462306a36Sopenharmony_ci * - __s32 8562306a36Sopenharmony_ci - ``offset_for_ref_frame[255]`` 8662306a36Sopenharmony_ci - 8762306a36Sopenharmony_ci * - __s32 8862306a36Sopenharmony_ci - ``offset_for_non_ref_pic`` 8962306a36Sopenharmony_ci - 9062306a36Sopenharmony_ci * - __s32 9162306a36Sopenharmony_ci - ``offset_for_top_to_bottom_field`` 9262306a36Sopenharmony_ci - 9362306a36Sopenharmony_ci * - __u16 9462306a36Sopenharmony_ci - ``pic_width_in_mbs_minus1`` 9562306a36Sopenharmony_ci - 9662306a36Sopenharmony_ci * - __u16 9762306a36Sopenharmony_ci - ``pic_height_in_map_units_minus1`` 9862306a36Sopenharmony_ci - 9962306a36Sopenharmony_ci * - __u32 10062306a36Sopenharmony_ci - ``flags`` 10162306a36Sopenharmony_ci - See :ref:`Sequence Parameter Set Flags <h264_sps_flags>` 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ci.. raw:: latex 10462306a36Sopenharmony_ci 10562306a36Sopenharmony_ci \normalsize 10662306a36Sopenharmony_ci 10762306a36Sopenharmony_ci.. _h264_sps_constraints_set_flags: 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ci``Sequence Parameter Set Constraints Set Flags`` 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_ci.. cssclass:: longtable 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ci.. flat-table:: 11462306a36Sopenharmony_ci :header-rows: 0 11562306a36Sopenharmony_ci :stub-columns: 0 11662306a36Sopenharmony_ci :widths: 1 1 2 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_ci * - ``V4L2_H264_SPS_CONSTRAINT_SET0_FLAG`` 11962306a36Sopenharmony_ci - 0x00000001 12062306a36Sopenharmony_ci - 12162306a36Sopenharmony_ci * - ``V4L2_H264_SPS_CONSTRAINT_SET1_FLAG`` 12262306a36Sopenharmony_ci - 0x00000002 12362306a36Sopenharmony_ci - 12462306a36Sopenharmony_ci * - ``V4L2_H264_SPS_CONSTRAINT_SET2_FLAG`` 12562306a36Sopenharmony_ci - 0x00000004 12662306a36Sopenharmony_ci - 12762306a36Sopenharmony_ci * - ``V4L2_H264_SPS_CONSTRAINT_SET3_FLAG`` 12862306a36Sopenharmony_ci - 0x00000008 12962306a36Sopenharmony_ci - 13062306a36Sopenharmony_ci * - ``V4L2_H264_SPS_CONSTRAINT_SET4_FLAG`` 13162306a36Sopenharmony_ci - 0x00000010 13262306a36Sopenharmony_ci - 13362306a36Sopenharmony_ci * - ``V4L2_H264_SPS_CONSTRAINT_SET5_FLAG`` 13462306a36Sopenharmony_ci - 0x00000020 13562306a36Sopenharmony_ci - 13662306a36Sopenharmony_ci 13762306a36Sopenharmony_ci.. _h264_sps_flags: 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ci``Sequence Parameter Set Flags`` 14062306a36Sopenharmony_ci 14162306a36Sopenharmony_ci.. cssclass:: longtable 14262306a36Sopenharmony_ci 14362306a36Sopenharmony_ci.. flat-table:: 14462306a36Sopenharmony_ci :header-rows: 0 14562306a36Sopenharmony_ci :stub-columns: 0 14662306a36Sopenharmony_ci :widths: 1 1 2 14762306a36Sopenharmony_ci 14862306a36Sopenharmony_ci * - ``V4L2_H264_SPS_FLAG_SEPARATE_COLOUR_PLANE`` 14962306a36Sopenharmony_ci - 0x00000001 15062306a36Sopenharmony_ci - 15162306a36Sopenharmony_ci * - ``V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TRANSFORM_BYPASS`` 15262306a36Sopenharmony_ci - 0x00000002 15362306a36Sopenharmony_ci - 15462306a36Sopenharmony_ci * - ``V4L2_H264_SPS_FLAG_DELTA_PIC_ORDER_ALWAYS_ZERO`` 15562306a36Sopenharmony_ci - 0x00000004 15662306a36Sopenharmony_ci - 15762306a36Sopenharmony_ci * - ``V4L2_H264_SPS_FLAG_GAPS_IN_FRAME_NUM_VALUE_ALLOWED`` 15862306a36Sopenharmony_ci - 0x00000008 15962306a36Sopenharmony_ci - 16062306a36Sopenharmony_ci * - ``V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY`` 16162306a36Sopenharmony_ci - 0x00000010 16262306a36Sopenharmony_ci - 16362306a36Sopenharmony_ci * - ``V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD`` 16462306a36Sopenharmony_ci - 0x00000020 16562306a36Sopenharmony_ci - 16662306a36Sopenharmony_ci * - ``V4L2_H264_SPS_FLAG_DIRECT_8X8_INFERENCE`` 16762306a36Sopenharmony_ci - 0x00000040 16862306a36Sopenharmony_ci - 16962306a36Sopenharmony_ci 17062306a36Sopenharmony_ci``V4L2_CID_STATELESS_H264_PPS (struct)`` 17162306a36Sopenharmony_ci Specifies the picture parameter set (as extracted from the 17262306a36Sopenharmony_ci bitstream) for the associated H264 slice data. This includes the 17362306a36Sopenharmony_ci necessary parameters for configuring a stateless hardware decoding 17462306a36Sopenharmony_ci pipeline for H264. The bitstream parameters are defined according 17562306a36Sopenharmony_ci to :ref:`h264`, section 7.4.2.2 "Picture Parameter Set RBSP 17662306a36Sopenharmony_ci Semantics". For further documentation, refer to the above 17762306a36Sopenharmony_ci specification, unless there is an explicit comment stating 17862306a36Sopenharmony_ci otherwise. 17962306a36Sopenharmony_ci 18062306a36Sopenharmony_ci.. c:type:: v4l2_ctrl_h264_pps 18162306a36Sopenharmony_ci 18262306a36Sopenharmony_ci.. raw:: latex 18362306a36Sopenharmony_ci 18462306a36Sopenharmony_ci \small 18562306a36Sopenharmony_ci 18662306a36Sopenharmony_ci.. flat-table:: struct v4l2_ctrl_h264_pps 18762306a36Sopenharmony_ci :header-rows: 0 18862306a36Sopenharmony_ci :stub-columns: 0 18962306a36Sopenharmony_ci :widths: 1 1 2 19062306a36Sopenharmony_ci 19162306a36Sopenharmony_ci * - __u8 19262306a36Sopenharmony_ci - ``pic_parameter_set_id`` 19362306a36Sopenharmony_ci - 19462306a36Sopenharmony_ci * - __u8 19562306a36Sopenharmony_ci - ``seq_parameter_set_id`` 19662306a36Sopenharmony_ci - 19762306a36Sopenharmony_ci * - __u8 19862306a36Sopenharmony_ci - ``num_slice_groups_minus1`` 19962306a36Sopenharmony_ci - 20062306a36Sopenharmony_ci * - __u8 20162306a36Sopenharmony_ci - ``num_ref_idx_l0_default_active_minus1`` 20262306a36Sopenharmony_ci - 20362306a36Sopenharmony_ci * - __u8 20462306a36Sopenharmony_ci - ``num_ref_idx_l1_default_active_minus1`` 20562306a36Sopenharmony_ci - 20662306a36Sopenharmony_ci * - __u8 20762306a36Sopenharmony_ci - ``weighted_bipred_idc`` 20862306a36Sopenharmony_ci - 20962306a36Sopenharmony_ci * - __s8 21062306a36Sopenharmony_ci - ``pic_init_qp_minus26`` 21162306a36Sopenharmony_ci - 21262306a36Sopenharmony_ci * - __s8 21362306a36Sopenharmony_ci - ``pic_init_qs_minus26`` 21462306a36Sopenharmony_ci - 21562306a36Sopenharmony_ci * - __s8 21662306a36Sopenharmony_ci - ``chroma_qp_index_offset`` 21762306a36Sopenharmony_ci - 21862306a36Sopenharmony_ci * - __s8 21962306a36Sopenharmony_ci - ``second_chroma_qp_index_offset`` 22062306a36Sopenharmony_ci - 22162306a36Sopenharmony_ci * - __u16 22262306a36Sopenharmony_ci - ``flags`` 22362306a36Sopenharmony_ci - See :ref:`Picture Parameter Set Flags <h264_pps_flags>` 22462306a36Sopenharmony_ci 22562306a36Sopenharmony_ci.. raw:: latex 22662306a36Sopenharmony_ci 22762306a36Sopenharmony_ci \normalsize 22862306a36Sopenharmony_ci 22962306a36Sopenharmony_ci.. _h264_pps_flags: 23062306a36Sopenharmony_ci 23162306a36Sopenharmony_ci``Picture Parameter Set Flags`` 23262306a36Sopenharmony_ci 23362306a36Sopenharmony_ci.. raw:: latex 23462306a36Sopenharmony_ci 23562306a36Sopenharmony_ci \begingroup 23662306a36Sopenharmony_ci \scriptsize 23762306a36Sopenharmony_ci \setlength{\tabcolsep}{2pt} 23862306a36Sopenharmony_ci 23962306a36Sopenharmony_ci.. tabularcolumns:: |p{9.8cm}|p{1.0cm}|p{6.5cm}| 24062306a36Sopenharmony_ci 24162306a36Sopenharmony_ci.. flat-table:: 24262306a36Sopenharmony_ci :header-rows: 0 24362306a36Sopenharmony_ci :stub-columns: 0 24462306a36Sopenharmony_ci :widths: 10 1 4 24562306a36Sopenharmony_ci 24662306a36Sopenharmony_ci * - ``V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE`` 24762306a36Sopenharmony_ci - 0x0001 24862306a36Sopenharmony_ci - 24962306a36Sopenharmony_ci * - ``V4L2_H264_PPS_FLAG_BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT`` 25062306a36Sopenharmony_ci - 0x0002 25162306a36Sopenharmony_ci - 25262306a36Sopenharmony_ci * - ``V4L2_H264_PPS_FLAG_WEIGHTED_PRED`` 25362306a36Sopenharmony_ci - 0x0004 25462306a36Sopenharmony_ci - 25562306a36Sopenharmony_ci * - ``V4L2_H264_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT`` 25662306a36Sopenharmony_ci - 0x0008 25762306a36Sopenharmony_ci - 25862306a36Sopenharmony_ci * - ``V4L2_H264_PPS_FLAG_CONSTRAINED_INTRA_PRED`` 25962306a36Sopenharmony_ci - 0x0010 26062306a36Sopenharmony_ci - 26162306a36Sopenharmony_ci * - ``V4L2_H264_PPS_FLAG_REDUNDANT_PIC_CNT_PRESENT`` 26262306a36Sopenharmony_ci - 0x0020 26362306a36Sopenharmony_ci - 26462306a36Sopenharmony_ci * - ``V4L2_H264_PPS_FLAG_TRANSFORM_8X8_MODE`` 26562306a36Sopenharmony_ci - 0x0040 26662306a36Sopenharmony_ci - 26762306a36Sopenharmony_ci * - ``V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT`` 26862306a36Sopenharmony_ci - 0x0080 26962306a36Sopenharmony_ci - ``V4L2_CID_STATELESS_H264_SCALING_MATRIX`` 27062306a36Sopenharmony_ci must be used for this picture. 27162306a36Sopenharmony_ci 27262306a36Sopenharmony_ci.. raw:: latex 27362306a36Sopenharmony_ci 27462306a36Sopenharmony_ci \endgroup 27562306a36Sopenharmony_ci 27662306a36Sopenharmony_ci``V4L2_CID_STATELESS_H264_SCALING_MATRIX (struct)`` 27762306a36Sopenharmony_ci Specifies the scaling matrix (as extracted from the bitstream) for 27862306a36Sopenharmony_ci the associated H264 slice data. The bitstream parameters are 27962306a36Sopenharmony_ci defined according to :ref:`h264`, section 7.4.2.1.1.1 "Scaling 28062306a36Sopenharmony_ci List Semantics". For further documentation, refer to the above 28162306a36Sopenharmony_ci specification, unless there is an explicit comment stating 28262306a36Sopenharmony_ci otherwise. 28362306a36Sopenharmony_ci 28462306a36Sopenharmony_ci.. c:type:: v4l2_ctrl_h264_scaling_matrix 28562306a36Sopenharmony_ci 28662306a36Sopenharmony_ci.. raw:: latex 28762306a36Sopenharmony_ci 28862306a36Sopenharmony_ci \small 28962306a36Sopenharmony_ci 29062306a36Sopenharmony_ci.. tabularcolumns:: |p{0.6cm}|p{4.8cm}|p{11.9cm}| 29162306a36Sopenharmony_ci 29262306a36Sopenharmony_ci.. flat-table:: struct v4l2_ctrl_h264_scaling_matrix 29362306a36Sopenharmony_ci :header-rows: 0 29462306a36Sopenharmony_ci :stub-columns: 0 29562306a36Sopenharmony_ci :widths: 1 1 2 29662306a36Sopenharmony_ci 29762306a36Sopenharmony_ci * - __u8 29862306a36Sopenharmony_ci - ``scaling_list_4x4[6][16]`` 29962306a36Sopenharmony_ci - Scaling matrix after applying the inverse scanning process. 30062306a36Sopenharmony_ci Expected list order is Intra Y, Intra Cb, Intra Cr, Inter Y, 30162306a36Sopenharmony_ci Inter Cb, Inter Cr. The values on each scaling list are 30262306a36Sopenharmony_ci expected in raster scan order. 30362306a36Sopenharmony_ci * - __u8 30462306a36Sopenharmony_ci - ``scaling_list_8x8[6][64]`` 30562306a36Sopenharmony_ci - Scaling matrix after applying the inverse scanning process. 30662306a36Sopenharmony_ci Expected list order is Intra Y, Inter Y, Intra Cb, Inter Cb, 30762306a36Sopenharmony_ci Intra Cr, Inter Cr. The values on each scaling list are 30862306a36Sopenharmony_ci expected in raster scan order. 30962306a36Sopenharmony_ci 31062306a36Sopenharmony_ci``V4L2_CID_STATELESS_H264_SLICE_PARAMS (struct)`` 31162306a36Sopenharmony_ci Specifies the slice parameters (as extracted from the bitstream) 31262306a36Sopenharmony_ci for the associated H264 slice data. This includes the necessary 31362306a36Sopenharmony_ci parameters for configuring a stateless hardware decoding pipeline 31462306a36Sopenharmony_ci for H264. The bitstream parameters are defined according to 31562306a36Sopenharmony_ci :ref:`h264`, section 7.4.3 "Slice Header Semantics". For further 31662306a36Sopenharmony_ci documentation, refer to the above specification, unless there is 31762306a36Sopenharmony_ci an explicit comment stating otherwise. 31862306a36Sopenharmony_ci 31962306a36Sopenharmony_ci.. c:type:: v4l2_ctrl_h264_slice_params 32062306a36Sopenharmony_ci 32162306a36Sopenharmony_ci.. raw:: latex 32262306a36Sopenharmony_ci 32362306a36Sopenharmony_ci \small 32462306a36Sopenharmony_ci 32562306a36Sopenharmony_ci.. tabularcolumns:: |p{4.0cm}|p{5.9cm}|p{7.4cm}| 32662306a36Sopenharmony_ci 32762306a36Sopenharmony_ci.. flat-table:: struct v4l2_ctrl_h264_slice_params 32862306a36Sopenharmony_ci :header-rows: 0 32962306a36Sopenharmony_ci :stub-columns: 0 33062306a36Sopenharmony_ci :widths: 1 1 2 33162306a36Sopenharmony_ci 33262306a36Sopenharmony_ci * - __u32 33362306a36Sopenharmony_ci - ``header_bit_size`` 33462306a36Sopenharmony_ci - Offset in bits to slice_data() from the beginning of this slice. 33562306a36Sopenharmony_ci * - __u32 33662306a36Sopenharmony_ci - ``first_mb_in_slice`` 33762306a36Sopenharmony_ci - 33862306a36Sopenharmony_ci * - __u8 33962306a36Sopenharmony_ci - ``slice_type`` 34062306a36Sopenharmony_ci - 34162306a36Sopenharmony_ci * - __u8 34262306a36Sopenharmony_ci - ``colour_plane_id`` 34362306a36Sopenharmony_ci - 34462306a36Sopenharmony_ci * - __u8 34562306a36Sopenharmony_ci - ``redundant_pic_cnt`` 34662306a36Sopenharmony_ci - 34762306a36Sopenharmony_ci * - __u8 34862306a36Sopenharmony_ci - ``cabac_init_idc`` 34962306a36Sopenharmony_ci - 35062306a36Sopenharmony_ci * - __s8 35162306a36Sopenharmony_ci - ``slice_qp_delta`` 35262306a36Sopenharmony_ci - 35362306a36Sopenharmony_ci * - __s8 35462306a36Sopenharmony_ci - ``slice_qs_delta`` 35562306a36Sopenharmony_ci - 35662306a36Sopenharmony_ci * - __u8 35762306a36Sopenharmony_ci - ``disable_deblocking_filter_idc`` 35862306a36Sopenharmony_ci - 35962306a36Sopenharmony_ci * - __s8 36062306a36Sopenharmony_ci - ``slice_alpha_c0_offset_div2`` 36162306a36Sopenharmony_ci - 36262306a36Sopenharmony_ci * - __s8 36362306a36Sopenharmony_ci - ``slice_beta_offset_div2`` 36462306a36Sopenharmony_ci - 36562306a36Sopenharmony_ci * - __u8 36662306a36Sopenharmony_ci - ``num_ref_idx_l0_active_minus1`` 36762306a36Sopenharmony_ci - If num_ref_idx_active_override_flag is not set, this field must be 36862306a36Sopenharmony_ci set to the value of num_ref_idx_l0_default_active_minus1 36962306a36Sopenharmony_ci * - __u8 37062306a36Sopenharmony_ci - ``num_ref_idx_l1_active_minus1`` 37162306a36Sopenharmony_ci - If num_ref_idx_active_override_flag is not set, this field must be 37262306a36Sopenharmony_ci set to the value of num_ref_idx_l1_default_active_minus1 37362306a36Sopenharmony_ci * - __u8 37462306a36Sopenharmony_ci - ``reserved`` 37562306a36Sopenharmony_ci - Applications and drivers must set this to zero. 37662306a36Sopenharmony_ci * - struct :c:type:`v4l2_h264_reference` 37762306a36Sopenharmony_ci - ``ref_pic_list0[32]`` 37862306a36Sopenharmony_ci - Reference picture list after applying the per-slice modifications 37962306a36Sopenharmony_ci * - struct :c:type:`v4l2_h264_reference` 38062306a36Sopenharmony_ci - ``ref_pic_list1[32]`` 38162306a36Sopenharmony_ci - Reference picture list after applying the per-slice modifications 38262306a36Sopenharmony_ci * - __u32 38362306a36Sopenharmony_ci - ``flags`` 38462306a36Sopenharmony_ci - See :ref:`Slice Parameter Flags <h264_slice_flags>` 38562306a36Sopenharmony_ci 38662306a36Sopenharmony_ci.. raw:: latex 38762306a36Sopenharmony_ci 38862306a36Sopenharmony_ci \normalsize 38962306a36Sopenharmony_ci 39062306a36Sopenharmony_ci.. _h264_slice_flags: 39162306a36Sopenharmony_ci 39262306a36Sopenharmony_ci``Slice Parameter Set Flags`` 39362306a36Sopenharmony_ci 39462306a36Sopenharmony_ci.. cssclass:: longtable 39562306a36Sopenharmony_ci 39662306a36Sopenharmony_ci.. flat-table:: 39762306a36Sopenharmony_ci :header-rows: 0 39862306a36Sopenharmony_ci :stub-columns: 0 39962306a36Sopenharmony_ci :widths: 1 1 2 40062306a36Sopenharmony_ci 40162306a36Sopenharmony_ci * - ``V4L2_H264_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED`` 40262306a36Sopenharmony_ci - 0x00000001 40362306a36Sopenharmony_ci - 40462306a36Sopenharmony_ci * - ``V4L2_H264_SLICE_FLAG_SP_FOR_SWITCH`` 40562306a36Sopenharmony_ci - 0x00000002 40662306a36Sopenharmony_ci - 40762306a36Sopenharmony_ci 40862306a36Sopenharmony_ci``V4L2_CID_STATELESS_H264_PRED_WEIGHTS (struct)`` 40962306a36Sopenharmony_ci Prediction weight table defined according to :ref:`h264`, 41062306a36Sopenharmony_ci section 7.4.3.2 "Prediction Weight Table Semantics". 41162306a36Sopenharmony_ci The prediction weight table must be passed by applications 41262306a36Sopenharmony_ci under the conditions explained in section 7.3.3 "Slice header 41362306a36Sopenharmony_ci syntax". 41462306a36Sopenharmony_ci 41562306a36Sopenharmony_ci.. c:type:: v4l2_ctrl_h264_pred_weights 41662306a36Sopenharmony_ci 41762306a36Sopenharmony_ci.. raw:: latex 41862306a36Sopenharmony_ci 41962306a36Sopenharmony_ci \small 42062306a36Sopenharmony_ci 42162306a36Sopenharmony_ci.. tabularcolumns:: |p{4.9cm}|p{4.9cm}|p{7.5cm}| 42262306a36Sopenharmony_ci 42362306a36Sopenharmony_ci.. flat-table:: struct v4l2_ctrl_h264_pred_weights 42462306a36Sopenharmony_ci :header-rows: 0 42562306a36Sopenharmony_ci :stub-columns: 0 42662306a36Sopenharmony_ci :widths: 1 1 2 42762306a36Sopenharmony_ci 42862306a36Sopenharmony_ci * - __u16 42962306a36Sopenharmony_ci - ``luma_log2_weight_denom`` 43062306a36Sopenharmony_ci - 43162306a36Sopenharmony_ci * - __u16 43262306a36Sopenharmony_ci - ``chroma_log2_weight_denom`` 43362306a36Sopenharmony_ci - 43462306a36Sopenharmony_ci * - struct :c:type:`v4l2_h264_weight_factors` 43562306a36Sopenharmony_ci - ``weight_factors[2]`` 43662306a36Sopenharmony_ci - The weight factors at index 0 are the weight factors for the reference 43762306a36Sopenharmony_ci list 0, the one at index 1 for the reference list 1. 43862306a36Sopenharmony_ci 43962306a36Sopenharmony_ci.. raw:: latex 44062306a36Sopenharmony_ci 44162306a36Sopenharmony_ci \normalsize 44262306a36Sopenharmony_ci 44362306a36Sopenharmony_ci.. c:type:: v4l2_h264_weight_factors 44462306a36Sopenharmony_ci 44562306a36Sopenharmony_ci.. raw:: latex 44662306a36Sopenharmony_ci 44762306a36Sopenharmony_ci \small 44862306a36Sopenharmony_ci 44962306a36Sopenharmony_ci.. tabularcolumns:: |p{1.0cm}|p{4.5cm}|p{11.8cm}| 45062306a36Sopenharmony_ci 45162306a36Sopenharmony_ci.. flat-table:: struct v4l2_h264_weight_factors 45262306a36Sopenharmony_ci :header-rows: 0 45362306a36Sopenharmony_ci :stub-columns: 0 45462306a36Sopenharmony_ci :widths: 1 1 2 45562306a36Sopenharmony_ci 45662306a36Sopenharmony_ci * - __s16 45762306a36Sopenharmony_ci - ``luma_weight[32]`` 45862306a36Sopenharmony_ci - 45962306a36Sopenharmony_ci * - __s16 46062306a36Sopenharmony_ci - ``luma_offset[32]`` 46162306a36Sopenharmony_ci - 46262306a36Sopenharmony_ci * - __s16 46362306a36Sopenharmony_ci - ``chroma_weight[32][2]`` 46462306a36Sopenharmony_ci - 46562306a36Sopenharmony_ci * - __s16 46662306a36Sopenharmony_ci - ``chroma_offset[32][2]`` 46762306a36Sopenharmony_ci - 46862306a36Sopenharmony_ci 46962306a36Sopenharmony_ci.. raw:: latex 47062306a36Sopenharmony_ci 47162306a36Sopenharmony_ci \normalsize 47262306a36Sopenharmony_ci 47362306a36Sopenharmony_ci``Picture Reference`` 47462306a36Sopenharmony_ci 47562306a36Sopenharmony_ci.. c:type:: v4l2_h264_reference 47662306a36Sopenharmony_ci 47762306a36Sopenharmony_ci.. cssclass:: longtable 47862306a36Sopenharmony_ci 47962306a36Sopenharmony_ci.. flat-table:: struct v4l2_h264_reference 48062306a36Sopenharmony_ci :header-rows: 0 48162306a36Sopenharmony_ci :stub-columns: 0 48262306a36Sopenharmony_ci :widths: 1 1 2 48362306a36Sopenharmony_ci 48462306a36Sopenharmony_ci * - __u8 48562306a36Sopenharmony_ci - ``fields`` 48662306a36Sopenharmony_ci - Specifies how the picture is referenced. See :ref:`Reference Fields <h264_ref_fields>` 48762306a36Sopenharmony_ci * - __u8 48862306a36Sopenharmony_ci - ``index`` 48962306a36Sopenharmony_ci - Index into the :c:type:`v4l2_ctrl_h264_decode_params`.dpb array. 49062306a36Sopenharmony_ci 49162306a36Sopenharmony_ci.. _h264_ref_fields: 49262306a36Sopenharmony_ci 49362306a36Sopenharmony_ci``Reference Fields`` 49462306a36Sopenharmony_ci 49562306a36Sopenharmony_ci.. raw:: latex 49662306a36Sopenharmony_ci 49762306a36Sopenharmony_ci \small 49862306a36Sopenharmony_ci 49962306a36Sopenharmony_ci.. tabularcolumns:: |p{5.4cm}|p{0.8cm}|p{11.1cm}| 50062306a36Sopenharmony_ci 50162306a36Sopenharmony_ci.. flat-table:: 50262306a36Sopenharmony_ci :header-rows: 0 50362306a36Sopenharmony_ci :stub-columns: 0 50462306a36Sopenharmony_ci :widths: 1 1 2 50562306a36Sopenharmony_ci 50662306a36Sopenharmony_ci * - ``V4L2_H264_TOP_FIELD_REF`` 50762306a36Sopenharmony_ci - 0x1 50862306a36Sopenharmony_ci - The top field in field pair is used for short-term reference. 50962306a36Sopenharmony_ci * - ``V4L2_H264_BOTTOM_FIELD_REF`` 51062306a36Sopenharmony_ci - 0x2 51162306a36Sopenharmony_ci - The bottom field in field pair is used for short-term reference. 51262306a36Sopenharmony_ci * - ``V4L2_H264_FRAME_REF`` 51362306a36Sopenharmony_ci - 0x3 51462306a36Sopenharmony_ci - The frame (or the top/bottom fields, if it's a field pair) 51562306a36Sopenharmony_ci is used for short-term reference. 51662306a36Sopenharmony_ci 51762306a36Sopenharmony_ci.. raw:: latex 51862306a36Sopenharmony_ci 51962306a36Sopenharmony_ci \normalsize 52062306a36Sopenharmony_ci 52162306a36Sopenharmony_ci``V4L2_CID_STATELESS_H264_DECODE_PARAMS (struct)`` 52262306a36Sopenharmony_ci Specifies the decode parameters (as extracted from the bitstream) 52362306a36Sopenharmony_ci for the associated H264 slice data. This includes the necessary 52462306a36Sopenharmony_ci parameters for configuring a stateless hardware decoding pipeline 52562306a36Sopenharmony_ci for H264. The bitstream parameters are defined according to 52662306a36Sopenharmony_ci :ref:`h264`. For further documentation, refer to the above 52762306a36Sopenharmony_ci specification, unless there is an explicit comment stating 52862306a36Sopenharmony_ci otherwise. 52962306a36Sopenharmony_ci 53062306a36Sopenharmony_ci.. c:type:: v4l2_ctrl_h264_decode_params 53162306a36Sopenharmony_ci 53262306a36Sopenharmony_ci.. raw:: latex 53362306a36Sopenharmony_ci 53462306a36Sopenharmony_ci \small 53562306a36Sopenharmony_ci 53662306a36Sopenharmony_ci.. tabularcolumns:: |p{4.0cm}|p{5.9cm}|p{7.4cm}| 53762306a36Sopenharmony_ci 53862306a36Sopenharmony_ci.. flat-table:: struct v4l2_ctrl_h264_decode_params 53962306a36Sopenharmony_ci :header-rows: 0 54062306a36Sopenharmony_ci :stub-columns: 0 54162306a36Sopenharmony_ci :widths: 1 1 2 54262306a36Sopenharmony_ci 54362306a36Sopenharmony_ci * - struct :c:type:`v4l2_h264_dpb_entry` 54462306a36Sopenharmony_ci - ``dpb[16]`` 54562306a36Sopenharmony_ci - 54662306a36Sopenharmony_ci * - __u16 54762306a36Sopenharmony_ci - ``nal_ref_idc`` 54862306a36Sopenharmony_ci - NAL reference ID value coming from the NAL Unit header 54962306a36Sopenharmony_ci * - __u16 55062306a36Sopenharmony_ci - ``frame_num`` 55162306a36Sopenharmony_ci - 55262306a36Sopenharmony_ci * - __s32 55362306a36Sopenharmony_ci - ``top_field_order_cnt`` 55462306a36Sopenharmony_ci - Picture Order Count for the coded top field 55562306a36Sopenharmony_ci * - __s32 55662306a36Sopenharmony_ci - ``bottom_field_order_cnt`` 55762306a36Sopenharmony_ci - Picture Order Count for the coded bottom field 55862306a36Sopenharmony_ci * - __u16 55962306a36Sopenharmony_ci - ``idr_pic_id`` 56062306a36Sopenharmony_ci - 56162306a36Sopenharmony_ci * - __u16 56262306a36Sopenharmony_ci - ``pic_order_cnt_lsb`` 56362306a36Sopenharmony_ci - 56462306a36Sopenharmony_ci * - __s32 56562306a36Sopenharmony_ci - ``delta_pic_order_cnt_bottom`` 56662306a36Sopenharmony_ci - 56762306a36Sopenharmony_ci * - __s32 56862306a36Sopenharmony_ci - ``delta_pic_order_cnt0`` 56962306a36Sopenharmony_ci - 57062306a36Sopenharmony_ci * - __s32 57162306a36Sopenharmony_ci - ``delta_pic_order_cnt1`` 57262306a36Sopenharmony_ci - 57362306a36Sopenharmony_ci * - __u32 57462306a36Sopenharmony_ci - ``dec_ref_pic_marking_bit_size`` 57562306a36Sopenharmony_ci - Size in bits of the dec_ref_pic_marking() syntax element. 57662306a36Sopenharmony_ci * - __u32 57762306a36Sopenharmony_ci - ``pic_order_cnt_bit_size`` 57862306a36Sopenharmony_ci - Combined size in bits of the picture order count related syntax 57962306a36Sopenharmony_ci elements: pic_order_cnt_lsb, delta_pic_order_cnt_bottom, 58062306a36Sopenharmony_ci delta_pic_order_cnt0, and delta_pic_order_cnt1. 58162306a36Sopenharmony_ci * - __u32 58262306a36Sopenharmony_ci - ``slice_group_change_cycle`` 58362306a36Sopenharmony_ci - 58462306a36Sopenharmony_ci * - __u32 58562306a36Sopenharmony_ci - ``reserved`` 58662306a36Sopenharmony_ci - Applications and drivers must set this to zero. 58762306a36Sopenharmony_ci * - __u32 58862306a36Sopenharmony_ci - ``flags`` 58962306a36Sopenharmony_ci - See :ref:`Decode Parameters Flags <h264_decode_params_flags>` 59062306a36Sopenharmony_ci 59162306a36Sopenharmony_ci.. raw:: latex 59262306a36Sopenharmony_ci 59362306a36Sopenharmony_ci \normalsize 59462306a36Sopenharmony_ci 59562306a36Sopenharmony_ci.. _h264_decode_params_flags: 59662306a36Sopenharmony_ci 59762306a36Sopenharmony_ci``Decode Parameters Flags`` 59862306a36Sopenharmony_ci 59962306a36Sopenharmony_ci.. raw:: latex 60062306a36Sopenharmony_ci 60162306a36Sopenharmony_ci \small 60262306a36Sopenharmony_ci 60362306a36Sopenharmony_ci.. tabularcolumns:: |p{8.3cm}|p{2.1cm}|p{6.9cm}| 60462306a36Sopenharmony_ci 60562306a36Sopenharmony_ci.. flat-table:: 60662306a36Sopenharmony_ci :header-rows: 0 60762306a36Sopenharmony_ci :stub-columns: 0 60862306a36Sopenharmony_ci :widths: 1 1 2 60962306a36Sopenharmony_ci 61062306a36Sopenharmony_ci * - ``V4L2_H264_DECODE_PARAM_FLAG_IDR_PIC`` 61162306a36Sopenharmony_ci - 0x00000001 61262306a36Sopenharmony_ci - That picture is an IDR picture 61362306a36Sopenharmony_ci * - ``V4L2_H264_DECODE_PARAM_FLAG_FIELD_PIC`` 61462306a36Sopenharmony_ci - 0x00000002 61562306a36Sopenharmony_ci - 61662306a36Sopenharmony_ci * - ``V4L2_H264_DECODE_PARAM_FLAG_BOTTOM_FIELD`` 61762306a36Sopenharmony_ci - 0x00000004 61862306a36Sopenharmony_ci - 61962306a36Sopenharmony_ci * - ``V4L2_H264_DECODE_PARAM_FLAG_PFRAME`` 62062306a36Sopenharmony_ci - 0x00000008 62162306a36Sopenharmony_ci - 62262306a36Sopenharmony_ci * - ``V4L2_H264_DECODE_PARAM_FLAG_BFRAME`` 62362306a36Sopenharmony_ci - 0x00000010 62462306a36Sopenharmony_ci - 62562306a36Sopenharmony_ci 62662306a36Sopenharmony_ci.. raw:: latex 62762306a36Sopenharmony_ci 62862306a36Sopenharmony_ci \normalsize 62962306a36Sopenharmony_ci 63062306a36Sopenharmony_ci.. c:type:: v4l2_h264_dpb_entry 63162306a36Sopenharmony_ci 63262306a36Sopenharmony_ci.. raw:: latex 63362306a36Sopenharmony_ci 63462306a36Sopenharmony_ci \small 63562306a36Sopenharmony_ci 63662306a36Sopenharmony_ci.. tabularcolumns:: |p{1.0cm}|p{4.9cm}|p{11.4cm}| 63762306a36Sopenharmony_ci 63862306a36Sopenharmony_ci.. flat-table:: struct v4l2_h264_dpb_entry 63962306a36Sopenharmony_ci :header-rows: 0 64062306a36Sopenharmony_ci :stub-columns: 0 64162306a36Sopenharmony_ci :widths: 1 1 2 64262306a36Sopenharmony_ci 64362306a36Sopenharmony_ci * - __u64 64462306a36Sopenharmony_ci - ``reference_ts`` 64562306a36Sopenharmony_ci - Timestamp of the V4L2 capture buffer to use as reference, used 64662306a36Sopenharmony_ci with B-coded and P-coded frames. The timestamp refers to the 64762306a36Sopenharmony_ci ``timestamp`` field in struct :c:type:`v4l2_buffer`. Use the 64862306a36Sopenharmony_ci :c:func:`v4l2_timeval_to_ns()` function to convert the struct 64962306a36Sopenharmony_ci :c:type:`timeval` in struct :c:type:`v4l2_buffer` to a __u64. 65062306a36Sopenharmony_ci * - __u32 65162306a36Sopenharmony_ci - ``pic_num`` 65262306a36Sopenharmony_ci - For short term references, this must match the derived value PicNum 65362306a36Sopenharmony_ci (8-28) and for long term references it must match the derived value 65462306a36Sopenharmony_ci LongTermPicNum (8-29). When decoding frames (as opposed to fields) 65562306a36Sopenharmony_ci pic_num is the same as FrameNumWrap. 65662306a36Sopenharmony_ci * - __u16 65762306a36Sopenharmony_ci - ``frame_num`` 65862306a36Sopenharmony_ci - For short term references, this must match the frame_num value from 65962306a36Sopenharmony_ci the slice header syntax (the driver will wrap the value if needed). For 66062306a36Sopenharmony_ci long term references, this must be set to the value of 66162306a36Sopenharmony_ci long_term_frame_idx described in the dec_ref_pic_marking() syntax. 66262306a36Sopenharmony_ci * - __u8 66362306a36Sopenharmony_ci - ``fields`` 66462306a36Sopenharmony_ci - Specifies how the DPB entry is referenced. See :ref:`Reference Fields <h264_ref_fields>` 66562306a36Sopenharmony_ci * - __u8 66662306a36Sopenharmony_ci - ``reserved[5]`` 66762306a36Sopenharmony_ci - Applications and drivers must set this to zero. 66862306a36Sopenharmony_ci * - __s32 66962306a36Sopenharmony_ci - ``top_field_order_cnt`` 67062306a36Sopenharmony_ci - 67162306a36Sopenharmony_ci * - __s32 67262306a36Sopenharmony_ci - ``bottom_field_order_cnt`` 67362306a36Sopenharmony_ci - 67462306a36Sopenharmony_ci * - __u32 67562306a36Sopenharmony_ci - ``flags`` 67662306a36Sopenharmony_ci - See :ref:`DPB Entry Flags <h264_dpb_flags>` 67762306a36Sopenharmony_ci 67862306a36Sopenharmony_ci.. raw:: latex 67962306a36Sopenharmony_ci 68062306a36Sopenharmony_ci \normalsize 68162306a36Sopenharmony_ci 68262306a36Sopenharmony_ci.. _h264_dpb_flags: 68362306a36Sopenharmony_ci 68462306a36Sopenharmony_ci``DPB Entries Flags`` 68562306a36Sopenharmony_ci 68662306a36Sopenharmony_ci.. raw:: latex 68762306a36Sopenharmony_ci 68862306a36Sopenharmony_ci \small 68962306a36Sopenharmony_ci 69062306a36Sopenharmony_ci.. tabularcolumns:: |p{7.7cm}|p{2.1cm}|p{7.5cm}| 69162306a36Sopenharmony_ci 69262306a36Sopenharmony_ci.. flat-table:: 69362306a36Sopenharmony_ci :header-rows: 0 69462306a36Sopenharmony_ci :stub-columns: 0 69562306a36Sopenharmony_ci :widths: 1 1 2 69662306a36Sopenharmony_ci 69762306a36Sopenharmony_ci * - ``V4L2_H264_DPB_ENTRY_FLAG_VALID`` 69862306a36Sopenharmony_ci - 0x00000001 69962306a36Sopenharmony_ci - The DPB entry is valid (non-empty) and should be considered. 70062306a36Sopenharmony_ci * - ``V4L2_H264_DPB_ENTRY_FLAG_ACTIVE`` 70162306a36Sopenharmony_ci - 0x00000002 70262306a36Sopenharmony_ci - The DPB entry is used for reference. 70362306a36Sopenharmony_ci * - ``V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM`` 70462306a36Sopenharmony_ci - 0x00000004 70562306a36Sopenharmony_ci - The DPB entry is used for long-term reference. 70662306a36Sopenharmony_ci * - ``V4L2_H264_DPB_ENTRY_FLAG_FIELD`` 70762306a36Sopenharmony_ci - 0x00000008 70862306a36Sopenharmony_ci - The DPB entry is a single field or a complementary field pair. 70962306a36Sopenharmony_ci 71062306a36Sopenharmony_ci.. raw:: latex 71162306a36Sopenharmony_ci 71262306a36Sopenharmony_ci \normalsize 71362306a36Sopenharmony_ci 71462306a36Sopenharmony_ci``V4L2_CID_STATELESS_H264_DECODE_MODE (enum)`` 71562306a36Sopenharmony_ci Specifies the decoding mode to use. Currently exposes slice-based and 71662306a36Sopenharmony_ci frame-based decoding but new modes might be added later on. 71762306a36Sopenharmony_ci This control is used as a modifier for V4L2_PIX_FMT_H264_SLICE 71862306a36Sopenharmony_ci pixel format. Applications that support V4L2_PIX_FMT_H264_SLICE 71962306a36Sopenharmony_ci are required to set this control in order to specify the decoding mode 72062306a36Sopenharmony_ci that is expected for the buffer. 72162306a36Sopenharmony_ci Drivers may expose a single or multiple decoding modes, depending 72262306a36Sopenharmony_ci on what they can support. 72362306a36Sopenharmony_ci 72462306a36Sopenharmony_ci.. c:type:: v4l2_stateless_h264_decode_mode 72562306a36Sopenharmony_ci 72662306a36Sopenharmony_ci.. raw:: latex 72762306a36Sopenharmony_ci 72862306a36Sopenharmony_ci \scriptsize 72962306a36Sopenharmony_ci 73062306a36Sopenharmony_ci.. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| 73162306a36Sopenharmony_ci 73262306a36Sopenharmony_ci.. flat-table:: 73362306a36Sopenharmony_ci :header-rows: 0 73462306a36Sopenharmony_ci :stub-columns: 0 73562306a36Sopenharmony_ci :widths: 1 1 2 73662306a36Sopenharmony_ci 73762306a36Sopenharmony_ci * - ``V4L2_STATELESS_H264_DECODE_MODE_SLICE_BASED`` 73862306a36Sopenharmony_ci - 0 73962306a36Sopenharmony_ci - Decoding is done at the slice granularity. 74062306a36Sopenharmony_ci The OUTPUT buffer must contain a single slice. 74162306a36Sopenharmony_ci When this mode is selected, the ``V4L2_CID_STATELESS_H264_SLICE_PARAMS`` 74262306a36Sopenharmony_ci control shall be set. When multiple slices compose a frame, 74362306a36Sopenharmony_ci use of ``V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF`` flag 74462306a36Sopenharmony_ci is required. 74562306a36Sopenharmony_ci * - ``V4L2_STATELESS_H264_DECODE_MODE_FRAME_BASED`` 74662306a36Sopenharmony_ci - 1 74762306a36Sopenharmony_ci - Decoding is done at the frame granularity, 74862306a36Sopenharmony_ci The OUTPUT buffer must contain all slices needed to decode the 74962306a36Sopenharmony_ci frame. The OUTPUT buffer must also contain both fields. 75062306a36Sopenharmony_ci This mode will be supported by devices that 75162306a36Sopenharmony_ci parse the slice(s) header(s) in hardware. When this mode is 75262306a36Sopenharmony_ci selected, the ``V4L2_CID_STATELESS_H264_SLICE_PARAMS`` 75362306a36Sopenharmony_ci control shall not be set. 75462306a36Sopenharmony_ci 75562306a36Sopenharmony_ci.. raw:: latex 75662306a36Sopenharmony_ci 75762306a36Sopenharmony_ci \normalsize 75862306a36Sopenharmony_ci 75962306a36Sopenharmony_ci``V4L2_CID_STATELESS_H264_START_CODE (enum)`` 76062306a36Sopenharmony_ci Specifies the H264 slice start code expected for each slice. 76162306a36Sopenharmony_ci This control is used as a modifier for V4L2_PIX_FMT_H264_SLICE 76262306a36Sopenharmony_ci pixel format. Applications that support V4L2_PIX_FMT_H264_SLICE 76362306a36Sopenharmony_ci are required to set this control in order to specify the start code 76462306a36Sopenharmony_ci that is expected for the buffer. 76562306a36Sopenharmony_ci Drivers may expose a single or multiple start codes, depending 76662306a36Sopenharmony_ci on what they can support. 76762306a36Sopenharmony_ci 76862306a36Sopenharmony_ci.. c:type:: v4l2_stateless_h264_start_code 76962306a36Sopenharmony_ci 77062306a36Sopenharmony_ci.. raw:: latex 77162306a36Sopenharmony_ci 77262306a36Sopenharmony_ci \small 77362306a36Sopenharmony_ci 77462306a36Sopenharmony_ci.. tabularcolumns:: |p{7.9cm}|p{0.4cm}|p{9.0cm}| 77562306a36Sopenharmony_ci 77662306a36Sopenharmony_ci.. flat-table:: 77762306a36Sopenharmony_ci :header-rows: 0 77862306a36Sopenharmony_ci :stub-columns: 0 77962306a36Sopenharmony_ci :widths: 4 1 4 78062306a36Sopenharmony_ci 78162306a36Sopenharmony_ci * - ``V4L2_STATELESS_H264_START_CODE_NONE`` 78262306a36Sopenharmony_ci - 0 78362306a36Sopenharmony_ci - Selecting this value specifies that H264 slices are passed 78462306a36Sopenharmony_ci to the driver without any start code. The bitstream data should be 78562306a36Sopenharmony_ci according to :ref:`h264` 7.3.1 NAL unit syntax, hence contains 78662306a36Sopenharmony_ci emulation prevention bytes when required. 78762306a36Sopenharmony_ci * - ``V4L2_STATELESS_H264_START_CODE_ANNEX_B`` 78862306a36Sopenharmony_ci - 1 78962306a36Sopenharmony_ci - Selecting this value specifies that H264 slices are expected 79062306a36Sopenharmony_ci to be prefixed by Annex B start codes. According to :ref:`h264` 79162306a36Sopenharmony_ci valid start codes can be 3-bytes 0x000001 or 4-bytes 0x00000001. 79262306a36Sopenharmony_ci 79362306a36Sopenharmony_ci.. raw:: latex 79462306a36Sopenharmony_ci 79562306a36Sopenharmony_ci \normalsize 79662306a36Sopenharmony_ci 79762306a36Sopenharmony_ci.. _codec-stateless-fwht: 79862306a36Sopenharmony_ci 79962306a36Sopenharmony_ci``V4L2_CID_STATELESS_FWHT_PARAMS (struct)`` 80062306a36Sopenharmony_ci Specifies the FWHT (Fast Walsh Hadamard Transform) parameters (as extracted 80162306a36Sopenharmony_ci from the bitstream) for the associated FWHT data. This includes the necessary 80262306a36Sopenharmony_ci parameters for configuring a stateless hardware decoding pipeline for FWHT. 80362306a36Sopenharmony_ci This codec is specific to the vicodec test driver. 80462306a36Sopenharmony_ci 80562306a36Sopenharmony_ci.. c:type:: v4l2_ctrl_fwht_params 80662306a36Sopenharmony_ci 80762306a36Sopenharmony_ci.. raw:: latex 80862306a36Sopenharmony_ci 80962306a36Sopenharmony_ci \small 81062306a36Sopenharmony_ci 81162306a36Sopenharmony_ci.. tabularcolumns:: |p{1.4cm}|p{3.9cm}|p{12.0cm}| 81262306a36Sopenharmony_ci 81362306a36Sopenharmony_ci.. flat-table:: struct v4l2_ctrl_fwht_params 81462306a36Sopenharmony_ci :header-rows: 0 81562306a36Sopenharmony_ci :stub-columns: 0 81662306a36Sopenharmony_ci :widths: 1 1 2 81762306a36Sopenharmony_ci 81862306a36Sopenharmony_ci * - __u64 81962306a36Sopenharmony_ci - ``backward_ref_ts`` 82062306a36Sopenharmony_ci - Timestamp of the V4L2 capture buffer to use as backward reference, used 82162306a36Sopenharmony_ci with P-coded frames. The timestamp refers to the 82262306a36Sopenharmony_ci ``timestamp`` field in struct :c:type:`v4l2_buffer`. Use the 82362306a36Sopenharmony_ci :c:func:`v4l2_timeval_to_ns()` function to convert the struct 82462306a36Sopenharmony_ci :c:type:`timeval` in struct :c:type:`v4l2_buffer` to a __u64. 82562306a36Sopenharmony_ci * - __u32 82662306a36Sopenharmony_ci - ``version`` 82762306a36Sopenharmony_ci - The version of the codec. Set to ``V4L2_FWHT_VERSION``. 82862306a36Sopenharmony_ci * - __u32 82962306a36Sopenharmony_ci - ``width`` 83062306a36Sopenharmony_ci - The width of the frame. 83162306a36Sopenharmony_ci * - __u32 83262306a36Sopenharmony_ci - ``height`` 83362306a36Sopenharmony_ci - The height of the frame. 83462306a36Sopenharmony_ci * - __u32 83562306a36Sopenharmony_ci - ``flags`` 83662306a36Sopenharmony_ci - The flags of the frame, see :ref:`fwht-flags`. 83762306a36Sopenharmony_ci * - __u32 83862306a36Sopenharmony_ci - ``colorspace`` 83962306a36Sopenharmony_ci - The colorspace of the frame, from enum :c:type:`v4l2_colorspace`. 84062306a36Sopenharmony_ci * - __u32 84162306a36Sopenharmony_ci - ``xfer_func`` 84262306a36Sopenharmony_ci - The transfer function, from enum :c:type:`v4l2_xfer_func`. 84362306a36Sopenharmony_ci * - __u32 84462306a36Sopenharmony_ci - ``ycbcr_enc`` 84562306a36Sopenharmony_ci - The Y'CbCr encoding, from enum :c:type:`v4l2_ycbcr_encoding`. 84662306a36Sopenharmony_ci * - __u32 84762306a36Sopenharmony_ci - ``quantization`` 84862306a36Sopenharmony_ci - The quantization range, from enum :c:type:`v4l2_quantization`. 84962306a36Sopenharmony_ci 85062306a36Sopenharmony_ci.. raw:: latex 85162306a36Sopenharmony_ci 85262306a36Sopenharmony_ci \normalsize 85362306a36Sopenharmony_ci 85462306a36Sopenharmony_ci.. _fwht-flags: 85562306a36Sopenharmony_ci 85662306a36Sopenharmony_ciFWHT Flags 85762306a36Sopenharmony_ci========== 85862306a36Sopenharmony_ci 85962306a36Sopenharmony_ci.. raw:: latex 86062306a36Sopenharmony_ci 86162306a36Sopenharmony_ci \small 86262306a36Sopenharmony_ci 86362306a36Sopenharmony_ci.. tabularcolumns:: |p{7.0cm}|p{2.3cm}|p{8.0cm}| 86462306a36Sopenharmony_ci 86562306a36Sopenharmony_ci.. flat-table:: 86662306a36Sopenharmony_ci :header-rows: 0 86762306a36Sopenharmony_ci :stub-columns: 0 86862306a36Sopenharmony_ci :widths: 3 1 4 86962306a36Sopenharmony_ci 87062306a36Sopenharmony_ci * - ``V4L2_FWHT_FL_IS_INTERLACED`` 87162306a36Sopenharmony_ci - 0x00000001 87262306a36Sopenharmony_ci - Set if this is an interlaced format. 87362306a36Sopenharmony_ci * - ``V4L2_FWHT_FL_IS_BOTTOM_FIRST`` 87462306a36Sopenharmony_ci - 0x00000002 87562306a36Sopenharmony_ci - Set if this is a bottom-first (NTSC) interlaced format. 87662306a36Sopenharmony_ci * - ``V4L2_FWHT_FL_IS_ALTERNATE`` 87762306a36Sopenharmony_ci - 0x00000004 87862306a36Sopenharmony_ci - Set if each 'frame' contains just one field. 87962306a36Sopenharmony_ci * - ``V4L2_FWHT_FL_IS_BOTTOM_FIELD`` 88062306a36Sopenharmony_ci - 0x00000008 88162306a36Sopenharmony_ci - If V4L2_FWHT_FL_IS_ALTERNATE was set, then this is set if this 'frame' is the 88262306a36Sopenharmony_ci bottom field, else it is the top field. 88362306a36Sopenharmony_ci * - ``V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED`` 88462306a36Sopenharmony_ci - 0x00000010 88562306a36Sopenharmony_ci - Set if the Y' (luma) plane is uncompressed. 88662306a36Sopenharmony_ci * - ``V4L2_FWHT_FL_CB_IS_UNCOMPRESSED`` 88762306a36Sopenharmony_ci - 0x00000020 88862306a36Sopenharmony_ci - Set if the Cb plane is uncompressed. 88962306a36Sopenharmony_ci * - ``V4L2_FWHT_FL_CR_IS_UNCOMPRESSED`` 89062306a36Sopenharmony_ci - 0x00000040 89162306a36Sopenharmony_ci - Set if the Cr plane is uncompressed. 89262306a36Sopenharmony_ci * - ``V4L2_FWHT_FL_CHROMA_FULL_HEIGHT`` 89362306a36Sopenharmony_ci - 0x00000080 89462306a36Sopenharmony_ci - Set if the chroma plane has the same height as the luma plane, 89562306a36Sopenharmony_ci else the chroma plane is half the height of the luma plane. 89662306a36Sopenharmony_ci * - ``V4L2_FWHT_FL_CHROMA_FULL_WIDTH`` 89762306a36Sopenharmony_ci - 0x00000100 89862306a36Sopenharmony_ci - Set if the chroma plane has the same width as the luma plane, 89962306a36Sopenharmony_ci else the chroma plane is half the width of the luma plane. 90062306a36Sopenharmony_ci * - ``V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED`` 90162306a36Sopenharmony_ci - 0x00000200 90262306a36Sopenharmony_ci - Set if the alpha plane is uncompressed. 90362306a36Sopenharmony_ci * - ``V4L2_FWHT_FL_I_FRAME`` 90462306a36Sopenharmony_ci - 0x00000400 90562306a36Sopenharmony_ci - Set if this is an I-frame. 90662306a36Sopenharmony_ci * - ``V4L2_FWHT_FL_COMPONENTS_NUM_MSK`` 90762306a36Sopenharmony_ci - 0x00070000 90862306a36Sopenharmony_ci - The number of color components minus one. 90962306a36Sopenharmony_ci * - ``V4L2_FWHT_FL_PIXENC_MSK`` 91062306a36Sopenharmony_ci - 0x00180000 91162306a36Sopenharmony_ci - The mask for the pixel encoding. 91262306a36Sopenharmony_ci * - ``V4L2_FWHT_FL_PIXENC_YUV`` 91362306a36Sopenharmony_ci - 0x00080000 91462306a36Sopenharmony_ci - Set if the pixel encoding is YUV. 91562306a36Sopenharmony_ci * - ``V4L2_FWHT_FL_PIXENC_RGB`` 91662306a36Sopenharmony_ci - 0x00100000 91762306a36Sopenharmony_ci - Set if the pixel encoding is RGB. 91862306a36Sopenharmony_ci * - ``V4L2_FWHT_FL_PIXENC_HSV`` 91962306a36Sopenharmony_ci - 0x00180000 92062306a36Sopenharmony_ci - Set if the pixel encoding is HSV. 92162306a36Sopenharmony_ci 92262306a36Sopenharmony_ci.. raw:: latex 92362306a36Sopenharmony_ci 92462306a36Sopenharmony_ci \normalsize 92562306a36Sopenharmony_ci 92662306a36Sopenharmony_ci.. _v4l2-codec-stateless-vp8: 92762306a36Sopenharmony_ci 92862306a36Sopenharmony_ci``V4L2_CID_STATELESS_VP8_FRAME (struct)`` 92962306a36Sopenharmony_ci Specifies the frame parameters for the associated VP8 parsed frame data. 93062306a36Sopenharmony_ci This includes the necessary parameters for 93162306a36Sopenharmony_ci configuring a stateless hardware decoding pipeline for VP8. 93262306a36Sopenharmony_ci The bitstream parameters are defined according to :ref:`vp8`. 93362306a36Sopenharmony_ci 93462306a36Sopenharmony_ci.. c:type:: v4l2_ctrl_vp8_frame 93562306a36Sopenharmony_ci 93662306a36Sopenharmony_ci.. raw:: latex 93762306a36Sopenharmony_ci 93862306a36Sopenharmony_ci \small 93962306a36Sopenharmony_ci 94062306a36Sopenharmony_ci.. tabularcolumns:: |p{7.0cm}|p{4.6cm}|p{5.7cm}| 94162306a36Sopenharmony_ci 94262306a36Sopenharmony_ci.. cssclass:: longtable 94362306a36Sopenharmony_ci 94462306a36Sopenharmony_ci.. flat-table:: struct v4l2_ctrl_vp8_frame 94562306a36Sopenharmony_ci :header-rows: 0 94662306a36Sopenharmony_ci :stub-columns: 0 94762306a36Sopenharmony_ci :widths: 1 1 2 94862306a36Sopenharmony_ci 94962306a36Sopenharmony_ci * - struct :c:type:`v4l2_vp8_segment` 95062306a36Sopenharmony_ci - ``segment`` 95162306a36Sopenharmony_ci - Structure with segment-based adjustments metadata. 95262306a36Sopenharmony_ci * - struct :c:type:`v4l2_vp8_loop_filter` 95362306a36Sopenharmony_ci - ``lf`` 95462306a36Sopenharmony_ci - Structure with loop filter level adjustments metadata. 95562306a36Sopenharmony_ci * - struct :c:type:`v4l2_vp8_quantization` 95662306a36Sopenharmony_ci - ``quant`` 95762306a36Sopenharmony_ci - Structure with VP8 dequantization indices metadata. 95862306a36Sopenharmony_ci * - struct :c:type:`v4l2_vp8_entropy` 95962306a36Sopenharmony_ci - ``entropy`` 96062306a36Sopenharmony_ci - Structure with VP8 entropy coder probabilities metadata. 96162306a36Sopenharmony_ci * - struct :c:type:`v4l2_vp8_entropy_coder_state` 96262306a36Sopenharmony_ci - ``coder_state`` 96362306a36Sopenharmony_ci - Structure with VP8 entropy coder state. 96462306a36Sopenharmony_ci * - __u16 96562306a36Sopenharmony_ci - ``width`` 96662306a36Sopenharmony_ci - The width of the frame. Must be set for all frames. 96762306a36Sopenharmony_ci * - __u16 96862306a36Sopenharmony_ci - ``height`` 96962306a36Sopenharmony_ci - The height of the frame. Must be set for all frames. 97062306a36Sopenharmony_ci * - __u8 97162306a36Sopenharmony_ci - ``horizontal_scale`` 97262306a36Sopenharmony_ci - Horizontal scaling factor. 97362306a36Sopenharmony_ci * - __u8 97462306a36Sopenharmony_ci - ``vertical_scaling factor`` 97562306a36Sopenharmony_ci - Vertical scale. 97662306a36Sopenharmony_ci * - __u8 97762306a36Sopenharmony_ci - ``version`` 97862306a36Sopenharmony_ci - Bitstream version. 97962306a36Sopenharmony_ci * - __u8 98062306a36Sopenharmony_ci - ``prob_skip_false`` 98162306a36Sopenharmony_ci - Indicates the probability that the macroblock is not skipped. 98262306a36Sopenharmony_ci * - __u8 98362306a36Sopenharmony_ci - ``prob_intra`` 98462306a36Sopenharmony_ci - Indicates the probability that a macroblock is intra-predicted. 98562306a36Sopenharmony_ci * - __u8 98662306a36Sopenharmony_ci - ``prob_last`` 98762306a36Sopenharmony_ci - Indicates the probability that the last reference frame is used 98862306a36Sopenharmony_ci for inter-prediction 98962306a36Sopenharmony_ci * - __u8 99062306a36Sopenharmony_ci - ``prob_gf`` 99162306a36Sopenharmony_ci - Indicates the probability that the golden reference frame is used 99262306a36Sopenharmony_ci for inter-prediction 99362306a36Sopenharmony_ci * - __u8 99462306a36Sopenharmony_ci - ``num_dct_parts`` 99562306a36Sopenharmony_ci - Number of DCT coefficients partitions. Must be one of: 1, 2, 4, or 8. 99662306a36Sopenharmony_ci * - __u32 99762306a36Sopenharmony_ci - ``first_part_size`` 99862306a36Sopenharmony_ci - Size of the first partition, i.e. the control partition. 99962306a36Sopenharmony_ci * - __u32 100062306a36Sopenharmony_ci - ``first_part_header_bits`` 100162306a36Sopenharmony_ci - Size in bits of the first partition header portion. 100262306a36Sopenharmony_ci * - __u32 100362306a36Sopenharmony_ci - ``dct_part_sizes[8]`` 100462306a36Sopenharmony_ci - DCT coefficients sizes. 100562306a36Sopenharmony_ci * - __u64 100662306a36Sopenharmony_ci - ``last_frame_ts`` 100762306a36Sopenharmony_ci - Timestamp for the V4L2 capture buffer to use as last reference frame, used 100862306a36Sopenharmony_ci with inter-coded frames. The timestamp refers to the ``timestamp`` field in 100962306a36Sopenharmony_ci struct :c:type:`v4l2_buffer`. Use the :c:func:`v4l2_timeval_to_ns()` 101062306a36Sopenharmony_ci function to convert the struct :c:type:`timeval` in struct 101162306a36Sopenharmony_ci :c:type:`v4l2_buffer` to a __u64. 101262306a36Sopenharmony_ci * - __u64 101362306a36Sopenharmony_ci - ``golden_frame_ts`` 101462306a36Sopenharmony_ci - Timestamp for the V4L2 capture buffer to use as last reference frame, used 101562306a36Sopenharmony_ci with inter-coded frames. The timestamp refers to the ``timestamp`` field in 101662306a36Sopenharmony_ci struct :c:type:`v4l2_buffer`. Use the :c:func:`v4l2_timeval_to_ns()` 101762306a36Sopenharmony_ci function to convert the struct :c:type:`timeval` in struct 101862306a36Sopenharmony_ci :c:type:`v4l2_buffer` to a __u64. 101962306a36Sopenharmony_ci * - __u64 102062306a36Sopenharmony_ci - ``alt_frame_ts`` 102162306a36Sopenharmony_ci - Timestamp for the V4L2 capture buffer to use as alternate reference frame, used 102262306a36Sopenharmony_ci with inter-coded frames. The timestamp refers to the ``timestamp`` field in 102362306a36Sopenharmony_ci struct :c:type:`v4l2_buffer`. Use the :c:func:`v4l2_timeval_to_ns()` 102462306a36Sopenharmony_ci function to convert the struct :c:type:`timeval` in struct 102562306a36Sopenharmony_ci :c:type:`v4l2_buffer` to a __u64. 102662306a36Sopenharmony_ci * - __u64 102762306a36Sopenharmony_ci - ``flags`` 102862306a36Sopenharmony_ci - See :ref:`Frame Flags <vp8_frame_flags>` 102962306a36Sopenharmony_ci 103062306a36Sopenharmony_ci.. raw:: latex 103162306a36Sopenharmony_ci 103262306a36Sopenharmony_ci \normalsize 103362306a36Sopenharmony_ci 103462306a36Sopenharmony_ci.. _vp8_frame_flags: 103562306a36Sopenharmony_ci 103662306a36Sopenharmony_ci``Frame Flags`` 103762306a36Sopenharmony_ci 103862306a36Sopenharmony_ci.. tabularcolumns:: |p{9.8cm}|p{0.8cm}|p{6.7cm}| 103962306a36Sopenharmony_ci 104062306a36Sopenharmony_ci.. cssclass:: longtable 104162306a36Sopenharmony_ci 104262306a36Sopenharmony_ci.. flat-table:: 104362306a36Sopenharmony_ci :header-rows: 0 104462306a36Sopenharmony_ci :stub-columns: 0 104562306a36Sopenharmony_ci :widths: 1 1 2 104662306a36Sopenharmony_ci 104762306a36Sopenharmony_ci * - ``V4L2_VP8_FRAME_FLAG_KEY_FRAME`` 104862306a36Sopenharmony_ci - 0x01 104962306a36Sopenharmony_ci - Indicates if the frame is a key frame. 105062306a36Sopenharmony_ci * - ``V4L2_VP8_FRAME_FLAG_EXPERIMENTAL`` 105162306a36Sopenharmony_ci - 0x02 105262306a36Sopenharmony_ci - Experimental bitstream. 105362306a36Sopenharmony_ci * - ``V4L2_VP8_FRAME_FLAG_SHOW_FRAME`` 105462306a36Sopenharmony_ci - 0x04 105562306a36Sopenharmony_ci - Show frame flag, indicates if the frame is for display. 105662306a36Sopenharmony_ci * - ``V4L2_VP8_FRAME_FLAG_MB_NO_SKIP_COEFF`` 105762306a36Sopenharmony_ci - 0x08 105862306a36Sopenharmony_ci - Enable/disable skipping of macroblocks with no non-zero coefficients. 105962306a36Sopenharmony_ci * - ``V4L2_VP8_FRAME_FLAG_SIGN_BIAS_GOLDEN`` 106062306a36Sopenharmony_ci - 0x10 106162306a36Sopenharmony_ci - Sign of motion vectors when the golden frame is referenced. 106262306a36Sopenharmony_ci * - ``V4L2_VP8_FRAME_FLAG_SIGN_BIAS_ALT`` 106362306a36Sopenharmony_ci - 0x20 106462306a36Sopenharmony_ci - Sign of motion vectors when the alt frame is referenced. 106562306a36Sopenharmony_ci 106662306a36Sopenharmony_ci.. c:type:: v4l2_vp8_entropy_coder_state 106762306a36Sopenharmony_ci 106862306a36Sopenharmony_ci.. cssclass:: longtable 106962306a36Sopenharmony_ci 107062306a36Sopenharmony_ci.. tabularcolumns:: |p{1.0cm}|p{2.0cm}|p{14.3cm}| 107162306a36Sopenharmony_ci 107262306a36Sopenharmony_ci.. flat-table:: struct v4l2_vp8_entropy_coder_state 107362306a36Sopenharmony_ci :header-rows: 0 107462306a36Sopenharmony_ci :stub-columns: 0 107562306a36Sopenharmony_ci :widths: 1 1 2 107662306a36Sopenharmony_ci 107762306a36Sopenharmony_ci * - __u8 107862306a36Sopenharmony_ci - ``range`` 107962306a36Sopenharmony_ci - coder state value for "Range" 108062306a36Sopenharmony_ci * - __u8 108162306a36Sopenharmony_ci - ``value`` 108262306a36Sopenharmony_ci - coder state value for "Value"- 108362306a36Sopenharmony_ci * - __u8 108462306a36Sopenharmony_ci - ``bit_count`` 108562306a36Sopenharmony_ci - number of bits left. 108662306a36Sopenharmony_ci * - __u8 108762306a36Sopenharmony_ci - ``padding`` 108862306a36Sopenharmony_ci - Applications and drivers must set this to zero. 108962306a36Sopenharmony_ci 109062306a36Sopenharmony_ci.. c:type:: v4l2_vp8_segment 109162306a36Sopenharmony_ci 109262306a36Sopenharmony_ci.. cssclass:: longtable 109362306a36Sopenharmony_ci 109462306a36Sopenharmony_ci.. tabularcolumns:: |p{1.2cm}|p{4.0cm}|p{12.1cm}| 109562306a36Sopenharmony_ci 109662306a36Sopenharmony_ci.. flat-table:: struct v4l2_vp8_segment 109762306a36Sopenharmony_ci :header-rows: 0 109862306a36Sopenharmony_ci :stub-columns: 0 109962306a36Sopenharmony_ci :widths: 1 1 2 110062306a36Sopenharmony_ci 110162306a36Sopenharmony_ci * - __s8 110262306a36Sopenharmony_ci - ``quant_update[4]`` 110362306a36Sopenharmony_ci - Signed quantizer value update. 110462306a36Sopenharmony_ci * - __s8 110562306a36Sopenharmony_ci - ``lf_update[4]`` 110662306a36Sopenharmony_ci - Signed loop filter level value update. 110762306a36Sopenharmony_ci * - __u8 110862306a36Sopenharmony_ci - ``segment_probs[3]`` 110962306a36Sopenharmony_ci - Segment probabilities. 111062306a36Sopenharmony_ci * - __u8 111162306a36Sopenharmony_ci - ``padding`` 111262306a36Sopenharmony_ci - Applications and drivers must set this to zero. 111362306a36Sopenharmony_ci * - __u32 111462306a36Sopenharmony_ci - ``flags`` 111562306a36Sopenharmony_ci - See :ref:`Segment Flags <vp8_segment_flags>` 111662306a36Sopenharmony_ci 111762306a36Sopenharmony_ci.. _vp8_segment_flags: 111862306a36Sopenharmony_ci 111962306a36Sopenharmony_ci``Segment Flags`` 112062306a36Sopenharmony_ci 112162306a36Sopenharmony_ci.. raw:: latex 112262306a36Sopenharmony_ci 112362306a36Sopenharmony_ci \small 112462306a36Sopenharmony_ci 112562306a36Sopenharmony_ci.. tabularcolumns:: |p{10cm}|p{1.0cm}|p{6.3cm}| 112662306a36Sopenharmony_ci 112762306a36Sopenharmony_ci.. flat-table:: 112862306a36Sopenharmony_ci :header-rows: 0 112962306a36Sopenharmony_ci :stub-columns: 0 113062306a36Sopenharmony_ci :widths: 1 1 2 113162306a36Sopenharmony_ci 113262306a36Sopenharmony_ci * - ``V4L2_VP8_SEGMENT_FLAG_ENABLED`` 113362306a36Sopenharmony_ci - 0x01 113462306a36Sopenharmony_ci - Enable/disable segment-based adjustments. 113562306a36Sopenharmony_ci * - ``V4L2_VP8_SEGMENT_FLAG_UPDATE_MAP`` 113662306a36Sopenharmony_ci - 0x02 113762306a36Sopenharmony_ci - Indicates if the macroblock segmentation map is updated in this frame. 113862306a36Sopenharmony_ci * - ``V4L2_VP8_SEGMENT_FLAG_UPDATE_FEATURE_DATA`` 113962306a36Sopenharmony_ci - 0x04 114062306a36Sopenharmony_ci - Indicates if the segment feature data is updated in this frame. 114162306a36Sopenharmony_ci * - ``V4L2_VP8_SEGMENT_FLAG_DELTA_VALUE_MODE`` 114262306a36Sopenharmony_ci - 0x08 114362306a36Sopenharmony_ci - If is set, the segment feature data mode is delta-value. 114462306a36Sopenharmony_ci If cleared, it's absolute-value. 114562306a36Sopenharmony_ci 114662306a36Sopenharmony_ci.. raw:: latex 114762306a36Sopenharmony_ci 114862306a36Sopenharmony_ci \normalsize 114962306a36Sopenharmony_ci 115062306a36Sopenharmony_ci.. c:type:: v4l2_vp8_loop_filter 115162306a36Sopenharmony_ci 115262306a36Sopenharmony_ci.. cssclass:: longtable 115362306a36Sopenharmony_ci 115462306a36Sopenharmony_ci.. tabularcolumns:: |p{1.5cm}|p{3.9cm}|p{11.9cm}| 115562306a36Sopenharmony_ci 115662306a36Sopenharmony_ci.. flat-table:: struct v4l2_vp8_loop_filter 115762306a36Sopenharmony_ci :header-rows: 0 115862306a36Sopenharmony_ci :stub-columns: 0 115962306a36Sopenharmony_ci :widths: 1 1 2 116062306a36Sopenharmony_ci 116162306a36Sopenharmony_ci * - __s8 116262306a36Sopenharmony_ci - ``ref_frm_delta[4]`` 116362306a36Sopenharmony_ci - Reference adjustment (signed) delta value. 116462306a36Sopenharmony_ci * - __s8 116562306a36Sopenharmony_ci - ``mb_mode_delta[4]`` 116662306a36Sopenharmony_ci - Macroblock prediction mode adjustment (signed) delta value. 116762306a36Sopenharmony_ci * - __u8 116862306a36Sopenharmony_ci - ``sharpness_level`` 116962306a36Sopenharmony_ci - Sharpness level 117062306a36Sopenharmony_ci * - __u8 117162306a36Sopenharmony_ci - ``level`` 117262306a36Sopenharmony_ci - Filter level 117362306a36Sopenharmony_ci * - __u16 117462306a36Sopenharmony_ci - ``padding`` 117562306a36Sopenharmony_ci - Applications and drivers must set this to zero. 117662306a36Sopenharmony_ci * - __u32 117762306a36Sopenharmony_ci - ``flags`` 117862306a36Sopenharmony_ci - See :ref:`Loop Filter Flags <vp8_loop_filter_flags>` 117962306a36Sopenharmony_ci 118062306a36Sopenharmony_ci.. _vp8_loop_filter_flags: 118162306a36Sopenharmony_ci 118262306a36Sopenharmony_ci``Loop Filter Flags`` 118362306a36Sopenharmony_ci 118462306a36Sopenharmony_ci.. tabularcolumns:: |p{7.0cm}|p{1.2cm}|p{9.1cm}| 118562306a36Sopenharmony_ci 118662306a36Sopenharmony_ci.. flat-table:: 118762306a36Sopenharmony_ci :header-rows: 0 118862306a36Sopenharmony_ci :stub-columns: 0 118962306a36Sopenharmony_ci :widths: 1 1 2 119062306a36Sopenharmony_ci 119162306a36Sopenharmony_ci * - ``V4L2_VP8_LF_ADJ_ENABLE`` 119262306a36Sopenharmony_ci - 0x01 119362306a36Sopenharmony_ci - Enable/disable macroblock-level loop filter adjustment. 119462306a36Sopenharmony_ci * - ``V4L2_VP8_LF_DELTA_UPDATE`` 119562306a36Sopenharmony_ci - 0x02 119662306a36Sopenharmony_ci - Indicates if the delta values used in an adjustment are updated. 119762306a36Sopenharmony_ci * - ``V4L2_VP8_LF_FILTER_TYPE_SIMPLE`` 119862306a36Sopenharmony_ci - 0x04 119962306a36Sopenharmony_ci - If set, indicates the filter type is simple. 120062306a36Sopenharmony_ci If cleared, the filter type is normal. 120162306a36Sopenharmony_ci 120262306a36Sopenharmony_ci.. c:type:: v4l2_vp8_quantization 120362306a36Sopenharmony_ci 120462306a36Sopenharmony_ci.. tabularcolumns:: |p{1.5cm}|p{3.5cm}|p{12.3cm}| 120562306a36Sopenharmony_ci 120662306a36Sopenharmony_ci.. flat-table:: struct v4l2_vp8_quantization 120762306a36Sopenharmony_ci :header-rows: 0 120862306a36Sopenharmony_ci :stub-columns: 0 120962306a36Sopenharmony_ci :widths: 1 1 2 121062306a36Sopenharmony_ci 121162306a36Sopenharmony_ci * - __u8 121262306a36Sopenharmony_ci - ``y_ac_qi`` 121362306a36Sopenharmony_ci - Luma AC coefficient table index. 121462306a36Sopenharmony_ci * - __s8 121562306a36Sopenharmony_ci - ``y_dc_delta`` 121662306a36Sopenharmony_ci - Luma DC delta value. 121762306a36Sopenharmony_ci * - __s8 121862306a36Sopenharmony_ci - ``y2_dc_delta`` 121962306a36Sopenharmony_ci - Y2 block DC delta value. 122062306a36Sopenharmony_ci * - __s8 122162306a36Sopenharmony_ci - ``y2_ac_delta`` 122262306a36Sopenharmony_ci - Y2 block AC delta value. 122362306a36Sopenharmony_ci * - __s8 122462306a36Sopenharmony_ci - ``uv_dc_delta`` 122562306a36Sopenharmony_ci - Chroma DC delta value. 122662306a36Sopenharmony_ci * - __s8 122762306a36Sopenharmony_ci - ``uv_ac_delta`` 122862306a36Sopenharmony_ci - Chroma AC delta value. 122962306a36Sopenharmony_ci * - __u16 123062306a36Sopenharmony_ci - ``padding`` 123162306a36Sopenharmony_ci - Applications and drivers must set this to zero. 123262306a36Sopenharmony_ci 123362306a36Sopenharmony_ci.. c:type:: v4l2_vp8_entropy 123462306a36Sopenharmony_ci 123562306a36Sopenharmony_ci.. cssclass:: longtable 123662306a36Sopenharmony_ci 123762306a36Sopenharmony_ci.. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| 123862306a36Sopenharmony_ci 123962306a36Sopenharmony_ci.. flat-table:: struct v4l2_vp8_entropy 124062306a36Sopenharmony_ci :header-rows: 0 124162306a36Sopenharmony_ci :stub-columns: 0 124262306a36Sopenharmony_ci :widths: 1 1 2 124362306a36Sopenharmony_ci 124462306a36Sopenharmony_ci * - __u8 124562306a36Sopenharmony_ci - ``coeff_probs[4][8][3][11]`` 124662306a36Sopenharmony_ci - Coefficient update probabilities. 124762306a36Sopenharmony_ci * - __u8 124862306a36Sopenharmony_ci - ``y_mode_probs[4]`` 124962306a36Sopenharmony_ci - Luma mode update probabilities. 125062306a36Sopenharmony_ci * - __u8 125162306a36Sopenharmony_ci - ``uv_mode_probs[3]`` 125262306a36Sopenharmony_ci - Chroma mode update probabilities. 125362306a36Sopenharmony_ci * - __u8 125462306a36Sopenharmony_ci - ``mv_probs[2][19]`` 125562306a36Sopenharmony_ci - MV decoding update probabilities. 125662306a36Sopenharmony_ci * - __u8 125762306a36Sopenharmony_ci - ``padding[3]`` 125862306a36Sopenharmony_ci - Applications and drivers must set this to zero. 125962306a36Sopenharmony_ci 126062306a36Sopenharmony_ci.. _v4l2-codec-stateless-mpeg2: 126162306a36Sopenharmony_ci 126262306a36Sopenharmony_ci``V4L2_CID_STATELESS_MPEG2_SEQUENCE (struct)`` 126362306a36Sopenharmony_ci Specifies the sequence parameters (as extracted from the bitstream) for the 126462306a36Sopenharmony_ci associated MPEG-2 slice data. This includes fields matching the syntax 126562306a36Sopenharmony_ci elements from the sequence header and sequence extension parts of the 126662306a36Sopenharmony_ci bitstream as specified by :ref:`mpeg2part2`. 126762306a36Sopenharmony_ci 126862306a36Sopenharmony_ci.. c:type:: v4l2_ctrl_mpeg2_sequence 126962306a36Sopenharmony_ci 127062306a36Sopenharmony_ci.. raw:: latex 127162306a36Sopenharmony_ci 127262306a36Sopenharmony_ci \small 127362306a36Sopenharmony_ci 127462306a36Sopenharmony_ci.. cssclass:: longtable 127562306a36Sopenharmony_ci 127662306a36Sopenharmony_ci.. tabularcolumns:: |p{1.4cm}|p{6.5cm}|p{9.4cm}| 127762306a36Sopenharmony_ci 127862306a36Sopenharmony_ci.. flat-table:: struct v4l2_ctrl_mpeg2_sequence 127962306a36Sopenharmony_ci :header-rows: 0 128062306a36Sopenharmony_ci :stub-columns: 0 128162306a36Sopenharmony_ci :widths: 1 1 2 128262306a36Sopenharmony_ci 128362306a36Sopenharmony_ci * - __u16 128462306a36Sopenharmony_ci - ``horizontal_size`` 128562306a36Sopenharmony_ci - The width of the displayable part of the frame's luminance component. 128662306a36Sopenharmony_ci * - __u16 128762306a36Sopenharmony_ci - ``vertical_size`` 128862306a36Sopenharmony_ci - The height of the displayable part of the frame's luminance component. 128962306a36Sopenharmony_ci * - __u32 129062306a36Sopenharmony_ci - ``vbv_buffer_size`` 129162306a36Sopenharmony_ci - Used to calculate the required size of the video buffering verifier, 129262306a36Sopenharmony_ci defined (in bits) as: 16 * 1024 * vbv_buffer_size. 129362306a36Sopenharmony_ci * - __u16 129462306a36Sopenharmony_ci - ``profile_and_level_indication`` 129562306a36Sopenharmony_ci - The current profile and level indication as extracted from the 129662306a36Sopenharmony_ci bitstream. 129762306a36Sopenharmony_ci * - __u8 129862306a36Sopenharmony_ci - ``chroma_format`` 129962306a36Sopenharmony_ci - The chrominance sub-sampling format (1: 4:2:0, 2: 4:2:2, 3: 4:4:4). 130062306a36Sopenharmony_ci * - __u8 130162306a36Sopenharmony_ci - ``flags`` 130262306a36Sopenharmony_ci - See :ref:`MPEG-2 Sequence Flags <mpeg2_sequence_flags>`. 130362306a36Sopenharmony_ci 130462306a36Sopenharmony_ci.. _mpeg2_sequence_flags: 130562306a36Sopenharmony_ci 130662306a36Sopenharmony_ci``MPEG-2 Sequence Flags`` 130762306a36Sopenharmony_ci 130862306a36Sopenharmony_ci.. cssclass:: longtable 130962306a36Sopenharmony_ci 131062306a36Sopenharmony_ci.. flat-table:: 131162306a36Sopenharmony_ci :header-rows: 0 131262306a36Sopenharmony_ci :stub-columns: 0 131362306a36Sopenharmony_ci :widths: 1 1 2 131462306a36Sopenharmony_ci 131562306a36Sopenharmony_ci * - ``V4L2_MPEG2_SEQ_FLAG_PROGRESSIVE`` 131662306a36Sopenharmony_ci - 0x01 131762306a36Sopenharmony_ci - Indication that all the frames for the sequence are progressive instead 131862306a36Sopenharmony_ci of interlaced. 131962306a36Sopenharmony_ci 132062306a36Sopenharmony_ci.. raw:: latex 132162306a36Sopenharmony_ci 132262306a36Sopenharmony_ci \normalsize 132362306a36Sopenharmony_ci 132462306a36Sopenharmony_ci``V4L2_CID_STATELESS_MPEG2_PICTURE (struct)`` 132562306a36Sopenharmony_ci Specifies the picture parameters (as extracted from the bitstream) for the 132662306a36Sopenharmony_ci associated MPEG-2 slice data. This includes fields matching the syntax 132762306a36Sopenharmony_ci elements from the picture header and picture coding extension parts of the 132862306a36Sopenharmony_ci bitstream as specified by :ref:`mpeg2part2`. 132962306a36Sopenharmony_ci 133062306a36Sopenharmony_ci.. c:type:: v4l2_ctrl_mpeg2_picture 133162306a36Sopenharmony_ci 133262306a36Sopenharmony_ci.. raw:: latex 133362306a36Sopenharmony_ci 133462306a36Sopenharmony_ci \small 133562306a36Sopenharmony_ci 133662306a36Sopenharmony_ci.. cssclass:: longtable 133762306a36Sopenharmony_ci 133862306a36Sopenharmony_ci.. tabularcolumns:: |p{1.0cm}|p{5.6cm}|p{10.7cm}| 133962306a36Sopenharmony_ci 134062306a36Sopenharmony_ci.. flat-table:: struct v4l2_ctrl_mpeg2_picture 134162306a36Sopenharmony_ci :header-rows: 0 134262306a36Sopenharmony_ci :stub-columns: 0 134362306a36Sopenharmony_ci :widths: 1 1 2 134462306a36Sopenharmony_ci 134562306a36Sopenharmony_ci * - __u64 134662306a36Sopenharmony_ci - ``backward_ref_ts`` 134762306a36Sopenharmony_ci - Timestamp of the V4L2 capture buffer to use as backward reference, used 134862306a36Sopenharmony_ci with B-coded and P-coded frames. The timestamp refers to the 134962306a36Sopenharmony_ci ``timestamp`` field in struct :c:type:`v4l2_buffer`. Use the 135062306a36Sopenharmony_ci :c:func:`v4l2_timeval_to_ns()` function to convert the struct 135162306a36Sopenharmony_ci :c:type:`timeval` in struct :c:type:`v4l2_buffer` to a __u64. 135262306a36Sopenharmony_ci * - __u64 135362306a36Sopenharmony_ci - ``forward_ref_ts`` 135462306a36Sopenharmony_ci - Timestamp for the V4L2 capture buffer to use as forward reference, used 135562306a36Sopenharmony_ci with B-coded frames. The timestamp refers to the ``timestamp`` field in 135662306a36Sopenharmony_ci struct :c:type:`v4l2_buffer`. Use the :c:func:`v4l2_timeval_to_ns()` 135762306a36Sopenharmony_ci function to convert the struct :c:type:`timeval` in struct 135862306a36Sopenharmony_ci :c:type:`v4l2_buffer` to a __u64. 135962306a36Sopenharmony_ci * - __u32 136062306a36Sopenharmony_ci - ``flags`` 136162306a36Sopenharmony_ci - See :ref:`MPEG-2 Picture Flags <mpeg2_picture_flags>`. 136262306a36Sopenharmony_ci * - __u8 136362306a36Sopenharmony_ci - ``f_code[2][2]`` 136462306a36Sopenharmony_ci - Motion vector codes. 136562306a36Sopenharmony_ci * - __u8 136662306a36Sopenharmony_ci - ``picture_coding_type`` 136762306a36Sopenharmony_ci - Picture coding type for the frame covered by the current slice 136862306a36Sopenharmony_ci (V4L2_MPEG2_PIC_CODING_TYPE_I, V4L2_MPEG2_PIC_CODING_TYPE_P or 136962306a36Sopenharmony_ci V4L2_MPEG2_PIC_CODING_TYPE_B). 137062306a36Sopenharmony_ci * - __u8 137162306a36Sopenharmony_ci - ``picture_structure`` 137262306a36Sopenharmony_ci - Picture structure (1: interlaced top field, 2: interlaced bottom field, 137362306a36Sopenharmony_ci 3: progressive frame). 137462306a36Sopenharmony_ci * - __u8 137562306a36Sopenharmony_ci - ``intra_dc_precision`` 137662306a36Sopenharmony_ci - Precision of Discrete Cosine transform (0: 8 bits precision, 137762306a36Sopenharmony_ci 1: 9 bits precision, 2: 10 bits precision, 3: 11 bits precision). 137862306a36Sopenharmony_ci * - __u8 137962306a36Sopenharmony_ci - ``reserved[5]`` 138062306a36Sopenharmony_ci - Applications and drivers must set this to zero. 138162306a36Sopenharmony_ci 138262306a36Sopenharmony_ci.. _mpeg2_picture_flags: 138362306a36Sopenharmony_ci 138462306a36Sopenharmony_ci``MPEG-2 Picture Flags`` 138562306a36Sopenharmony_ci 138662306a36Sopenharmony_ci.. cssclass:: longtable 138762306a36Sopenharmony_ci 138862306a36Sopenharmony_ci.. flat-table:: 138962306a36Sopenharmony_ci :header-rows: 0 139062306a36Sopenharmony_ci :stub-columns: 0 139162306a36Sopenharmony_ci :widths: 1 1 2 139262306a36Sopenharmony_ci 139362306a36Sopenharmony_ci * - ``V4L2_MPEG2_PIC_FLAG_TOP_FIELD_FIRST`` 139462306a36Sopenharmony_ci - 0x00000001 139562306a36Sopenharmony_ci - If set and it's an interlaced stream, top field is output first. 139662306a36Sopenharmony_ci * - ``V4L2_MPEG2_PIC_FLAG_FRAME_PRED_DCT`` 139762306a36Sopenharmony_ci - 0x00000002 139862306a36Sopenharmony_ci - If set only frame-DCT and frame prediction are used. 139962306a36Sopenharmony_ci * - ``V4L2_MPEG2_PIC_FLAG_CONCEALMENT_MV`` 140062306a36Sopenharmony_ci - 0x00000004 140162306a36Sopenharmony_ci - If set motion vectors are coded for intra macroblocks. 140262306a36Sopenharmony_ci * - ``V4L2_MPEG2_PIC_FLAG_Q_SCALE_TYPE`` 140362306a36Sopenharmony_ci - 0x00000008 140462306a36Sopenharmony_ci - This flag affects the inverse quantization process. 140562306a36Sopenharmony_ci * - ``V4L2_MPEG2_PIC_FLAG_INTRA_VLC`` 140662306a36Sopenharmony_ci - 0x00000010 140762306a36Sopenharmony_ci - This flag affects the decoding of transform coefficient data. 140862306a36Sopenharmony_ci * - ``V4L2_MPEG2_PIC_FLAG_ALT_SCAN`` 140962306a36Sopenharmony_ci - 0x00000020 141062306a36Sopenharmony_ci - This flag affects the decoding of transform coefficient data. 141162306a36Sopenharmony_ci * - ``V4L2_MPEG2_PIC_FLAG_REPEAT_FIRST`` 141262306a36Sopenharmony_ci - 0x00000040 141362306a36Sopenharmony_ci - This flag affects the decoding process of progressive frames. 141462306a36Sopenharmony_ci * - ``V4L2_MPEG2_PIC_FLAG_PROGRESSIVE`` 141562306a36Sopenharmony_ci - 0x00000080 141662306a36Sopenharmony_ci - Indicates whether the current frame is progressive. 141762306a36Sopenharmony_ci 141862306a36Sopenharmony_ci.. raw:: latex 141962306a36Sopenharmony_ci 142062306a36Sopenharmony_ci \normalsize 142162306a36Sopenharmony_ci 142262306a36Sopenharmony_ci``V4L2_CID_STATELESS_MPEG2_QUANTISATION (struct)`` 142362306a36Sopenharmony_ci Specifies quantisation matrices, in zigzag scanning order, for the 142462306a36Sopenharmony_ci associated MPEG-2 slice data. This control is initialized by the kernel 142562306a36Sopenharmony_ci to the matrices default values. If a bitstream transmits a user-defined 142662306a36Sopenharmony_ci quantisation matrices load, applications are expected to use this control. 142762306a36Sopenharmony_ci Applications are also expected to set the control loading the default 142862306a36Sopenharmony_ci values, if the quantisation matrices need to be reset, for instance on a 142962306a36Sopenharmony_ci sequence header. This process is specified by section 6.3.7. 143062306a36Sopenharmony_ci "Quant matrix extension" of the specification. 143162306a36Sopenharmony_ci 143262306a36Sopenharmony_ci.. c:type:: v4l2_ctrl_mpeg2_quantisation 143362306a36Sopenharmony_ci 143462306a36Sopenharmony_ci.. tabularcolumns:: |p{0.8cm}|p{8.0cm}|p{8.5cm}| 143562306a36Sopenharmony_ci 143662306a36Sopenharmony_ci.. cssclass:: longtable 143762306a36Sopenharmony_ci 143862306a36Sopenharmony_ci.. raw:: latex 143962306a36Sopenharmony_ci 144062306a36Sopenharmony_ci \small 144162306a36Sopenharmony_ci 144262306a36Sopenharmony_ci.. flat-table:: struct v4l2_ctrl_mpeg2_quantisation 144362306a36Sopenharmony_ci :header-rows: 0 144462306a36Sopenharmony_ci :stub-columns: 0 144562306a36Sopenharmony_ci :widths: 1 1 2 144662306a36Sopenharmony_ci 144762306a36Sopenharmony_ci * - __u8 144862306a36Sopenharmony_ci - ``intra_quantiser_matrix[64]`` 144962306a36Sopenharmony_ci - The quantisation matrix coefficients for intra-coded frames, in zigzag 145062306a36Sopenharmony_ci scanning order. It is relevant for both luma and chroma components, 145162306a36Sopenharmony_ci although it can be superseded by the chroma-specific matrix for 145262306a36Sopenharmony_ci non-4:2:0 YUV formats. 145362306a36Sopenharmony_ci * - __u8 145462306a36Sopenharmony_ci - ``non_intra_quantiser_matrix[64]`` 145562306a36Sopenharmony_ci - The quantisation matrix coefficients for non-intra-coded frames, in 145662306a36Sopenharmony_ci zigzag scanning order. It is relevant for both luma and chroma 145762306a36Sopenharmony_ci components, although it can be superseded by the chroma-specific matrix 145862306a36Sopenharmony_ci for non-4:2:0 YUV formats. 145962306a36Sopenharmony_ci * - __u8 146062306a36Sopenharmony_ci - ``chroma_intra_quantiser_matrix[64]`` 146162306a36Sopenharmony_ci - The quantisation matrix coefficients for the chominance component of 146262306a36Sopenharmony_ci intra-coded frames, in zigzag scanning order. Only relevant for 146362306a36Sopenharmony_ci non-4:2:0 YUV formats. 146462306a36Sopenharmony_ci * - __u8 146562306a36Sopenharmony_ci - ``chroma_non_intra_quantiser_matrix[64]`` 146662306a36Sopenharmony_ci - The quantisation matrix coefficients for the chrominance component of 146762306a36Sopenharmony_ci non-intra-coded frames, in zigzag scanning order. Only relevant for 146862306a36Sopenharmony_ci non-4:2:0 YUV formats. 146962306a36Sopenharmony_ci 147062306a36Sopenharmony_ci.. raw:: latex 147162306a36Sopenharmony_ci 147262306a36Sopenharmony_ci \normalsize 147362306a36Sopenharmony_ci 147462306a36Sopenharmony_ci.. _v4l2-codec-stateless-vp9: 147562306a36Sopenharmony_ci 147662306a36Sopenharmony_ci``V4L2_CID_STATELESS_VP9_COMPRESSED_HDR (struct)`` 147762306a36Sopenharmony_ci Stores VP9 probabilities updates as parsed from the current compressed frame 147862306a36Sopenharmony_ci header. A value of zero in an array element means no update of the relevant 147962306a36Sopenharmony_ci probability. Motion vector-related updates contain a new value or zero. All 148062306a36Sopenharmony_ci other updates contain values translated with inv_map_table[] (see 6.3.5 in 148162306a36Sopenharmony_ci :ref:`vp9`). 148262306a36Sopenharmony_ci 148362306a36Sopenharmony_ci.. c:type:: v4l2_ctrl_vp9_compressed_hdr 148462306a36Sopenharmony_ci 148562306a36Sopenharmony_ci.. tabularcolumns:: |p{1cm}|p{4.8cm}|p{11.4cm}| 148662306a36Sopenharmony_ci 148762306a36Sopenharmony_ci.. cssclass:: longtable 148862306a36Sopenharmony_ci 148962306a36Sopenharmony_ci.. flat-table:: struct v4l2_ctrl_vp9_compressed_hdr 149062306a36Sopenharmony_ci :header-rows: 0 149162306a36Sopenharmony_ci :stub-columns: 0 149262306a36Sopenharmony_ci :widths: 1 1 2 149362306a36Sopenharmony_ci 149462306a36Sopenharmony_ci * - __u8 149562306a36Sopenharmony_ci - ``tx_mode`` 149662306a36Sopenharmony_ci - Specifies the TX mode. See :ref:`TX Mode <vp9_tx_mode>` for more details. 149762306a36Sopenharmony_ci * - __u8 149862306a36Sopenharmony_ci - ``tx8[2][1]`` 149962306a36Sopenharmony_ci - TX 8x8 probabilities delta. 150062306a36Sopenharmony_ci * - __u8 150162306a36Sopenharmony_ci - ``tx16[2][2]`` 150262306a36Sopenharmony_ci - TX 16x16 probabilities delta. 150362306a36Sopenharmony_ci * - __u8 150462306a36Sopenharmony_ci - ``tx32[2][3]`` 150562306a36Sopenharmony_ci - TX 32x32 probabilities delta. 150662306a36Sopenharmony_ci * - __u8 150762306a36Sopenharmony_ci - ``coef[4][2][2][6][6][3]`` 150862306a36Sopenharmony_ci - Coefficient probabilities delta. 150962306a36Sopenharmony_ci * - __u8 151062306a36Sopenharmony_ci - ``skip[3]`` 151162306a36Sopenharmony_ci - Skip probabilities delta. 151262306a36Sopenharmony_ci * - __u8 151362306a36Sopenharmony_ci - ``inter_mode[7][3]`` 151462306a36Sopenharmony_ci - Inter prediction mode probabilities delta. 151562306a36Sopenharmony_ci * - __u8 151662306a36Sopenharmony_ci - ``interp_filter[4][2]`` 151762306a36Sopenharmony_ci - Interpolation filter probabilities delta. 151862306a36Sopenharmony_ci * - __u8 151962306a36Sopenharmony_ci - ``is_inter[4]`` 152062306a36Sopenharmony_ci - Is inter-block probabilities delta. 152162306a36Sopenharmony_ci * - __u8 152262306a36Sopenharmony_ci - ``comp_mode[5]`` 152362306a36Sopenharmony_ci - Compound prediction mode probabilities delta. 152462306a36Sopenharmony_ci * - __u8 152562306a36Sopenharmony_ci - ``single_ref[5][2]`` 152662306a36Sopenharmony_ci - Single reference probabilities delta. 152762306a36Sopenharmony_ci * - __u8 152862306a36Sopenharmony_ci - ``comp_ref[5]`` 152962306a36Sopenharmony_ci - Compound reference probabilities delta. 153062306a36Sopenharmony_ci * - __u8 153162306a36Sopenharmony_ci - ``y_mode[4][9]`` 153262306a36Sopenharmony_ci - Y prediction mode probabilities delta. 153362306a36Sopenharmony_ci * - __u8 153462306a36Sopenharmony_ci - ``uv_mode[10][9]`` 153562306a36Sopenharmony_ci - UV prediction mode probabilities delta. 153662306a36Sopenharmony_ci * - __u8 153762306a36Sopenharmony_ci - ``partition[16][3]`` 153862306a36Sopenharmony_ci - Partition probabilities delta. 153962306a36Sopenharmony_ci * - __u8 154062306a36Sopenharmony_ci - ``mv.joint[3]`` 154162306a36Sopenharmony_ci - Motion vector joint probabilities delta. 154262306a36Sopenharmony_ci * - __u8 154362306a36Sopenharmony_ci - ``mv.sign[2]`` 154462306a36Sopenharmony_ci - Motion vector sign probabilities delta. 154562306a36Sopenharmony_ci * - __u8 154662306a36Sopenharmony_ci - ``mv.classes[2][10]`` 154762306a36Sopenharmony_ci - Motion vector class probabilities delta. 154862306a36Sopenharmony_ci * - __u8 154962306a36Sopenharmony_ci - ``mv.class0_bit[2]`` 155062306a36Sopenharmony_ci - Motion vector class0 bit probabilities delta. 155162306a36Sopenharmony_ci * - __u8 155262306a36Sopenharmony_ci - ``mv.bits[2][10]`` 155362306a36Sopenharmony_ci - Motion vector bits probabilities delta. 155462306a36Sopenharmony_ci * - __u8 155562306a36Sopenharmony_ci - ``mv.class0_fr[2][2][3]`` 155662306a36Sopenharmony_ci - Motion vector class0 fractional bit probabilities delta. 155762306a36Sopenharmony_ci * - __u8 155862306a36Sopenharmony_ci - ``mv.fr[2][3]`` 155962306a36Sopenharmony_ci - Motion vector fractional bit probabilities delta. 156062306a36Sopenharmony_ci * - __u8 156162306a36Sopenharmony_ci - ``mv.class0_hp[2]`` 156262306a36Sopenharmony_ci - Motion vector class0 high precision fractional bit probabilities delta. 156362306a36Sopenharmony_ci * - __u8 156462306a36Sopenharmony_ci - ``mv.hp[2]`` 156562306a36Sopenharmony_ci - Motion vector high precision fractional bit probabilities delta. 156662306a36Sopenharmony_ci 156762306a36Sopenharmony_ci.. _vp9_tx_mode: 156862306a36Sopenharmony_ci 156962306a36Sopenharmony_ci``TX Mode`` 157062306a36Sopenharmony_ci 157162306a36Sopenharmony_ci.. tabularcolumns:: |p{6.5cm}|p{0.5cm}|p{10.3cm}| 157262306a36Sopenharmony_ci 157362306a36Sopenharmony_ci.. flat-table:: 157462306a36Sopenharmony_ci :header-rows: 0 157562306a36Sopenharmony_ci :stub-columns: 0 157662306a36Sopenharmony_ci :widths: 1 1 2 157762306a36Sopenharmony_ci 157862306a36Sopenharmony_ci * - ``V4L2_VP9_TX_MODE_ONLY_4X4`` 157962306a36Sopenharmony_ci - 0 158062306a36Sopenharmony_ci - Transform size is 4x4. 158162306a36Sopenharmony_ci * - ``V4L2_VP9_TX_MODE_ALLOW_8X8`` 158262306a36Sopenharmony_ci - 1 158362306a36Sopenharmony_ci - Transform size can be up to 8x8. 158462306a36Sopenharmony_ci * - ``V4L2_VP9_TX_MODE_ALLOW_16X16`` 158562306a36Sopenharmony_ci - 2 158662306a36Sopenharmony_ci - Transform size can be up to 16x16. 158762306a36Sopenharmony_ci * - ``V4L2_VP9_TX_MODE_ALLOW_32X32`` 158862306a36Sopenharmony_ci - 3 158962306a36Sopenharmony_ci - transform size can be up to 32x32. 159062306a36Sopenharmony_ci * - ``V4L2_VP9_TX_MODE_SELECT`` 159162306a36Sopenharmony_ci - 4 159262306a36Sopenharmony_ci - Bitstream contains the transform size for each block. 159362306a36Sopenharmony_ci 159462306a36Sopenharmony_ciSee section '7.3.1 Tx mode semantics' of the :ref:`vp9` specification for more details. 159562306a36Sopenharmony_ci 159662306a36Sopenharmony_ci``V4L2_CID_STATELESS_VP9_FRAME (struct)`` 159762306a36Sopenharmony_ci Specifies the frame parameters for the associated VP9 frame decode request. 159862306a36Sopenharmony_ci This includes the necessary parameters for configuring a stateless hardware 159962306a36Sopenharmony_ci decoding pipeline for VP9. The bitstream parameters are defined according 160062306a36Sopenharmony_ci to :ref:`vp9`. 160162306a36Sopenharmony_ci 160262306a36Sopenharmony_ci.. c:type:: v4l2_ctrl_vp9_frame 160362306a36Sopenharmony_ci 160462306a36Sopenharmony_ci.. raw:: latex 160562306a36Sopenharmony_ci 160662306a36Sopenharmony_ci \small 160762306a36Sopenharmony_ci 160862306a36Sopenharmony_ci.. tabularcolumns:: |p{4.7cm}|p{5.5cm}|p{7.1cm}| 160962306a36Sopenharmony_ci 161062306a36Sopenharmony_ci.. cssclass:: longtable 161162306a36Sopenharmony_ci 161262306a36Sopenharmony_ci.. flat-table:: struct v4l2_ctrl_vp9_frame 161362306a36Sopenharmony_ci :header-rows: 0 161462306a36Sopenharmony_ci :stub-columns: 0 161562306a36Sopenharmony_ci :widths: 1 1 2 161662306a36Sopenharmony_ci 161762306a36Sopenharmony_ci * - struct :c:type:`v4l2_vp9_loop_filter` 161862306a36Sopenharmony_ci - ``lf`` 161962306a36Sopenharmony_ci - Loop filter parameters. See struct :c:type:`v4l2_vp9_loop_filter` for more details. 162062306a36Sopenharmony_ci * - struct :c:type:`v4l2_vp9_quantization` 162162306a36Sopenharmony_ci - ``quant`` 162262306a36Sopenharmony_ci - Quantization parameters. See :c:type:`v4l2_vp9_quantization` for more details. 162362306a36Sopenharmony_ci * - struct :c:type:`v4l2_vp9_segmentation` 162462306a36Sopenharmony_ci - ``seg`` 162562306a36Sopenharmony_ci - Segmentation parameters. See :c:type:`v4l2_vp9_segmentation` for more details. 162662306a36Sopenharmony_ci * - __u32 162762306a36Sopenharmony_ci - ``flags`` 162862306a36Sopenharmony_ci - Combination of V4L2_VP9_FRAME_FLAG_* flags. See :ref:`Frame Flags<vp9_frame_flags>`. 162962306a36Sopenharmony_ci * - __u16 163062306a36Sopenharmony_ci - ``compressed_header_size`` 163162306a36Sopenharmony_ci - Compressed header size in bytes. 163262306a36Sopenharmony_ci * - __u16 163362306a36Sopenharmony_ci - ``uncompressed_header_size`` 163462306a36Sopenharmony_ci - Uncompressed header size in bytes. 163562306a36Sopenharmony_ci * - __u16 163662306a36Sopenharmony_ci - ``frame_width_minus_1`` 163762306a36Sopenharmony_ci - Add 1 to get the frame width expressed in pixels. See section 7.2.3 in :ref:`vp9`. 163862306a36Sopenharmony_ci * - __u16 163962306a36Sopenharmony_ci - ``frame_height_minus_1`` 164062306a36Sopenharmony_ci - Add 1 to get the frame height expressed in pixels. See section 7.2.3 in :ref:`vp9`. 164162306a36Sopenharmony_ci * - __u16 164262306a36Sopenharmony_ci - ``render_width_minus_1`` 164362306a36Sopenharmony_ci - Add 1 to get the expected render width expressed in pixels. This is 164462306a36Sopenharmony_ci not used during the decoding process but might be used by HW scalers to 164562306a36Sopenharmony_ci prepare a frame that's ready for scanout. See section 7.2.4 in :ref:`vp9`. 164662306a36Sopenharmony_ci * - __u16 164762306a36Sopenharmony_ci - render_height_minus_1 164862306a36Sopenharmony_ci - Add 1 to get the expected render height expressed in pixels. This is 164962306a36Sopenharmony_ci not used during the decoding process but might be used by HW scalers to 165062306a36Sopenharmony_ci prepare a frame that's ready for scanout. See section 7.2.4 in :ref:`vp9`. 165162306a36Sopenharmony_ci * - __u64 165262306a36Sopenharmony_ci - ``last_frame_ts`` 165362306a36Sopenharmony_ci - "last" reference buffer timestamp. 165462306a36Sopenharmony_ci The timestamp refers to the ``timestamp`` field in 165562306a36Sopenharmony_ci struct :c:type:`v4l2_buffer`. Use the :c:func:`v4l2_timeval_to_ns()` 165662306a36Sopenharmony_ci function to convert the struct :c:type:`timeval` in struct 165762306a36Sopenharmony_ci :c:type:`v4l2_buffer` to a __u64. 165862306a36Sopenharmony_ci * - __u64 165962306a36Sopenharmony_ci - ``golden_frame_ts`` 166062306a36Sopenharmony_ci - "golden" reference buffer timestamp. 166162306a36Sopenharmony_ci The timestamp refers to the ``timestamp`` field in 166262306a36Sopenharmony_ci struct :c:type:`v4l2_buffer`. Use the :c:func:`v4l2_timeval_to_ns()` 166362306a36Sopenharmony_ci function to convert the struct :c:type:`timeval` in struct 166462306a36Sopenharmony_ci :c:type:`v4l2_buffer` to a __u64. 166562306a36Sopenharmony_ci * - __u64 166662306a36Sopenharmony_ci - ``alt_frame_ts`` 166762306a36Sopenharmony_ci - "alt" reference buffer timestamp. 166862306a36Sopenharmony_ci The timestamp refers to the ``timestamp`` field in 166962306a36Sopenharmony_ci struct :c:type:`v4l2_buffer`. Use the :c:func:`v4l2_timeval_to_ns()` 167062306a36Sopenharmony_ci function to convert the struct :c:type:`timeval` in struct 167162306a36Sopenharmony_ci :c:type:`v4l2_buffer` to a __u64. 167262306a36Sopenharmony_ci * - __u8 167362306a36Sopenharmony_ci - ``ref_frame_sign_bias`` 167462306a36Sopenharmony_ci - a bitfield specifying whether the sign bias is set for a given 167562306a36Sopenharmony_ci reference frame. See :ref:`Reference Frame Sign Bias<vp9_ref_frame_sign_bias>` 167662306a36Sopenharmony_ci for more details. 167762306a36Sopenharmony_ci * - __u8 167862306a36Sopenharmony_ci - ``reset_frame_context`` 167962306a36Sopenharmony_ci - specifies whether the frame context should be reset to default values. See 168062306a36Sopenharmony_ci :ref:`Reset Frame Context<vp9_reset_frame_context>` for more details. 168162306a36Sopenharmony_ci * - __u8 168262306a36Sopenharmony_ci - ``frame_context_idx`` 168362306a36Sopenharmony_ci - Frame context that should be used/updated. 168462306a36Sopenharmony_ci * - __u8 168562306a36Sopenharmony_ci - ``profile`` 168662306a36Sopenharmony_ci - VP9 profile. Can be 0, 1, 2 or 3. 168762306a36Sopenharmony_ci * - __u8 168862306a36Sopenharmony_ci - ``bit_depth`` 168962306a36Sopenharmony_ci - Component depth in bits. Can be 8, 10 or 12. Note that not all profiles 169062306a36Sopenharmony_ci support 10 and/or 12 bits depths. 169162306a36Sopenharmony_ci * - __u8 169262306a36Sopenharmony_ci - ``interpolation_filter`` 169362306a36Sopenharmony_ci - Specifies the filter selection used for performing inter prediction. See 169462306a36Sopenharmony_ci :ref:`Interpolation Filter<vp9_interpolation_filter>` for more details. 169562306a36Sopenharmony_ci * - __u8 169662306a36Sopenharmony_ci - ``tile_cols_log2`` 169762306a36Sopenharmony_ci - Specifies the base 2 logarithm of the width of each tile (where the 169862306a36Sopenharmony_ci width is measured in units of 8x8 blocks). Shall be less than or equal 169962306a36Sopenharmony_ci to 6. 170062306a36Sopenharmony_ci * - __u8 170162306a36Sopenharmony_ci - ``tile_rows_log2`` 170262306a36Sopenharmony_ci - Specifies the base 2 logarithm of the height of each tile (where the 170362306a36Sopenharmony_ci height is measured in units of 8x8 blocks). 170462306a36Sopenharmony_ci * - __u8 170562306a36Sopenharmony_ci - ``reference_mode`` 170662306a36Sopenharmony_ci - Specifies the type of inter prediction to be used. See 170762306a36Sopenharmony_ci :ref:`Reference Mode<vp9_reference_mode>` for more details. Note that 170862306a36Sopenharmony_ci this is derived as part of the compressed header parsing process and 170962306a36Sopenharmony_ci for this reason should have been part of 171062306a36Sopenharmony_ci :c:type: `v4l2_ctrl_vp9_compressed_hdr` optional control. It is safe to 171162306a36Sopenharmony_ci set this value to zero if the driver does not require compressed 171262306a36Sopenharmony_ci headers. 171362306a36Sopenharmony_ci * - __u8 171462306a36Sopenharmony_ci - ``reserved[7]`` 171562306a36Sopenharmony_ci - Applications and drivers must set this to zero. 171662306a36Sopenharmony_ci 171762306a36Sopenharmony_ci.. raw:: latex 171862306a36Sopenharmony_ci 171962306a36Sopenharmony_ci \normalsize 172062306a36Sopenharmony_ci 172162306a36Sopenharmony_ci.. _vp9_frame_flags: 172262306a36Sopenharmony_ci 172362306a36Sopenharmony_ci``Frame Flags`` 172462306a36Sopenharmony_ci 172562306a36Sopenharmony_ci.. tabularcolumns:: |p{10.0cm}|p{1.2cm}|p{6.1cm}| 172662306a36Sopenharmony_ci 172762306a36Sopenharmony_ci.. flat-table:: 172862306a36Sopenharmony_ci :header-rows: 0 172962306a36Sopenharmony_ci :stub-columns: 0 173062306a36Sopenharmony_ci :widths: 1 1 2 173162306a36Sopenharmony_ci 173262306a36Sopenharmony_ci * - ``V4L2_VP9_FRAME_FLAG_KEY_FRAME`` 173362306a36Sopenharmony_ci - 0x001 173462306a36Sopenharmony_ci - The frame is a key frame. 173562306a36Sopenharmony_ci * - ``V4L2_VP9_FRAME_FLAG_SHOW_FRAME`` 173662306a36Sopenharmony_ci - 0x002 173762306a36Sopenharmony_ci - The frame should be displayed. 173862306a36Sopenharmony_ci * - ``V4L2_VP9_FRAME_FLAG_ERROR_RESILIENT`` 173962306a36Sopenharmony_ci - 0x004 174062306a36Sopenharmony_ci - The decoding should be error resilient. 174162306a36Sopenharmony_ci * - ``V4L2_VP9_FRAME_FLAG_INTRA_ONLY`` 174262306a36Sopenharmony_ci - 0x008 174362306a36Sopenharmony_ci - The frame does not reference other frames. 174462306a36Sopenharmony_ci * - ``V4L2_VP9_FRAME_FLAG_ALLOW_HIGH_PREC_MV`` 174562306a36Sopenharmony_ci - 0x010 174662306a36Sopenharmony_ci - The frame can use high precision motion vectors. 174762306a36Sopenharmony_ci * - ``V4L2_VP9_FRAME_FLAG_REFRESH_FRAME_CTX`` 174862306a36Sopenharmony_ci - 0x020 174962306a36Sopenharmony_ci - Frame context should be updated after decoding. 175062306a36Sopenharmony_ci * - ``V4L2_VP9_FRAME_FLAG_PARALLEL_DEC_MODE`` 175162306a36Sopenharmony_ci - 0x040 175262306a36Sopenharmony_ci - Parallel decoding is used. 175362306a36Sopenharmony_ci * - ``V4L2_VP9_FRAME_FLAG_X_SUBSAMPLING`` 175462306a36Sopenharmony_ci - 0x080 175562306a36Sopenharmony_ci - Vertical subsampling is enabled. 175662306a36Sopenharmony_ci * - ``V4L2_VP9_FRAME_FLAG_Y_SUBSAMPLING`` 175762306a36Sopenharmony_ci - 0x100 175862306a36Sopenharmony_ci - Horizontal subsampling is enabled. 175962306a36Sopenharmony_ci * - ``V4L2_VP9_FRAME_FLAG_COLOR_RANGE_FULL_SWING`` 176062306a36Sopenharmony_ci - 0x200 176162306a36Sopenharmony_ci - The full UV range is used. 176262306a36Sopenharmony_ci 176362306a36Sopenharmony_ci.. _vp9_ref_frame_sign_bias: 176462306a36Sopenharmony_ci 176562306a36Sopenharmony_ci``Reference Frame Sign Bias`` 176662306a36Sopenharmony_ci 176762306a36Sopenharmony_ci.. tabularcolumns:: |p{7.0cm}|p{1.2cm}|p{9.1cm}| 176862306a36Sopenharmony_ci 176962306a36Sopenharmony_ci.. flat-table:: 177062306a36Sopenharmony_ci :header-rows: 0 177162306a36Sopenharmony_ci :stub-columns: 0 177262306a36Sopenharmony_ci :widths: 1 1 2 177362306a36Sopenharmony_ci 177462306a36Sopenharmony_ci * - ``V4L2_VP9_SIGN_BIAS_LAST`` 177562306a36Sopenharmony_ci - 0x1 177662306a36Sopenharmony_ci - Sign bias is set for the last reference frame. 177762306a36Sopenharmony_ci * - ``V4L2_VP9_SIGN_BIAS_GOLDEN`` 177862306a36Sopenharmony_ci - 0x2 177962306a36Sopenharmony_ci - Sign bias is set for the golden reference frame. 178062306a36Sopenharmony_ci * - ``V4L2_VP9_SIGN_BIAS_ALT`` 178162306a36Sopenharmony_ci - 0x2 178262306a36Sopenharmony_ci - Sign bias is set for the alt reference frame. 178362306a36Sopenharmony_ci 178462306a36Sopenharmony_ci.. _vp9_reset_frame_context: 178562306a36Sopenharmony_ci 178662306a36Sopenharmony_ci``Reset Frame Context`` 178762306a36Sopenharmony_ci 178862306a36Sopenharmony_ci.. tabularcolumns:: |p{7.0cm}|p{1.2cm}|p{9.1cm}| 178962306a36Sopenharmony_ci 179062306a36Sopenharmony_ci.. flat-table:: 179162306a36Sopenharmony_ci :header-rows: 0 179262306a36Sopenharmony_ci :stub-columns: 0 179362306a36Sopenharmony_ci :widths: 1 1 2 179462306a36Sopenharmony_ci 179562306a36Sopenharmony_ci * - ``V4L2_VP9_RESET_FRAME_CTX_NONE`` 179662306a36Sopenharmony_ci - 0 179762306a36Sopenharmony_ci - Do not reset any frame context. 179862306a36Sopenharmony_ci * - ``V4L2_VP9_RESET_FRAME_CTX_SPEC`` 179962306a36Sopenharmony_ci - 1 180062306a36Sopenharmony_ci - Reset the frame context pointed to by 180162306a36Sopenharmony_ci :c:type:`v4l2_ctrl_vp9_frame`.frame_context_idx. 180262306a36Sopenharmony_ci * - ``V4L2_VP9_RESET_FRAME_CTX_ALL`` 180362306a36Sopenharmony_ci - 2 180462306a36Sopenharmony_ci - Reset all frame contexts. 180562306a36Sopenharmony_ci 180662306a36Sopenharmony_ciSee section '7.2 Uncompressed header semantics' of the :ref:`vp9` specification 180762306a36Sopenharmony_cifor more details. 180862306a36Sopenharmony_ci 180962306a36Sopenharmony_ci.. _vp9_interpolation_filter: 181062306a36Sopenharmony_ci 181162306a36Sopenharmony_ci``Interpolation Filter`` 181262306a36Sopenharmony_ci 181362306a36Sopenharmony_ci.. tabularcolumns:: |p{9.0cm}|p{1.2cm}|p{7.1cm}| 181462306a36Sopenharmony_ci 181562306a36Sopenharmony_ci.. flat-table:: 181662306a36Sopenharmony_ci :header-rows: 0 181762306a36Sopenharmony_ci :stub-columns: 0 181862306a36Sopenharmony_ci :widths: 1 1 2 181962306a36Sopenharmony_ci 182062306a36Sopenharmony_ci * - ``V4L2_VP9_INTERP_FILTER_EIGHTTAP`` 182162306a36Sopenharmony_ci - 0 182262306a36Sopenharmony_ci - Eight tap filter. 182362306a36Sopenharmony_ci * - ``V4L2_VP9_INTERP_FILTER_EIGHTTAP_SMOOTH`` 182462306a36Sopenharmony_ci - 1 182562306a36Sopenharmony_ci - Eight tap smooth filter. 182662306a36Sopenharmony_ci * - ``V4L2_VP9_INTERP_FILTER_EIGHTTAP_SHARP`` 182762306a36Sopenharmony_ci - 2 182862306a36Sopenharmony_ci - Eeight tap sharp filter. 182962306a36Sopenharmony_ci * - ``V4L2_VP9_INTERP_FILTER_BILINEAR`` 183062306a36Sopenharmony_ci - 3 183162306a36Sopenharmony_ci - Bilinear filter. 183262306a36Sopenharmony_ci * - ``V4L2_VP9_INTERP_FILTER_SWITCHABLE`` 183362306a36Sopenharmony_ci - 4 183462306a36Sopenharmony_ci - Filter selection is signaled at the block level. 183562306a36Sopenharmony_ci 183662306a36Sopenharmony_ciSee section '7.2.7 Interpolation filter semantics' of the :ref:`vp9` specification 183762306a36Sopenharmony_cifor more details. 183862306a36Sopenharmony_ci 183962306a36Sopenharmony_ci.. _vp9_reference_mode: 184062306a36Sopenharmony_ci 184162306a36Sopenharmony_ci``Reference Mode`` 184262306a36Sopenharmony_ci 184362306a36Sopenharmony_ci.. tabularcolumns:: |p{9.6cm}|p{0.5cm}|p{7.2cm}| 184462306a36Sopenharmony_ci 184562306a36Sopenharmony_ci.. flat-table:: 184662306a36Sopenharmony_ci :header-rows: 0 184762306a36Sopenharmony_ci :stub-columns: 0 184862306a36Sopenharmony_ci :widths: 1 1 2 184962306a36Sopenharmony_ci 185062306a36Sopenharmony_ci * - ``V4L2_VP9_REFERENCE_MODE_SINGLE_REFERENCE`` 185162306a36Sopenharmony_ci - 0 185262306a36Sopenharmony_ci - Indicates that all the inter blocks use only a single reference frame 185362306a36Sopenharmony_ci to generate motion compensated prediction. 185462306a36Sopenharmony_ci * - ``V4L2_VP9_REFERENCE_MODE_COMPOUND_REFERENCE`` 185562306a36Sopenharmony_ci - 1 185662306a36Sopenharmony_ci - Requires all the inter blocks to use compound mode. Single reference 185762306a36Sopenharmony_ci frame prediction is not allowed. 185862306a36Sopenharmony_ci * - ``V4L2_VP9_REFERENCE_MODE_SELECT`` 185962306a36Sopenharmony_ci - 2 186062306a36Sopenharmony_ci - Allows each individual inter block to select between single and 186162306a36Sopenharmony_ci compound prediction modes. 186262306a36Sopenharmony_ci 186362306a36Sopenharmony_ciSee section '7.3.6 Frame reference mode semantics' of the :ref:`vp9` specification for more details. 186462306a36Sopenharmony_ci 186562306a36Sopenharmony_ci.. c:type:: v4l2_vp9_segmentation 186662306a36Sopenharmony_ci 186762306a36Sopenharmony_ciEncodes the quantization parameters. See section '7.2.10 Segmentation 186862306a36Sopenharmony_ciparams syntax' of the :ref:`vp9` specification for more details. 186962306a36Sopenharmony_ci 187062306a36Sopenharmony_ci.. tabularcolumns:: |p{0.8cm}|p{5cm}|p{11.4cm}| 187162306a36Sopenharmony_ci 187262306a36Sopenharmony_ci.. cssclass:: longtable 187362306a36Sopenharmony_ci 187462306a36Sopenharmony_ci.. flat-table:: struct v4l2_vp9_segmentation 187562306a36Sopenharmony_ci :header-rows: 0 187662306a36Sopenharmony_ci :stub-columns: 0 187762306a36Sopenharmony_ci :widths: 1 1 2 187862306a36Sopenharmony_ci 187962306a36Sopenharmony_ci * - __u8 188062306a36Sopenharmony_ci - ``feature_data[8][4]`` 188162306a36Sopenharmony_ci - Data attached to each feature. Data entry is only valid if the feature 188262306a36Sopenharmony_ci is enabled. The array shall be indexed with segment number as the first dimension 188362306a36Sopenharmony_ci (0..7) and one of V4L2_VP9_SEG_* as the second dimension. 188462306a36Sopenharmony_ci See :ref:`Segment Feature IDs<vp9_segment_feature>`. 188562306a36Sopenharmony_ci * - __u8 188662306a36Sopenharmony_ci - ``feature_enabled[8]`` 188762306a36Sopenharmony_ci - Bitmask defining which features are enabled in each segment. The value for each 188862306a36Sopenharmony_ci segment is a combination of V4L2_VP9_SEGMENT_FEATURE_ENABLED(id) values where id is 188962306a36Sopenharmony_ci one of V4L2_VP9_SEG_*. See :ref:`Segment Feature IDs<vp9_segment_feature>`. 189062306a36Sopenharmony_ci * - __u8 189162306a36Sopenharmony_ci - ``tree_probs[7]`` 189262306a36Sopenharmony_ci - Specifies the probability values to be used when decoding a Segment-ID. 189362306a36Sopenharmony_ci See '5.15 Segmentation map' section of :ref:`vp9` for more details. 189462306a36Sopenharmony_ci * - __u8 189562306a36Sopenharmony_ci - ``pred_probs[3]`` 189662306a36Sopenharmony_ci - Specifies the probability values to be used when decoding a 189762306a36Sopenharmony_ci Predicted-Segment-ID. See '6.4.14 Get segment id syntax' 189862306a36Sopenharmony_ci section of :ref:`vp9` for more details. 189962306a36Sopenharmony_ci * - __u8 190062306a36Sopenharmony_ci - ``flags`` 190162306a36Sopenharmony_ci - Combination of V4L2_VP9_SEGMENTATION_FLAG_* flags. See 190262306a36Sopenharmony_ci :ref:`Segmentation Flags<vp9_segmentation_flags>`. 190362306a36Sopenharmony_ci * - __u8 190462306a36Sopenharmony_ci - ``reserved[5]`` 190562306a36Sopenharmony_ci - Applications and drivers must set this to zero. 190662306a36Sopenharmony_ci 190762306a36Sopenharmony_ci.. _vp9_segment_feature: 190862306a36Sopenharmony_ci 190962306a36Sopenharmony_ci``Segment feature IDs`` 191062306a36Sopenharmony_ci 191162306a36Sopenharmony_ci.. tabularcolumns:: |p{6.0cm}|p{1cm}|p{10.3cm}| 191262306a36Sopenharmony_ci 191362306a36Sopenharmony_ci.. flat-table:: 191462306a36Sopenharmony_ci :header-rows: 0 191562306a36Sopenharmony_ci :stub-columns: 0 191662306a36Sopenharmony_ci :widths: 1 1 2 191762306a36Sopenharmony_ci 191862306a36Sopenharmony_ci * - ``V4L2_VP9_SEG_LVL_ALT_Q`` 191962306a36Sopenharmony_ci - 0 192062306a36Sopenharmony_ci - Quantizer segment feature. 192162306a36Sopenharmony_ci * - ``V4L2_VP9_SEG_LVL_ALT_L`` 192262306a36Sopenharmony_ci - 1 192362306a36Sopenharmony_ci - Loop filter segment feature. 192462306a36Sopenharmony_ci * - ``V4L2_VP9_SEG_LVL_REF_FRAME`` 192562306a36Sopenharmony_ci - 2 192662306a36Sopenharmony_ci - Reference frame segment feature. 192762306a36Sopenharmony_ci * - ``V4L2_VP9_SEG_LVL_SKIP`` 192862306a36Sopenharmony_ci - 3 192962306a36Sopenharmony_ci - Skip segment feature. 193062306a36Sopenharmony_ci * - ``V4L2_VP9_SEG_LVL_MAX`` 193162306a36Sopenharmony_ci - 4 193262306a36Sopenharmony_ci - Number of segment features. 193362306a36Sopenharmony_ci 193462306a36Sopenharmony_ci.. _vp9_segmentation_flags: 193562306a36Sopenharmony_ci 193662306a36Sopenharmony_ci``Segmentation Flags`` 193762306a36Sopenharmony_ci 193862306a36Sopenharmony_ci.. tabularcolumns:: |p{10.6cm}|p{0.8cm}|p{5.9cm}| 193962306a36Sopenharmony_ci 194062306a36Sopenharmony_ci.. flat-table:: 194162306a36Sopenharmony_ci :header-rows: 0 194262306a36Sopenharmony_ci :stub-columns: 0 194362306a36Sopenharmony_ci :widths: 1 1 2 194462306a36Sopenharmony_ci 194562306a36Sopenharmony_ci * - ``V4L2_VP9_SEGMENTATION_FLAG_ENABLED`` 194662306a36Sopenharmony_ci - 0x01 194762306a36Sopenharmony_ci - Indicates that this frame makes use of the segmentation tool. 194862306a36Sopenharmony_ci * - ``V4L2_VP9_SEGMENTATION_FLAG_UPDATE_MAP`` 194962306a36Sopenharmony_ci - 0x02 195062306a36Sopenharmony_ci - Indicates that the segmentation map should be updated during the 195162306a36Sopenharmony_ci decoding of this frame. 195262306a36Sopenharmony_ci * - ``V4L2_VP9_SEGMENTATION_FLAG_TEMPORAL_UPDATE`` 195362306a36Sopenharmony_ci - 0x04 195462306a36Sopenharmony_ci - Indicates that the updates to the segmentation map are coded 195562306a36Sopenharmony_ci relative to the existing segmentation map. 195662306a36Sopenharmony_ci * - ``V4L2_VP9_SEGMENTATION_FLAG_UPDATE_DATA`` 195762306a36Sopenharmony_ci - 0x08 195862306a36Sopenharmony_ci - Indicates that new parameters are about to be specified for each 195962306a36Sopenharmony_ci segment. 196062306a36Sopenharmony_ci * - ``V4L2_VP9_SEGMENTATION_FLAG_ABS_OR_DELTA_UPDATE`` 196162306a36Sopenharmony_ci - 0x10 196262306a36Sopenharmony_ci - Indicates that the segmentation parameters represent the actual values 196362306a36Sopenharmony_ci to be used. 196462306a36Sopenharmony_ci 196562306a36Sopenharmony_ci.. c:type:: v4l2_vp9_quantization 196662306a36Sopenharmony_ci 196762306a36Sopenharmony_ciEncodes the quantization parameters. See section '7.2.9 Quantization params 196862306a36Sopenharmony_cisyntax' of the VP9 specification for more details. 196962306a36Sopenharmony_ci 197062306a36Sopenharmony_ci.. tabularcolumns:: |p{0.8cm}|p{4cm}|p{12.4cm}| 197162306a36Sopenharmony_ci 197262306a36Sopenharmony_ci.. cssclass:: longtable 197362306a36Sopenharmony_ci 197462306a36Sopenharmony_ci.. flat-table:: struct v4l2_vp9_quantization 197562306a36Sopenharmony_ci :header-rows: 0 197662306a36Sopenharmony_ci :stub-columns: 0 197762306a36Sopenharmony_ci :widths: 1 1 2 197862306a36Sopenharmony_ci 197962306a36Sopenharmony_ci * - __u8 198062306a36Sopenharmony_ci - ``base_q_idx`` 198162306a36Sopenharmony_ci - Indicates the base frame qindex. 198262306a36Sopenharmony_ci * - __s8 198362306a36Sopenharmony_ci - ``delta_q_y_dc`` 198462306a36Sopenharmony_ci - Indicates the Y DC quantizer relative to base_q_idx. 198562306a36Sopenharmony_ci * - __s8 198662306a36Sopenharmony_ci - ``delta_q_uv_dc`` 198762306a36Sopenharmony_ci - Indicates the UV DC quantizer relative to base_q_idx. 198862306a36Sopenharmony_ci * - __s8 198962306a36Sopenharmony_ci - ``delta_q_uv_ac`` 199062306a36Sopenharmony_ci - Indicates the UV AC quantizer relative to base_q_idx. 199162306a36Sopenharmony_ci * - __u8 199262306a36Sopenharmony_ci - ``reserved[4]`` 199362306a36Sopenharmony_ci - Applications and drivers must set this to zero. 199462306a36Sopenharmony_ci 199562306a36Sopenharmony_ci.. c:type:: v4l2_vp9_loop_filter 199662306a36Sopenharmony_ci 199762306a36Sopenharmony_ciThis structure contains all loop filter related parameters. See sections 199862306a36Sopenharmony_ci'7.2.8 Loop filter semantics' of the :ref:`vp9` specification for more details. 199962306a36Sopenharmony_ci 200062306a36Sopenharmony_ci.. tabularcolumns:: |p{0.8cm}|p{4cm}|p{12.4cm}| 200162306a36Sopenharmony_ci 200262306a36Sopenharmony_ci.. cssclass:: longtable 200362306a36Sopenharmony_ci 200462306a36Sopenharmony_ci.. flat-table:: struct v4l2_vp9_loop_filter 200562306a36Sopenharmony_ci :header-rows: 0 200662306a36Sopenharmony_ci :stub-columns: 0 200762306a36Sopenharmony_ci :widths: 1 1 2 200862306a36Sopenharmony_ci 200962306a36Sopenharmony_ci * - __s8 201062306a36Sopenharmony_ci - ``ref_deltas[4]`` 201162306a36Sopenharmony_ci - Contains the adjustment needed for the filter level based on the chosen 201262306a36Sopenharmony_ci reference frame. 201362306a36Sopenharmony_ci * - __s8 201462306a36Sopenharmony_ci - ``mode_deltas[2]`` 201562306a36Sopenharmony_ci - Contains the adjustment needed for the filter level based on the chosen 201662306a36Sopenharmony_ci mode. 201762306a36Sopenharmony_ci * - __u8 201862306a36Sopenharmony_ci - ``level`` 201962306a36Sopenharmony_ci - Indicates the loop filter strength. 202062306a36Sopenharmony_ci * - __u8 202162306a36Sopenharmony_ci - ``sharpness`` 202262306a36Sopenharmony_ci - Indicates the sharpness level. 202362306a36Sopenharmony_ci * - __u8 202462306a36Sopenharmony_ci - ``flags`` 202562306a36Sopenharmony_ci - Combination of V4L2_VP9_LOOP_FILTER_FLAG_* flags. 202662306a36Sopenharmony_ci See :ref:`Loop Filter Flags <vp9_loop_filter_flags>`. 202762306a36Sopenharmony_ci * - __u8 202862306a36Sopenharmony_ci - ``reserved[7]`` 202962306a36Sopenharmony_ci - Applications and drivers must set this to zero. 203062306a36Sopenharmony_ci 203162306a36Sopenharmony_ci 203262306a36Sopenharmony_ci.. _vp9_loop_filter_flags: 203362306a36Sopenharmony_ci 203462306a36Sopenharmony_ci``Loop Filter Flags`` 203562306a36Sopenharmony_ci 203662306a36Sopenharmony_ci.. tabularcolumns:: |p{9.6cm}|p{0.5cm}|p{7.2cm}| 203762306a36Sopenharmony_ci 203862306a36Sopenharmony_ci.. flat-table:: 203962306a36Sopenharmony_ci :header-rows: 0 204062306a36Sopenharmony_ci :stub-columns: 0 204162306a36Sopenharmony_ci :widths: 1 1 2 204262306a36Sopenharmony_ci 204362306a36Sopenharmony_ci * - ``V4L2_VP9_LOOP_FILTER_FLAG_DELTA_ENABLED`` 204462306a36Sopenharmony_ci - 0x1 204562306a36Sopenharmony_ci - When set, the filter level depends on the mode and reference frame used 204662306a36Sopenharmony_ci to predict a block. 204762306a36Sopenharmony_ci * - ``V4L2_VP9_LOOP_FILTER_FLAG_DELTA_UPDATE`` 204862306a36Sopenharmony_ci - 0x2 204962306a36Sopenharmony_ci - When set, the bitstream contains additional syntax elements that 205062306a36Sopenharmony_ci specify which mode and reference frame deltas are to be updated. 205162306a36Sopenharmony_ci 205262306a36Sopenharmony_ci.. _v4l2-codec-stateless-hevc: 205362306a36Sopenharmony_ci 205462306a36Sopenharmony_ci``V4L2_CID_STATELESS_HEVC_SPS (struct)`` 205562306a36Sopenharmony_ci Specifies the Sequence Parameter Set fields (as extracted from the 205662306a36Sopenharmony_ci bitstream) for the associated HEVC slice data. 205762306a36Sopenharmony_ci These bitstream parameters are defined according to :ref:`hevc`. 205862306a36Sopenharmony_ci They are described in section 7.4.3.2 "Sequence parameter set RBSP 205962306a36Sopenharmony_ci semantics" of the specification. 206062306a36Sopenharmony_ci 206162306a36Sopenharmony_ci.. c:type:: v4l2_ctrl_hevc_sps 206262306a36Sopenharmony_ci 206362306a36Sopenharmony_ci.. raw:: latex 206462306a36Sopenharmony_ci 206562306a36Sopenharmony_ci \small 206662306a36Sopenharmony_ci 206762306a36Sopenharmony_ci.. tabularcolumns:: |p{1.2cm}|p{9.2cm}|p{6.9cm}| 206862306a36Sopenharmony_ci 206962306a36Sopenharmony_ci.. cssclass:: longtable 207062306a36Sopenharmony_ci 207162306a36Sopenharmony_ci.. flat-table:: struct v4l2_ctrl_hevc_sps 207262306a36Sopenharmony_ci :header-rows: 0 207362306a36Sopenharmony_ci :stub-columns: 0 207462306a36Sopenharmony_ci :widths: 1 1 2 207562306a36Sopenharmony_ci 207662306a36Sopenharmony_ci * - __u8 207762306a36Sopenharmony_ci - ``video_parameter_set_id`` 207862306a36Sopenharmony_ci - Specifies the value of the vps_video_parameter_set_id of the active VPS 207962306a36Sopenharmony_ci as described in section "7.4.3.2.1 General sequence parameter set RBSP semantics" 208062306a36Sopenharmony_ci of H.265 specifications. 208162306a36Sopenharmony_ci * - __u8 208262306a36Sopenharmony_ci - ``seq_parameter_set_id`` 208362306a36Sopenharmony_ci - Provides an identifier for the SPS for reference by other syntax elements 208462306a36Sopenharmony_ci as described in section "7.4.3.2.1 General sequence parameter set RBSP semantics" 208562306a36Sopenharmony_ci of H.265 specifications. 208662306a36Sopenharmony_ci * - __u16 208762306a36Sopenharmony_ci - ``pic_width_in_luma_samples`` 208862306a36Sopenharmony_ci - Specifies the width of each decoded picture in units of luma samples. 208962306a36Sopenharmony_ci * - __u16 209062306a36Sopenharmony_ci - ``pic_height_in_luma_samples`` 209162306a36Sopenharmony_ci - Specifies the height of each decoded picture in units of luma samples. 209262306a36Sopenharmony_ci * - __u8 209362306a36Sopenharmony_ci - ``bit_depth_luma_minus8`` 209462306a36Sopenharmony_ci - This value plus 8 specifies the bit depth of the samples of the luma array. 209562306a36Sopenharmony_ci * - __u8 209662306a36Sopenharmony_ci - ``bit_depth_chroma_minus8`` 209762306a36Sopenharmony_ci - This value plus 8 specifies the bit depth of the samples of the chroma arrays. 209862306a36Sopenharmony_ci * - __u8 209962306a36Sopenharmony_ci - ``log2_max_pic_order_cnt_lsb_minus4`` 210062306a36Sopenharmony_ci - Specifies the value of the variable MaxPicOrderCntLsb. 210162306a36Sopenharmony_ci * - __u8 210262306a36Sopenharmony_ci - ``sps_max_dec_pic_buffering_minus1`` 210362306a36Sopenharmony_ci - This value plus 1 specifies the maximum required size of the decoded picture buffer for 210462306a36Sopenharmony_ci the coded video sequence (CVS). 210562306a36Sopenharmony_ci * - __u8 210662306a36Sopenharmony_ci - ``sps_max_num_reorder_pics`` 210762306a36Sopenharmony_ci - Indicates the maximum allowed number of pictures. 210862306a36Sopenharmony_ci * - __u8 210962306a36Sopenharmony_ci - ``sps_max_latency_increase_plus1`` 211062306a36Sopenharmony_ci - Used to signal MaxLatencyPictures, which indicates the maximum number of 211162306a36Sopenharmony_ci pictures that can precede any picture in output order and follow that 211262306a36Sopenharmony_ci picture in decoding order. 211362306a36Sopenharmony_ci * - __u8 211462306a36Sopenharmony_ci - ``log2_min_luma_coding_block_size_minus3`` 211562306a36Sopenharmony_ci - This value plus 3 specifies the minimum luma coding block size. 211662306a36Sopenharmony_ci * - __u8 211762306a36Sopenharmony_ci - ``log2_diff_max_min_luma_coding_block_size`` 211862306a36Sopenharmony_ci - Specifies the difference between the maximum and minimum luma coding block size. 211962306a36Sopenharmony_ci * - __u8 212062306a36Sopenharmony_ci - ``log2_min_luma_transform_block_size_minus2`` 212162306a36Sopenharmony_ci - This value plus 2 specifies the minimum luma transform block size. 212262306a36Sopenharmony_ci * - __u8 212362306a36Sopenharmony_ci - ``log2_diff_max_min_luma_transform_block_size`` 212462306a36Sopenharmony_ci - Specifies the difference between the maximum and minimum luma transform block size. 212562306a36Sopenharmony_ci * - __u8 212662306a36Sopenharmony_ci - ``max_transform_hierarchy_depth_inter`` 212762306a36Sopenharmony_ci - Specifies the maximum hierarchy depth for transform units of coding units coded 212862306a36Sopenharmony_ci in inter prediction mode. 212962306a36Sopenharmony_ci * - __u8 213062306a36Sopenharmony_ci - ``max_transform_hierarchy_depth_intra`` 213162306a36Sopenharmony_ci - Specifies the maximum hierarchy depth for transform units of coding units coded in 213262306a36Sopenharmony_ci intra prediction mode. 213362306a36Sopenharmony_ci * - __u8 213462306a36Sopenharmony_ci - ``pcm_sample_bit_depth_luma_minus1`` 213562306a36Sopenharmony_ci - This value plus 1 specifies the number of bits used to represent each of PCM sample values of the 213662306a36Sopenharmony_ci luma component. 213762306a36Sopenharmony_ci * - __u8 213862306a36Sopenharmony_ci - ``pcm_sample_bit_depth_chroma_minus1`` 213962306a36Sopenharmony_ci - Specifies the number of bits used to represent each of PCM sample values of 214062306a36Sopenharmony_ci the chroma components. 214162306a36Sopenharmony_ci * - __u8 214262306a36Sopenharmony_ci - ``log2_min_pcm_luma_coding_block_size_minus3`` 214362306a36Sopenharmony_ci - Plus 3 specifies the minimum size of coding blocks. 214462306a36Sopenharmony_ci * - __u8 214562306a36Sopenharmony_ci - ``log2_diff_max_min_pcm_luma_coding_block_size`` 214662306a36Sopenharmony_ci - Specifies the difference between the maximum and minimum size of coding blocks. 214762306a36Sopenharmony_ci * - __u8 214862306a36Sopenharmony_ci - ``num_short_term_ref_pic_sets`` 214962306a36Sopenharmony_ci - Specifies the number of st_ref_pic_set() syntax structures included in the SPS. 215062306a36Sopenharmony_ci * - __u8 215162306a36Sopenharmony_ci - ``num_long_term_ref_pics_sps`` 215262306a36Sopenharmony_ci - Specifies the number of candidate long-term reference pictures that are 215362306a36Sopenharmony_ci specified in the SPS. 215462306a36Sopenharmony_ci * - __u8 215562306a36Sopenharmony_ci - ``chroma_format_idc`` 215662306a36Sopenharmony_ci - Specifies the chroma sampling. 215762306a36Sopenharmony_ci * - __u8 215862306a36Sopenharmony_ci - ``sps_max_sub_layers_minus1`` 215962306a36Sopenharmony_ci - This value plus 1 specifies the maximum number of temporal sub-layers. 216062306a36Sopenharmony_ci * - __u64 216162306a36Sopenharmony_ci - ``flags`` 216262306a36Sopenharmony_ci - See :ref:`Sequence Parameter Set Flags <hevc_sps_flags>` 216362306a36Sopenharmony_ci 216462306a36Sopenharmony_ci.. raw:: latex 216562306a36Sopenharmony_ci 216662306a36Sopenharmony_ci \normalsize 216762306a36Sopenharmony_ci 216862306a36Sopenharmony_ci.. _hevc_sps_flags: 216962306a36Sopenharmony_ci 217062306a36Sopenharmony_ci``Sequence Parameter Set Flags`` 217162306a36Sopenharmony_ci 217262306a36Sopenharmony_ci.. raw:: latex 217362306a36Sopenharmony_ci 217462306a36Sopenharmony_ci \small 217562306a36Sopenharmony_ci 217662306a36Sopenharmony_ci.. cssclass:: longtable 217762306a36Sopenharmony_ci 217862306a36Sopenharmony_ci.. flat-table:: 217962306a36Sopenharmony_ci :header-rows: 0 218062306a36Sopenharmony_ci :stub-columns: 0 218162306a36Sopenharmony_ci :widths: 1 1 2 218262306a36Sopenharmony_ci 218362306a36Sopenharmony_ci * - ``V4L2_HEVC_SPS_FLAG_SEPARATE_COLOUR_PLANE`` 218462306a36Sopenharmony_ci - 0x00000001 218562306a36Sopenharmony_ci - 218662306a36Sopenharmony_ci * - ``V4L2_HEVC_SPS_FLAG_SCALING_LIST_ENABLED`` 218762306a36Sopenharmony_ci - 0x00000002 218862306a36Sopenharmony_ci - 218962306a36Sopenharmony_ci * - ``V4L2_HEVC_SPS_FLAG_AMP_ENABLED`` 219062306a36Sopenharmony_ci - 0x00000004 219162306a36Sopenharmony_ci - 219262306a36Sopenharmony_ci * - ``V4L2_HEVC_SPS_FLAG_SAMPLE_ADAPTIVE_OFFSET`` 219362306a36Sopenharmony_ci - 0x00000008 219462306a36Sopenharmony_ci - 219562306a36Sopenharmony_ci * - ``V4L2_HEVC_SPS_FLAG_PCM_ENABLED`` 219662306a36Sopenharmony_ci - 0x00000010 219762306a36Sopenharmony_ci - 219862306a36Sopenharmony_ci * - ``V4L2_HEVC_SPS_FLAG_PCM_LOOP_FILTER_DISABLED`` 219962306a36Sopenharmony_ci - 0x00000020 220062306a36Sopenharmony_ci - 220162306a36Sopenharmony_ci * - ``V4L2_HEVC_SPS_FLAG_LONG_TERM_REF_PICS_PRESENT`` 220262306a36Sopenharmony_ci - 0x00000040 220362306a36Sopenharmony_ci - 220462306a36Sopenharmony_ci * - ``V4L2_HEVC_SPS_FLAG_SPS_TEMPORAL_MVP_ENABLED`` 220562306a36Sopenharmony_ci - 0x00000080 220662306a36Sopenharmony_ci - 220762306a36Sopenharmony_ci * - ``V4L2_HEVC_SPS_FLAG_STRONG_INTRA_SMOOTHING_ENABLED`` 220862306a36Sopenharmony_ci - 0x00000100 220962306a36Sopenharmony_ci - 221062306a36Sopenharmony_ci 221162306a36Sopenharmony_ci.. raw:: latex 221262306a36Sopenharmony_ci 221362306a36Sopenharmony_ci \normalsize 221462306a36Sopenharmony_ci 221562306a36Sopenharmony_ci``V4L2_CID_STATELESS_HEVC_PPS (struct)`` 221662306a36Sopenharmony_ci Specifies the Picture Parameter Set fields (as extracted from the 221762306a36Sopenharmony_ci bitstream) for the associated HEVC slice data. 221862306a36Sopenharmony_ci These bitstream parameters are defined according to :ref:`hevc`. 221962306a36Sopenharmony_ci They are described in section 7.4.3.3 "Picture parameter set RBSP 222062306a36Sopenharmony_ci semantics" of the specification. 222162306a36Sopenharmony_ci 222262306a36Sopenharmony_ci.. c:type:: v4l2_ctrl_hevc_pps 222362306a36Sopenharmony_ci 222462306a36Sopenharmony_ci.. tabularcolumns:: |p{1.2cm}|p{8.6cm}|p{7.5cm}| 222562306a36Sopenharmony_ci 222662306a36Sopenharmony_ci.. cssclass:: longtable 222762306a36Sopenharmony_ci 222862306a36Sopenharmony_ci.. flat-table:: struct v4l2_ctrl_hevc_pps 222962306a36Sopenharmony_ci :header-rows: 0 223062306a36Sopenharmony_ci :stub-columns: 0 223162306a36Sopenharmony_ci :widths: 1 1 2 223262306a36Sopenharmony_ci 223362306a36Sopenharmony_ci * - __u8 223462306a36Sopenharmony_ci - ``pic_parameter_set_id`` 223562306a36Sopenharmony_ci - Identifies the PPS for reference by other syntax elements. 223662306a36Sopenharmony_ci * - __u8 223762306a36Sopenharmony_ci - ``num_extra_slice_header_bits`` 223862306a36Sopenharmony_ci - Specifies the number of extra slice header bits that are present 223962306a36Sopenharmony_ci in the slice header RBSP for coded pictures referring to the PPS. 224062306a36Sopenharmony_ci * - __u8 224162306a36Sopenharmony_ci - ``num_ref_idx_l0_default_active_minus1`` 224262306a36Sopenharmony_ci - This value plus 1 specifies the inferred value of num_ref_idx_l0_active_minus1. 224362306a36Sopenharmony_ci * - __u8 224462306a36Sopenharmony_ci - ``num_ref_idx_l1_default_active_minus1`` 224562306a36Sopenharmony_ci - This value plus 1 specifies the inferred value of num_ref_idx_l1_active_minus1. 224662306a36Sopenharmony_ci * - __s8 224762306a36Sopenharmony_ci - ``init_qp_minus26`` 224862306a36Sopenharmony_ci - This value plus 26 specifies the initial value of SliceQp Y for each slice 224962306a36Sopenharmony_ci referring to the PPS. 225062306a36Sopenharmony_ci * - __u8 225162306a36Sopenharmony_ci - ``diff_cu_qp_delta_depth`` 225262306a36Sopenharmony_ci - Specifies the difference between the luma coding tree block size 225362306a36Sopenharmony_ci and the minimum luma coding block size of coding units that 225462306a36Sopenharmony_ci convey cu_qp_delta_abs and cu_qp_delta_sign_flag. 225562306a36Sopenharmony_ci * - __s8 225662306a36Sopenharmony_ci - ``pps_cb_qp_offset`` 225762306a36Sopenharmony_ci - Specifies the offsets to the luma quantization parameter Cb. 225862306a36Sopenharmony_ci * - __s8 225962306a36Sopenharmony_ci - ``pps_cr_qp_offset`` 226062306a36Sopenharmony_ci - Specifies the offsets to the luma quantization parameter Cr. 226162306a36Sopenharmony_ci * - __u8 226262306a36Sopenharmony_ci - ``num_tile_columns_minus1`` 226362306a36Sopenharmony_ci - This value plus 1 specifies the number of tile columns partitioning the picture. 226462306a36Sopenharmony_ci * - __u8 226562306a36Sopenharmony_ci - ``num_tile_rows_minus1`` 226662306a36Sopenharmony_ci - This value plus 1 specifies the number of tile rows partitioning the picture. 226762306a36Sopenharmony_ci * - __u8 226862306a36Sopenharmony_ci - ``column_width_minus1[20]`` 226962306a36Sopenharmony_ci - This value plus 1 specifies the width of the i-th tile column in units of 227062306a36Sopenharmony_ci coding tree blocks. 227162306a36Sopenharmony_ci * - __u8 227262306a36Sopenharmony_ci - ``row_height_minus1[22]`` 227362306a36Sopenharmony_ci - This value plus 1 specifies the height of the i-th tile row in units of coding 227462306a36Sopenharmony_ci tree blocks. 227562306a36Sopenharmony_ci * - __s8 227662306a36Sopenharmony_ci - ``pps_beta_offset_div2`` 227762306a36Sopenharmony_ci - Specifies the default deblocking parameter offsets for beta divided by 2. 227862306a36Sopenharmony_ci * - __s8 227962306a36Sopenharmony_ci - ``pps_tc_offset_div2`` 228062306a36Sopenharmony_ci - Specifies the default deblocking parameter offsets for tC divided by 2. 228162306a36Sopenharmony_ci * - __u8 228262306a36Sopenharmony_ci - ``log2_parallel_merge_level_minus2`` 228362306a36Sopenharmony_ci - This value plus 2 specifies the value of the variable Log2ParMrgLevel. 228462306a36Sopenharmony_ci * - __u8 228562306a36Sopenharmony_ci - ``padding[4]`` 228662306a36Sopenharmony_ci - Applications and drivers must set this to zero. 228762306a36Sopenharmony_ci * - __u64 228862306a36Sopenharmony_ci - ``flags`` 228962306a36Sopenharmony_ci - See :ref:`Picture Parameter Set Flags <hevc_pps_flags>` 229062306a36Sopenharmony_ci 229162306a36Sopenharmony_ci.. _hevc_pps_flags: 229262306a36Sopenharmony_ci 229362306a36Sopenharmony_ci``Picture Parameter Set Flags`` 229462306a36Sopenharmony_ci 229562306a36Sopenharmony_ci.. raw:: latex 229662306a36Sopenharmony_ci 229762306a36Sopenharmony_ci \small 229862306a36Sopenharmony_ci 229962306a36Sopenharmony_ci.. flat-table:: 230062306a36Sopenharmony_ci :header-rows: 0 230162306a36Sopenharmony_ci :stub-columns: 0 230262306a36Sopenharmony_ci :widths: 1 1 2 230362306a36Sopenharmony_ci 230462306a36Sopenharmony_ci * - ``V4L2_HEVC_PPS_FLAG_DEPENDENT_SLICE_SEGMENT_ENABLED`` 230562306a36Sopenharmony_ci - 0x00000001 230662306a36Sopenharmony_ci - 230762306a36Sopenharmony_ci * - ``V4L2_HEVC_PPS_FLAG_OUTPUT_FLAG_PRESENT`` 230862306a36Sopenharmony_ci - 0x00000002 230962306a36Sopenharmony_ci - 231062306a36Sopenharmony_ci * - ``V4L2_HEVC_PPS_FLAG_SIGN_DATA_HIDING_ENABLED`` 231162306a36Sopenharmony_ci - 0x00000004 231262306a36Sopenharmony_ci - 231362306a36Sopenharmony_ci * - ``V4L2_HEVC_PPS_FLAG_CABAC_INIT_PRESENT`` 231462306a36Sopenharmony_ci - 0x00000008 231562306a36Sopenharmony_ci - 231662306a36Sopenharmony_ci * - ``V4L2_HEVC_PPS_FLAG_CONSTRAINED_INTRA_PRED`` 231762306a36Sopenharmony_ci - 0x00000010 231862306a36Sopenharmony_ci - 231962306a36Sopenharmony_ci * - ``V4L2_HEVC_PPS_FLAG_TRANSFORM_SKIP_ENABLED`` 232062306a36Sopenharmony_ci - 0x00000020 232162306a36Sopenharmony_ci - 232262306a36Sopenharmony_ci * - ``V4L2_HEVC_PPS_FLAG_CU_QP_DELTA_ENABLED`` 232362306a36Sopenharmony_ci - 0x00000040 232462306a36Sopenharmony_ci - 232562306a36Sopenharmony_ci * - ``V4L2_HEVC_PPS_FLAG_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT`` 232662306a36Sopenharmony_ci - 0x00000080 232762306a36Sopenharmony_ci - 232862306a36Sopenharmony_ci * - ``V4L2_HEVC_PPS_FLAG_WEIGHTED_PRED`` 232962306a36Sopenharmony_ci - 0x00000100 233062306a36Sopenharmony_ci - 233162306a36Sopenharmony_ci * - ``V4L2_HEVC_PPS_FLAG_WEIGHTED_BIPRED`` 233262306a36Sopenharmony_ci - 0x00000200 233362306a36Sopenharmony_ci - 233462306a36Sopenharmony_ci * - ``V4L2_HEVC_PPS_FLAG_TRANSQUANT_BYPASS_ENABLED`` 233562306a36Sopenharmony_ci - 0x00000400 233662306a36Sopenharmony_ci - 233762306a36Sopenharmony_ci * - ``V4L2_HEVC_PPS_FLAG_TILES_ENABLED`` 233862306a36Sopenharmony_ci - 0x00000800 233962306a36Sopenharmony_ci - 234062306a36Sopenharmony_ci * - ``V4L2_HEVC_PPS_FLAG_ENTROPY_CODING_SYNC_ENABLED`` 234162306a36Sopenharmony_ci - 0x00001000 234262306a36Sopenharmony_ci - 234362306a36Sopenharmony_ci * - ``V4L2_HEVC_PPS_FLAG_LOOP_FILTER_ACROSS_TILES_ENABLED`` 234462306a36Sopenharmony_ci - 0x00002000 234562306a36Sopenharmony_ci - 234662306a36Sopenharmony_ci * - ``V4L2_HEVC_PPS_FLAG_PPS_LOOP_FILTER_ACROSS_SLICES_ENABLED`` 234762306a36Sopenharmony_ci - 0x00004000 234862306a36Sopenharmony_ci - 234962306a36Sopenharmony_ci * - ``V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTER_OVERRIDE_ENABLED`` 235062306a36Sopenharmony_ci - 0x00008000 235162306a36Sopenharmony_ci - 235262306a36Sopenharmony_ci * - ``V4L2_HEVC_PPS_FLAG_PPS_DISABLE_DEBLOCKING_FILTER`` 235362306a36Sopenharmony_ci - 0x00010000 235462306a36Sopenharmony_ci - 235562306a36Sopenharmony_ci * - ``V4L2_HEVC_PPS_FLAG_LISTS_MODIFICATION_PRESENT`` 235662306a36Sopenharmony_ci - 0x00020000 235762306a36Sopenharmony_ci - 235862306a36Sopenharmony_ci * - ``V4L2_HEVC_PPS_FLAG_SLICE_SEGMENT_HEADER_EXTENSION_PRESENT`` 235962306a36Sopenharmony_ci - 0x00040000 236062306a36Sopenharmony_ci - 236162306a36Sopenharmony_ci * - ``V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT`` 236262306a36Sopenharmony_ci - 0x00080000 236362306a36Sopenharmony_ci - Specifies the presence of deblocking filter control syntax elements in 236462306a36Sopenharmony_ci the PPS 236562306a36Sopenharmony_ci * - ``V4L2_HEVC_PPS_FLAG_UNIFORM_SPACING`` 236662306a36Sopenharmony_ci - 0x00100000 236762306a36Sopenharmony_ci - Specifies that tile column boundaries and likewise tile row boundaries 236862306a36Sopenharmony_ci are distributed uniformly across the picture 236962306a36Sopenharmony_ci 237062306a36Sopenharmony_ci.. raw:: latex 237162306a36Sopenharmony_ci 237262306a36Sopenharmony_ci \normalsize 237362306a36Sopenharmony_ci 237462306a36Sopenharmony_ci``V4L2_CID_STATELESS_HEVC_SLICE_PARAMS (struct)`` 237562306a36Sopenharmony_ci Specifies various slice-specific parameters, especially from the NAL unit 237662306a36Sopenharmony_ci header, general slice segment header and weighted prediction parameter 237762306a36Sopenharmony_ci parts of the bitstream. 237862306a36Sopenharmony_ci These bitstream parameters are defined according to :ref:`hevc`. 237962306a36Sopenharmony_ci They are described in section 7.4.7 "General slice segment header 238062306a36Sopenharmony_ci semantics" of the specification. 238162306a36Sopenharmony_ci This control is a dynamically sized 1-dimensional array, 238262306a36Sopenharmony_ci V4L2_CTRL_FLAG_DYNAMIC_ARRAY flag must be set when using it. 238362306a36Sopenharmony_ci 238462306a36Sopenharmony_ci.. c:type:: v4l2_ctrl_hevc_slice_params 238562306a36Sopenharmony_ci 238662306a36Sopenharmony_ci.. raw:: latex 238762306a36Sopenharmony_ci 238862306a36Sopenharmony_ci \scriptsize 238962306a36Sopenharmony_ci 239062306a36Sopenharmony_ci.. tabularcolumns:: |p{5.4cm}|p{6.8cm}|p{5.1cm}| 239162306a36Sopenharmony_ci 239262306a36Sopenharmony_ci.. cssclass:: longtable 239362306a36Sopenharmony_ci 239462306a36Sopenharmony_ci.. flat-table:: struct v4l2_ctrl_hevc_slice_params 239562306a36Sopenharmony_ci :header-rows: 0 239662306a36Sopenharmony_ci :stub-columns: 0 239762306a36Sopenharmony_ci :widths: 1 1 2 239862306a36Sopenharmony_ci 239962306a36Sopenharmony_ci * - __u32 240062306a36Sopenharmony_ci - ``bit_size`` 240162306a36Sopenharmony_ci - Size (in bits) of the current slice data. 240262306a36Sopenharmony_ci * - __u32 240362306a36Sopenharmony_ci - ``data_byte_offset`` 240462306a36Sopenharmony_ci - Offset (in byte) to the video data in the current slice data. 240562306a36Sopenharmony_ci * - __u32 240662306a36Sopenharmony_ci - ``num_entry_point_offsets`` 240762306a36Sopenharmony_ci - Specifies the number of entry point offset syntax elements in the slice header. 240862306a36Sopenharmony_ci When the driver supports it, the ``V4L2_CID_STATELESS_HEVC_ENTRY_POINT_OFFSETS`` 240962306a36Sopenharmony_ci must be set. 241062306a36Sopenharmony_ci * - __u8 241162306a36Sopenharmony_ci - ``nal_unit_type`` 241262306a36Sopenharmony_ci - Specifies the coding type of the slice (B, P or I). 241362306a36Sopenharmony_ci * - __u8 241462306a36Sopenharmony_ci - ``nuh_temporal_id_plus1`` 241562306a36Sopenharmony_ci - Minus 1 specifies a temporal identifier for the NAL unit. 241662306a36Sopenharmony_ci * - __u8 241762306a36Sopenharmony_ci - ``slice_type`` 241862306a36Sopenharmony_ci - 241962306a36Sopenharmony_ci (V4L2_HEVC_SLICE_TYPE_I, V4L2_HEVC_SLICE_TYPE_P or 242062306a36Sopenharmony_ci V4L2_HEVC_SLICE_TYPE_B). 242162306a36Sopenharmony_ci * - __u8 242262306a36Sopenharmony_ci - ``colour_plane_id`` 242362306a36Sopenharmony_ci - Specifies the colour plane associated with the current slice. 242462306a36Sopenharmony_ci * - __s32 242562306a36Sopenharmony_ci - ``slice_pic_order_cnt`` 242662306a36Sopenharmony_ci - Specifies the picture order count. 242762306a36Sopenharmony_ci * - __u8 242862306a36Sopenharmony_ci - ``num_ref_idx_l0_active_minus1`` 242962306a36Sopenharmony_ci - This value plus 1 specifies the maximum reference index for reference picture list 0 243062306a36Sopenharmony_ci that may be used to decode the slice. 243162306a36Sopenharmony_ci * - __u8 243262306a36Sopenharmony_ci - ``num_ref_idx_l1_active_minus1`` 243362306a36Sopenharmony_ci - This value plus 1 specifies the maximum reference index for reference picture list 1 243462306a36Sopenharmony_ci that may be used to decode the slice. 243562306a36Sopenharmony_ci * - __u8 243662306a36Sopenharmony_ci - ``collocated_ref_idx`` 243762306a36Sopenharmony_ci - Specifies the reference index of the collocated picture used for 243862306a36Sopenharmony_ci temporal motion vector prediction. 243962306a36Sopenharmony_ci * - __u8 244062306a36Sopenharmony_ci - ``five_minus_max_num_merge_cand`` 244162306a36Sopenharmony_ci - Specifies the maximum number of merging motion vector prediction 244262306a36Sopenharmony_ci candidates supported in the slice subtracted from 5. 244362306a36Sopenharmony_ci * - __s8 244462306a36Sopenharmony_ci - ``slice_qp_delta`` 244562306a36Sopenharmony_ci - Specifies the initial value of QpY to be used for the coding blocks in the slice. 244662306a36Sopenharmony_ci * - __s8 244762306a36Sopenharmony_ci - ``slice_cb_qp_offset`` 244862306a36Sopenharmony_ci - Specifies a difference to be added to the value of pps_cb_qp_offset. 244962306a36Sopenharmony_ci * - __s8 245062306a36Sopenharmony_ci - ``slice_cr_qp_offset`` 245162306a36Sopenharmony_ci - Specifies a difference to be added to the value of pps_cr_qp_offset. 245262306a36Sopenharmony_ci * - __s8 245362306a36Sopenharmony_ci - ``slice_act_y_qp_offset`` 245462306a36Sopenharmony_ci - Specifies the offset to the luma of quantization parameter qP derived in section 8.6.2 245562306a36Sopenharmony_ci * - __s8 245662306a36Sopenharmony_ci - ``slice_act_cb_qp_offset`` 245762306a36Sopenharmony_ci - Specifies the offset to the cb of quantization parameter qP derived in section 8.6.2 245862306a36Sopenharmony_ci * - __s8 245962306a36Sopenharmony_ci - ``slice_act_cr_qp_offset`` 246062306a36Sopenharmony_ci - Specifies the offset to the cr of quantization parameter qP derived in section 8.6.2 246162306a36Sopenharmony_ci * - __s8 246262306a36Sopenharmony_ci - ``slice_beta_offset_div2`` 246362306a36Sopenharmony_ci - Specifies the deblocking parameter offsets for beta divided by 2. 246462306a36Sopenharmony_ci * - __s8 246562306a36Sopenharmony_ci - ``slice_tc_offset_div2`` 246662306a36Sopenharmony_ci - Specifies the deblocking parameter offsets for tC divided by 2. 246762306a36Sopenharmony_ci * - __u8 246862306a36Sopenharmony_ci - ``pic_struct`` 246962306a36Sopenharmony_ci - Indicates whether a picture should be displayed as a frame or as one or more fields. 247062306a36Sopenharmony_ci * - __u32 247162306a36Sopenharmony_ci - ``slice_segment_addr`` 247262306a36Sopenharmony_ci - Specifies the address of the first coding tree block in the slice segment. 247362306a36Sopenharmony_ci * - __u8 247462306a36Sopenharmony_ci - ``ref_idx_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 247562306a36Sopenharmony_ci - The list of L0 reference elements as indices in the DPB. 247662306a36Sopenharmony_ci * - __u8 247762306a36Sopenharmony_ci - ``ref_idx_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 247862306a36Sopenharmony_ci - The list of L1 reference elements as indices in the DPB. 247962306a36Sopenharmony_ci * - __u16 248062306a36Sopenharmony_ci - ``short_term_ref_pic_set_size`` 248162306a36Sopenharmony_ci - Specifies the size, in bits, of the short-term reference picture set, described as st_ref_pic_set() 248262306a36Sopenharmony_ci in the specification, included in the slice header or SPS (section 7.3.6.1). 248362306a36Sopenharmony_ci * - __u16 248462306a36Sopenharmony_ci - ``long_term_ref_pic_set_size`` 248562306a36Sopenharmony_ci - Specifies the size, in bits, of the long-term reference picture set include in the slice header 248662306a36Sopenharmony_ci or SPS. It is the number of bits in the conditional block if(long_term_ref_pics_present_flag) 248762306a36Sopenharmony_ci in section 7.3.6.1 of the specification. 248862306a36Sopenharmony_ci * - __u8 248962306a36Sopenharmony_ci - ``padding`` 249062306a36Sopenharmony_ci - Applications and drivers must set this to zero. 249162306a36Sopenharmony_ci * - struct :c:type:`v4l2_hevc_pred_weight_table` 249262306a36Sopenharmony_ci - ``pred_weight_table`` 249362306a36Sopenharmony_ci - The prediction weight coefficients for inter-picture prediction. 249462306a36Sopenharmony_ci * - __u64 249562306a36Sopenharmony_ci - ``flags`` 249662306a36Sopenharmony_ci - See :ref:`Slice Parameters Flags <hevc_slice_params_flags>` 249762306a36Sopenharmony_ci 249862306a36Sopenharmony_ci.. raw:: latex 249962306a36Sopenharmony_ci 250062306a36Sopenharmony_ci \normalsize 250162306a36Sopenharmony_ci 250262306a36Sopenharmony_ci.. _hevc_slice_params_flags: 250362306a36Sopenharmony_ci 250462306a36Sopenharmony_ci``Slice Parameters Flags`` 250562306a36Sopenharmony_ci 250662306a36Sopenharmony_ci.. raw:: latex 250762306a36Sopenharmony_ci 250862306a36Sopenharmony_ci \scriptsize 250962306a36Sopenharmony_ci 251062306a36Sopenharmony_ci.. flat-table:: 251162306a36Sopenharmony_ci :header-rows: 0 251262306a36Sopenharmony_ci :stub-columns: 0 251362306a36Sopenharmony_ci :widths: 1 1 2 251462306a36Sopenharmony_ci 251562306a36Sopenharmony_ci * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_LUMA`` 251662306a36Sopenharmony_ci - 0x00000001 251762306a36Sopenharmony_ci - 251862306a36Sopenharmony_ci * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_CHROMA`` 251962306a36Sopenharmony_ci - 0x00000002 252062306a36Sopenharmony_ci - 252162306a36Sopenharmony_ci * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_TEMPORAL_MVP_ENABLED`` 252262306a36Sopenharmony_ci - 0x00000004 252362306a36Sopenharmony_ci - 252462306a36Sopenharmony_ci * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_MVD_L1_ZERO`` 252562306a36Sopenharmony_ci - 0x00000008 252662306a36Sopenharmony_ci - 252762306a36Sopenharmony_ci * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_CABAC_INIT`` 252862306a36Sopenharmony_ci - 0x00000010 252962306a36Sopenharmony_ci - 253062306a36Sopenharmony_ci * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_COLLOCATED_FROM_L0`` 253162306a36Sopenharmony_ci - 0x00000020 253262306a36Sopenharmony_ci - 253362306a36Sopenharmony_ci * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_USE_INTEGER_MV`` 253462306a36Sopenharmony_ci - 0x00000040 253562306a36Sopenharmony_ci - 253662306a36Sopenharmony_ci * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_DEBLOCKING_FILTER_DISABLED`` 253762306a36Sopenharmony_ci - 0x00000080 253862306a36Sopenharmony_ci - 253962306a36Sopenharmony_ci * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_LOOP_FILTER_ACROSS_SLICES_ENABLED`` 254062306a36Sopenharmony_ci - 0x00000100 254162306a36Sopenharmony_ci - 254262306a36Sopenharmony_ci * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_DEPENDENT_SLICE_SEGMENT`` 254362306a36Sopenharmony_ci - 0x00000200 254462306a36Sopenharmony_ci - 254562306a36Sopenharmony_ci 254662306a36Sopenharmony_ci.. raw:: latex 254762306a36Sopenharmony_ci 254862306a36Sopenharmony_ci \normalsize 254962306a36Sopenharmony_ci 255062306a36Sopenharmony_ci``V4L2_CID_STATELESS_HEVC_ENTRY_POINT_OFFSETS (integer)`` 255162306a36Sopenharmony_ci Specifies entry point offsets in bytes. 255262306a36Sopenharmony_ci This control is a dynamically sized array. The number of entry point 255362306a36Sopenharmony_ci offsets is reported by the ``elems`` field. 255462306a36Sopenharmony_ci This bitstream parameter is defined according to :ref:`hevc`. 255562306a36Sopenharmony_ci They are described in section 7.4.7.1 "General slice segment header 255662306a36Sopenharmony_ci semantics" of the specification. 255762306a36Sopenharmony_ci When multiple slices are submitted in a request, the length of 255862306a36Sopenharmony_ci this array must be the sum of num_entry_point_offsets of all the 255962306a36Sopenharmony_ci slices in the request. 256062306a36Sopenharmony_ci 256162306a36Sopenharmony_ci``V4L2_CID_STATELESS_HEVC_SCALING_MATRIX (struct)`` 256262306a36Sopenharmony_ci Specifies the HEVC scaling matrix parameters used for the scaling process 256362306a36Sopenharmony_ci for transform coefficients. 256462306a36Sopenharmony_ci These matrix and parameters are defined according to :ref:`hevc`. 256562306a36Sopenharmony_ci They are described in section 7.4.5 "Scaling list data semantics" of 256662306a36Sopenharmony_ci the specification. 256762306a36Sopenharmony_ci 256862306a36Sopenharmony_ci.. c:type:: v4l2_ctrl_hevc_scaling_matrix 256962306a36Sopenharmony_ci 257062306a36Sopenharmony_ci.. raw:: latex 257162306a36Sopenharmony_ci 257262306a36Sopenharmony_ci \scriptsize 257362306a36Sopenharmony_ci 257462306a36Sopenharmony_ci.. tabularcolumns:: |p{5.4cm}|p{6.8cm}|p{5.1cm}| 257562306a36Sopenharmony_ci 257662306a36Sopenharmony_ci.. cssclass:: longtable 257762306a36Sopenharmony_ci 257862306a36Sopenharmony_ci.. flat-table:: struct v4l2_ctrl_hevc_scaling_matrix 257962306a36Sopenharmony_ci :header-rows: 0 258062306a36Sopenharmony_ci :stub-columns: 0 258162306a36Sopenharmony_ci :widths: 1 1 2 258262306a36Sopenharmony_ci 258362306a36Sopenharmony_ci * - __u8 258462306a36Sopenharmony_ci - ``scaling_list_4x4[6][16]`` 258562306a36Sopenharmony_ci - Scaling list is used for the scaling process for transform 258662306a36Sopenharmony_ci coefficients. The values on each scaling list are expected 258762306a36Sopenharmony_ci in raster scan order. 258862306a36Sopenharmony_ci * - __u8 258962306a36Sopenharmony_ci - ``scaling_list_8x8[6][64]`` 259062306a36Sopenharmony_ci - Scaling list is used for the scaling process for transform 259162306a36Sopenharmony_ci coefficients. The values on each scaling list are expected 259262306a36Sopenharmony_ci in raster scan order. 259362306a36Sopenharmony_ci * - __u8 259462306a36Sopenharmony_ci - ``scaling_list_16x16[6][64]`` 259562306a36Sopenharmony_ci - Scaling list is used for the scaling process for transform 259662306a36Sopenharmony_ci coefficients. The values on each scaling list are expected 259762306a36Sopenharmony_ci in raster scan order. 259862306a36Sopenharmony_ci * - __u8 259962306a36Sopenharmony_ci - ``scaling_list_32x32[2][64]`` 260062306a36Sopenharmony_ci - Scaling list is used for the scaling process for transform 260162306a36Sopenharmony_ci coefficients. The values on each scaling list are expected 260262306a36Sopenharmony_ci in raster scan order. 260362306a36Sopenharmony_ci * - __u8 260462306a36Sopenharmony_ci - ``scaling_list_dc_coef_16x16[6]`` 260562306a36Sopenharmony_ci - Scaling list is used for the scaling process for transform 260662306a36Sopenharmony_ci coefficients. The values on each scaling list are expected 260762306a36Sopenharmony_ci in raster scan order. 260862306a36Sopenharmony_ci * - __u8 260962306a36Sopenharmony_ci - ``scaling_list_dc_coef_32x32[2]`` 261062306a36Sopenharmony_ci - Scaling list is used for the scaling process for transform 261162306a36Sopenharmony_ci coefficients. The values on each scaling list are expected 261262306a36Sopenharmony_ci in raster scan order. 261362306a36Sopenharmony_ci 261462306a36Sopenharmony_ci.. raw:: latex 261562306a36Sopenharmony_ci 261662306a36Sopenharmony_ci \normalsize 261762306a36Sopenharmony_ci 261862306a36Sopenharmony_ci.. c:type:: v4l2_hevc_dpb_entry 261962306a36Sopenharmony_ci 262062306a36Sopenharmony_ci.. raw:: latex 262162306a36Sopenharmony_ci 262262306a36Sopenharmony_ci \small 262362306a36Sopenharmony_ci 262462306a36Sopenharmony_ci.. tabularcolumns:: |p{1.0cm}|p{4.2cm}|p{12.1cm}| 262562306a36Sopenharmony_ci 262662306a36Sopenharmony_ci.. flat-table:: struct v4l2_hevc_dpb_entry 262762306a36Sopenharmony_ci :header-rows: 0 262862306a36Sopenharmony_ci :stub-columns: 0 262962306a36Sopenharmony_ci :widths: 1 1 2 263062306a36Sopenharmony_ci 263162306a36Sopenharmony_ci * - __u64 263262306a36Sopenharmony_ci - ``timestamp`` 263362306a36Sopenharmony_ci - Timestamp of the V4L2 capture buffer to use as reference, used 263462306a36Sopenharmony_ci with B-coded and P-coded frames. The timestamp refers to the 263562306a36Sopenharmony_ci ``timestamp`` field in struct :c:type:`v4l2_buffer`. Use the 263662306a36Sopenharmony_ci :c:func:`v4l2_timeval_to_ns()` function to convert the struct 263762306a36Sopenharmony_ci :c:type:`timeval` in struct :c:type:`v4l2_buffer` to a __u64. 263862306a36Sopenharmony_ci * - __u8 263962306a36Sopenharmony_ci - ``flags`` 264062306a36Sopenharmony_ci - Long term flag for the reference frame 264162306a36Sopenharmony_ci (V4L2_HEVC_DPB_ENTRY_LONG_TERM_REFERENCE). The flag is set as 264262306a36Sopenharmony_ci described in the ITU HEVC specification chapter "8.3.2 Decoding 264362306a36Sopenharmony_ci process for reference picture set". 264462306a36Sopenharmony_ci * - __u8 264562306a36Sopenharmony_ci - ``field_pic`` 264662306a36Sopenharmony_ci - Whether the reference is a field picture or a frame. 264762306a36Sopenharmony_ci See :ref:`HEVC dpb field pic Flags <hevc_dpb_field_pic_flags>` 264862306a36Sopenharmony_ci * - __s32 264962306a36Sopenharmony_ci - ``pic_order_cnt_val`` 265062306a36Sopenharmony_ci - The picture order count of the current picture. 265162306a36Sopenharmony_ci * - __u8 265262306a36Sopenharmony_ci - ``padding[2]`` 265362306a36Sopenharmony_ci - Applications and drivers must set this to zero. 265462306a36Sopenharmony_ci 265562306a36Sopenharmony_ci.. raw:: latex 265662306a36Sopenharmony_ci 265762306a36Sopenharmony_ci \normalsize 265862306a36Sopenharmony_ci 265962306a36Sopenharmony_ci.. _hevc_dpb_field_pic_flags: 266062306a36Sopenharmony_ci 266162306a36Sopenharmony_ci``HEVC dpb field pic Flags`` 266262306a36Sopenharmony_ci 266362306a36Sopenharmony_ci.. raw:: latex 266462306a36Sopenharmony_ci 266562306a36Sopenharmony_ci \scriptsize 266662306a36Sopenharmony_ci 266762306a36Sopenharmony_ci.. flat-table:: 266862306a36Sopenharmony_ci :header-rows: 0 266962306a36Sopenharmony_ci :stub-columns: 0 267062306a36Sopenharmony_ci :widths: 1 1 2 267162306a36Sopenharmony_ci 267262306a36Sopenharmony_ci * - ``V4L2_HEVC_SEI_PIC_STRUCT_FRAME`` 267362306a36Sopenharmony_ci - 0 267462306a36Sopenharmony_ci - (progressive) Frame 267562306a36Sopenharmony_ci * - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_FIELD`` 267662306a36Sopenharmony_ci - 1 267762306a36Sopenharmony_ci - Top field 267862306a36Sopenharmony_ci * - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_FIELD`` 267962306a36Sopenharmony_ci - 2 268062306a36Sopenharmony_ci - Bottom field 268162306a36Sopenharmony_ci * - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_BOTTOM`` 268262306a36Sopenharmony_ci - 3 268362306a36Sopenharmony_ci - Top field, bottom field, in that order 268462306a36Sopenharmony_ci * - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_TOP`` 268562306a36Sopenharmony_ci - 4 268662306a36Sopenharmony_ci - Bottom field, top field, in that order 268762306a36Sopenharmony_ci * - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_BOTTOM_TOP`` 268862306a36Sopenharmony_ci - 5 268962306a36Sopenharmony_ci - Top field, bottom field, top field repeated, in that order 269062306a36Sopenharmony_ci * - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM`` 269162306a36Sopenharmony_ci - 6 269262306a36Sopenharmony_ci - Bottom field, top field, bottom field repeated, in that order 269362306a36Sopenharmony_ci * - ``V4L2_HEVC_SEI_PIC_STRUCT_FRAME_DOUBLING`` 269462306a36Sopenharmony_ci - 7 269562306a36Sopenharmony_ci - Frame doubling 269662306a36Sopenharmony_ci * - ``V4L2_HEVC_SEI_PIC_STRUCT_FRAME_TRIPLING`` 269762306a36Sopenharmony_ci - 8 269862306a36Sopenharmony_ci - Frame tripling 269962306a36Sopenharmony_ci * - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_PAIRED_PREVIOUS_BOTTOM`` 270062306a36Sopenharmony_ci - 9 270162306a36Sopenharmony_ci - Top field paired with previous bottom field in output order 270262306a36Sopenharmony_ci * - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_PAIRED_PREVIOUS_TOP`` 270362306a36Sopenharmony_ci - 10 270462306a36Sopenharmony_ci - Bottom field paired with previous top field in output order 270562306a36Sopenharmony_ci * - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_PAIRED_NEXT_BOTTOM`` 270662306a36Sopenharmony_ci - 11 270762306a36Sopenharmony_ci - Top field paired with next bottom field in output order 270862306a36Sopenharmony_ci * - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_PAIRED_NEXT_TOP`` 270962306a36Sopenharmony_ci - 12 271062306a36Sopenharmony_ci - Bottom field paired with next top field in output order 271162306a36Sopenharmony_ci 271262306a36Sopenharmony_ci.. c:type:: v4l2_hevc_pred_weight_table 271362306a36Sopenharmony_ci 271462306a36Sopenharmony_ci.. raw:: latex 271562306a36Sopenharmony_ci 271662306a36Sopenharmony_ci \footnotesize 271762306a36Sopenharmony_ci 271862306a36Sopenharmony_ci.. tabularcolumns:: |p{0.8cm}|p{10.6cm}|p{5.9cm}| 271962306a36Sopenharmony_ci 272062306a36Sopenharmony_ci.. flat-table:: struct v4l2_hevc_pred_weight_table 272162306a36Sopenharmony_ci :header-rows: 0 272262306a36Sopenharmony_ci :stub-columns: 0 272362306a36Sopenharmony_ci :widths: 1 1 2 272462306a36Sopenharmony_ci 272562306a36Sopenharmony_ci * - __s8 272662306a36Sopenharmony_ci - ``delta_luma_weight_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 272762306a36Sopenharmony_ci - The difference of the weighting factor applied to the luma 272862306a36Sopenharmony_ci prediction value for list 0. 272962306a36Sopenharmony_ci * - __s8 273062306a36Sopenharmony_ci - ``luma_offset_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 273162306a36Sopenharmony_ci - The additive offset applied to the luma prediction value for list 0. 273262306a36Sopenharmony_ci * - __s8 273362306a36Sopenharmony_ci - ``delta_chroma_weight_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]`` 273462306a36Sopenharmony_ci - The difference of the weighting factor applied to the chroma 273562306a36Sopenharmony_ci prediction value for list 0. 273662306a36Sopenharmony_ci * - __s8 273762306a36Sopenharmony_ci - ``chroma_offset_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]`` 273862306a36Sopenharmony_ci - The difference of the additive offset applied to the chroma 273962306a36Sopenharmony_ci prediction values for list 0. 274062306a36Sopenharmony_ci * - __s8 274162306a36Sopenharmony_ci - ``delta_luma_weight_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 274262306a36Sopenharmony_ci - The difference of the weighting factor applied to the luma 274362306a36Sopenharmony_ci prediction value for list 1. 274462306a36Sopenharmony_ci * - __s8 274562306a36Sopenharmony_ci - ``luma_offset_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 274662306a36Sopenharmony_ci - The additive offset applied to the luma prediction value for list 1. 274762306a36Sopenharmony_ci * - __s8 274862306a36Sopenharmony_ci - ``delta_chroma_weight_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]`` 274962306a36Sopenharmony_ci - The difference of the weighting factor applied to the chroma 275062306a36Sopenharmony_ci prediction value for list 1. 275162306a36Sopenharmony_ci * - __s8 275262306a36Sopenharmony_ci - ``chroma_offset_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]`` 275362306a36Sopenharmony_ci - The difference of the additive offset applied to the chroma 275462306a36Sopenharmony_ci prediction values for list 1. 275562306a36Sopenharmony_ci * - __u8 275662306a36Sopenharmony_ci - ``luma_log2_weight_denom`` 275762306a36Sopenharmony_ci - The base 2 logarithm of the denominator for all luma weighting 275862306a36Sopenharmony_ci factors. 275962306a36Sopenharmony_ci * - __s8 276062306a36Sopenharmony_ci - ``delta_chroma_log2_weight_denom`` 276162306a36Sopenharmony_ci - The difference of the base 2 logarithm of the denominator for 276262306a36Sopenharmony_ci all chroma weighting factors. 276362306a36Sopenharmony_ci * - __u8 276462306a36Sopenharmony_ci - ``padding[6]`` 276562306a36Sopenharmony_ci - Applications and drivers must set this to zero. 276662306a36Sopenharmony_ci 276762306a36Sopenharmony_ci.. raw:: latex 276862306a36Sopenharmony_ci 276962306a36Sopenharmony_ci \normalsize 277062306a36Sopenharmony_ci 277162306a36Sopenharmony_ci``V4L2_CID_STATELESS_HEVC_DECODE_MODE (enum)`` 277262306a36Sopenharmony_ci Specifies the decoding mode to use. Currently exposes slice-based and 277362306a36Sopenharmony_ci frame-based decoding but new modes might be added later on. 277462306a36Sopenharmony_ci This control is used as a modifier for V4L2_PIX_FMT_HEVC_SLICE 277562306a36Sopenharmony_ci pixel format. Applications that support V4L2_PIX_FMT_HEVC_SLICE 277662306a36Sopenharmony_ci are required to set this control in order to specify the decoding mode 277762306a36Sopenharmony_ci that is expected for the buffer. 277862306a36Sopenharmony_ci Drivers may expose a single or multiple decoding modes, depending 277962306a36Sopenharmony_ci on what they can support. 278062306a36Sopenharmony_ci 278162306a36Sopenharmony_ci.. c:type:: v4l2_stateless_hevc_decode_mode 278262306a36Sopenharmony_ci 278362306a36Sopenharmony_ci.. raw:: latex 278462306a36Sopenharmony_ci 278562306a36Sopenharmony_ci \small 278662306a36Sopenharmony_ci 278762306a36Sopenharmony_ci.. tabularcolumns:: |p{9.4cm}|p{0.6cm}|p{7.3cm}| 278862306a36Sopenharmony_ci 278962306a36Sopenharmony_ci.. flat-table:: 279062306a36Sopenharmony_ci :header-rows: 0 279162306a36Sopenharmony_ci :stub-columns: 0 279262306a36Sopenharmony_ci :widths: 1 1 2 279362306a36Sopenharmony_ci 279462306a36Sopenharmony_ci * - ``V4L2_STATELESS_HEVC_DECODE_MODE_SLICE_BASED`` 279562306a36Sopenharmony_ci - 0 279662306a36Sopenharmony_ci - Decoding is done at the slice granularity. 279762306a36Sopenharmony_ci The OUTPUT buffer must contain a single slice. 279862306a36Sopenharmony_ci * - ``V4L2_STATELESS_HEVC_DECODE_MODE_FRAME_BASED`` 279962306a36Sopenharmony_ci - 1 280062306a36Sopenharmony_ci - Decoding is done at the frame granularity. 280162306a36Sopenharmony_ci The OUTPUT buffer must contain all slices needed to decode the 280262306a36Sopenharmony_ci frame. 280362306a36Sopenharmony_ci 280462306a36Sopenharmony_ci.. raw:: latex 280562306a36Sopenharmony_ci 280662306a36Sopenharmony_ci \normalsize 280762306a36Sopenharmony_ci 280862306a36Sopenharmony_ci``V4L2_CID_STATELESS_HEVC_START_CODE (enum)`` 280962306a36Sopenharmony_ci Specifies the HEVC slice start code expected for each slice. 281062306a36Sopenharmony_ci This control is used as a modifier for V4L2_PIX_FMT_HEVC_SLICE 281162306a36Sopenharmony_ci pixel format. Applications that support V4L2_PIX_FMT_HEVC_SLICE 281262306a36Sopenharmony_ci are required to set this control in order to specify the start code 281362306a36Sopenharmony_ci that is expected for the buffer. 281462306a36Sopenharmony_ci Drivers may expose a single or multiple start codes, depending 281562306a36Sopenharmony_ci on what they can support. 281662306a36Sopenharmony_ci 281762306a36Sopenharmony_ci.. c:type:: v4l2_stateless_hevc_start_code 281862306a36Sopenharmony_ci 281962306a36Sopenharmony_ci.. tabularcolumns:: |p{9.2cm}|p{0.6cm}|p{7.5cm}| 282062306a36Sopenharmony_ci 282162306a36Sopenharmony_ci.. flat-table:: 282262306a36Sopenharmony_ci :header-rows: 0 282362306a36Sopenharmony_ci :stub-columns: 0 282462306a36Sopenharmony_ci :widths: 1 1 2 282562306a36Sopenharmony_ci 282662306a36Sopenharmony_ci * - ``V4L2_STATELESS_HEVC_START_CODE_NONE`` 282762306a36Sopenharmony_ci - 0 282862306a36Sopenharmony_ci - Selecting this value specifies that HEVC slices are passed 282962306a36Sopenharmony_ci to the driver without any start code. The bitstream data should be 283062306a36Sopenharmony_ci according to :ref:`hevc` 7.3.1.1 General NAL unit syntax, hence 283162306a36Sopenharmony_ci contains emulation prevention bytes when required. 283262306a36Sopenharmony_ci * - ``V4L2_STATELESS_HEVC_START_CODE_ANNEX_B`` 283362306a36Sopenharmony_ci - 1 283462306a36Sopenharmony_ci - Selecting this value specifies that HEVC slices are expected 283562306a36Sopenharmony_ci to be prefixed by Annex B start codes. According to :ref:`hevc` 283662306a36Sopenharmony_ci valid start codes can be 3-bytes 0x000001 or 4-bytes 0x00000001. 283762306a36Sopenharmony_ci 283862306a36Sopenharmony_ci.. raw:: latex 283962306a36Sopenharmony_ci 284062306a36Sopenharmony_ci \normalsize 284162306a36Sopenharmony_ci 284262306a36Sopenharmony_ci``V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID (integer)`` 284362306a36Sopenharmony_ci Specifies a priority identifier for the NAL unit, which will be applied to 284462306a36Sopenharmony_ci the base layer. By default this value is set to 0 for the base layer, 284562306a36Sopenharmony_ci and the next layer will have the priority ID assigned as 1, 2, 3 and so on. 284662306a36Sopenharmony_ci The video encoder can't decide the priority id to be applied to a layer, 284762306a36Sopenharmony_ci so this has to come from client. 284862306a36Sopenharmony_ci This is applicable to H264 and valid Range is from 0 to 63. 284962306a36Sopenharmony_ci Source Rec. ITU-T H.264 (06/2019); G.7.4.1.1, G.8.8.1. 285062306a36Sopenharmony_ci 285162306a36Sopenharmony_ci``V4L2_CID_MPEG_VIDEO_LTR_COUNT (integer)`` 285262306a36Sopenharmony_ci Specifies the maximum number of Long Term Reference (LTR) frames at any 285362306a36Sopenharmony_ci given time that the encoder can keep. 285462306a36Sopenharmony_ci This is applicable to the H264 and HEVC encoders. 285562306a36Sopenharmony_ci 285662306a36Sopenharmony_ci``V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX (integer)`` 285762306a36Sopenharmony_ci After setting this control the frame that will be queued next 285862306a36Sopenharmony_ci will be marked as a Long Term Reference (LTR) frame 285962306a36Sopenharmony_ci and given this LTR index which ranges from 0 to LTR_COUNT-1. 286062306a36Sopenharmony_ci This is applicable to the H264 and HEVC encoders. 286162306a36Sopenharmony_ci Source Rec. ITU-T H.264 (06/2019); Table 7.9 286262306a36Sopenharmony_ci 286362306a36Sopenharmony_ci``V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES (bitmask)`` 286462306a36Sopenharmony_ci Specifies the Long Term Reference (LTR) frame(s) to be used for 286562306a36Sopenharmony_ci encoding the next frame queued after setting this control. 286662306a36Sopenharmony_ci This provides a bitmask which consists of bits [0, LTR_COUNT-1]. 286762306a36Sopenharmony_ci This is applicable to the H264 and HEVC encoders. 286862306a36Sopenharmony_ci 286962306a36Sopenharmony_ci``V4L2_CID_STATELESS_HEVC_DECODE_PARAMS (struct)`` 287062306a36Sopenharmony_ci Specifies various decode parameters, especially the references picture order 287162306a36Sopenharmony_ci count (POC) for all the lists (short, long, before, current, after) and the 287262306a36Sopenharmony_ci number of entries for each of them. 287362306a36Sopenharmony_ci These parameters are defined according to :ref:`hevc`. 287462306a36Sopenharmony_ci They are described in section 8.3 "Slice decoding process" of the 287562306a36Sopenharmony_ci specification. 287662306a36Sopenharmony_ci 287762306a36Sopenharmony_ci.. c:type:: v4l2_ctrl_hevc_decode_params 287862306a36Sopenharmony_ci 287962306a36Sopenharmony_ci.. cssclass:: longtable 288062306a36Sopenharmony_ci 288162306a36Sopenharmony_ci.. flat-table:: struct v4l2_ctrl_hevc_decode_params 288262306a36Sopenharmony_ci :header-rows: 0 288362306a36Sopenharmony_ci :stub-columns: 0 288462306a36Sopenharmony_ci :widths: 1 1 2 288562306a36Sopenharmony_ci 288662306a36Sopenharmony_ci * - __s32 288762306a36Sopenharmony_ci - ``pic_order_cnt_val`` 288862306a36Sopenharmony_ci - PicOrderCntVal as described in section 8.3.1 "Decoding process 288962306a36Sopenharmony_ci for picture order count" of the specification. 289062306a36Sopenharmony_ci * - __u16 289162306a36Sopenharmony_ci - ``short_term_ref_pic_set_size`` 289262306a36Sopenharmony_ci - Specifies the size, in bits, of the short-term reference picture set, of the first slice 289362306a36Sopenharmony_ci described as st_ref_pic_set() in the specification, included in the slice header 289462306a36Sopenharmony_ci or SPS (section 7.3.6.1). 289562306a36Sopenharmony_ci * - __u16 289662306a36Sopenharmony_ci - ``long_term_ref_pic_set_size`` 289762306a36Sopenharmony_ci - Specifies the size, in bits, of the long-term reference picture set, of the first slice 289862306a36Sopenharmony_ci included in the slice header or SPS. It is the number of bits in the conditional block 289962306a36Sopenharmony_ci if(long_term_ref_pics_present_flag) in section 7.3.6.1 of the specification. 290062306a36Sopenharmony_ci * - __u8 290162306a36Sopenharmony_ci - ``num_active_dpb_entries`` 290262306a36Sopenharmony_ci - The number of entries in ``dpb``. 290362306a36Sopenharmony_ci * - __u8 290462306a36Sopenharmony_ci - ``num_poc_st_curr_before`` 290562306a36Sopenharmony_ci - The number of reference pictures in the short-term set that come before 290662306a36Sopenharmony_ci the current frame. 290762306a36Sopenharmony_ci * - __u8 290862306a36Sopenharmony_ci - ``num_poc_st_curr_after`` 290962306a36Sopenharmony_ci - The number of reference pictures in the short-term set that come after 291062306a36Sopenharmony_ci the current frame. 291162306a36Sopenharmony_ci * - __u8 291262306a36Sopenharmony_ci - ``num_poc_lt_curr`` 291362306a36Sopenharmony_ci - The number of reference pictures in the long-term set. 291462306a36Sopenharmony_ci * - __u8 291562306a36Sopenharmony_ci - ``poc_st_curr_before[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 291662306a36Sopenharmony_ci - PocStCurrBefore as described in section 8.3.2 "Decoding process for reference 291762306a36Sopenharmony_ci picture set": provides the index of the short term before references in DPB array. 291862306a36Sopenharmony_ci * - __u8 291962306a36Sopenharmony_ci - ``poc_st_curr_after[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 292062306a36Sopenharmony_ci - PocStCurrAfter as described in section 8.3.2 "Decoding process for reference 292162306a36Sopenharmony_ci picture set": provides the index of the short term after references in DPB array. 292262306a36Sopenharmony_ci * - __u8 292362306a36Sopenharmony_ci - ``poc_lt_curr[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 292462306a36Sopenharmony_ci - PocLtCurr as described in section 8.3.2 "Decoding process for reference 292562306a36Sopenharmony_ci picture set": provides the index of the long term references in DPB array. 292662306a36Sopenharmony_ci * - __u8 292762306a36Sopenharmony_ci - ``num_delta_pocs_of_ref_rps_idx`` 292862306a36Sopenharmony_ci - When the short_term_ref_pic_set_sps_flag in the slice header is equal to 0, 292962306a36Sopenharmony_ci it is the same as the derived value NumDeltaPocs[RefRpsIdx]. It can be used to parse 293062306a36Sopenharmony_ci the RPS data in slice headers instead of skipping it with @short_term_ref_pic_set_size. 293162306a36Sopenharmony_ci When the value of short_term_ref_pic_set_sps_flag in the slice header is 293262306a36Sopenharmony_ci equal to 1, num_delta_pocs_of_ref_rps_idx shall be set to 0. 293362306a36Sopenharmony_ci * - struct :c:type:`v4l2_hevc_dpb_entry` 293462306a36Sopenharmony_ci - ``dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 293562306a36Sopenharmony_ci - The decoded picture buffer, for meta-data about reference frames. 293662306a36Sopenharmony_ci * - __u64 293762306a36Sopenharmony_ci - ``flags`` 293862306a36Sopenharmony_ci - See :ref:`Decode Parameters Flags <hevc_decode_params_flags>` 293962306a36Sopenharmony_ci 294062306a36Sopenharmony_ci.. _hevc_decode_params_flags: 294162306a36Sopenharmony_ci 294262306a36Sopenharmony_ci``Decode Parameters Flags`` 294362306a36Sopenharmony_ci 294462306a36Sopenharmony_ci.. cssclass:: longtable 294562306a36Sopenharmony_ci 294662306a36Sopenharmony_ci.. flat-table:: 294762306a36Sopenharmony_ci :header-rows: 0 294862306a36Sopenharmony_ci :stub-columns: 0 294962306a36Sopenharmony_ci :widths: 1 1 2 295062306a36Sopenharmony_ci 295162306a36Sopenharmony_ci * - ``V4L2_HEVC_DECODE_PARAM_FLAG_IRAP_PIC`` 295262306a36Sopenharmony_ci - 0x00000001 295362306a36Sopenharmony_ci - 295462306a36Sopenharmony_ci * - ``V4L2_HEVC_DECODE_PARAM_FLAG_IDR_PIC`` 295562306a36Sopenharmony_ci - 0x00000002 295662306a36Sopenharmony_ci - 295762306a36Sopenharmony_ci * - ``V4L2_HEVC_DECODE_PARAM_FLAG_NO_OUTPUT_OF_PRIOR`` 295862306a36Sopenharmony_ci - 0x00000004 295962306a36Sopenharmony_ci - 296062306a36Sopenharmony_ci 296162306a36Sopenharmony_ci.. _v4l2-codec-stateless-av1: 296262306a36Sopenharmony_ci 296362306a36Sopenharmony_ci``V4L2_CID_STATELESS_AV1_SEQUENCE (struct)`` 296462306a36Sopenharmony_ci Represents an AV1 Sequence OBU (Open Bitstream Unit). See section 5.5 296562306a36Sopenharmony_ci "Sequence header OBU syntax" in :ref:`av1` for more details. 296662306a36Sopenharmony_ci 296762306a36Sopenharmony_ci.. c:type:: v4l2_ctrl_av1_sequence 296862306a36Sopenharmony_ci 296962306a36Sopenharmony_ci.. cssclass:: longtable 297062306a36Sopenharmony_ci 297162306a36Sopenharmony_ci.. tabularcolumns:: |p{5.8cm}|p{4.8cm}|p{6.6cm}| 297262306a36Sopenharmony_ci 297362306a36Sopenharmony_ci.. flat-table:: struct v4l2_ctrl_av1_sequence 297462306a36Sopenharmony_ci :header-rows: 0 297562306a36Sopenharmony_ci :stub-columns: 0 297662306a36Sopenharmony_ci :widths: 1 1 2 297762306a36Sopenharmony_ci 297862306a36Sopenharmony_ci * - __u32 297962306a36Sopenharmony_ci - ``flags`` 298062306a36Sopenharmony_ci - See :ref:`AV1 Sequence Flags <av1_sequence_flags>`. 298162306a36Sopenharmony_ci * - __u8 298262306a36Sopenharmony_ci - ``seq_profile`` 298362306a36Sopenharmony_ci - Specifies the features that can be used in the coded video sequence. 298462306a36Sopenharmony_ci * - __u8 298562306a36Sopenharmony_ci - ``order_hint_bits`` 298662306a36Sopenharmony_ci - Specifies the number of bits used for the order_hint field at each frame. 298762306a36Sopenharmony_ci * - __u8 298862306a36Sopenharmony_ci - ``bit_depth`` 298962306a36Sopenharmony_ci - the bit depth to use for the sequence as described in section 5.5.2 299062306a36Sopenharmony_ci "Color config syntax" in :ref:`av1` for more details. 299162306a36Sopenharmony_ci * - __u8 299262306a36Sopenharmony_ci - ``reserved`` 299362306a36Sopenharmony_ci - Applications and drivers must set this to zero. 299462306a36Sopenharmony_ci * - __u16 299562306a36Sopenharmony_ci - ``max_frame_width_minus_1`` 299662306a36Sopenharmony_ci - specifies the maximum frame width minus 1 for the frames represented by 299762306a36Sopenharmony_ci this sequence header. 299862306a36Sopenharmony_ci 299962306a36Sopenharmony_ci.. _av1_sequence_flags: 300062306a36Sopenharmony_ci 300162306a36Sopenharmony_ci``AV1 Sequence Flags`` 300262306a36Sopenharmony_ci 300362306a36Sopenharmony_ci.. cssclass:: longtable 300462306a36Sopenharmony_ci 300562306a36Sopenharmony_ci.. flat-table:: 300662306a36Sopenharmony_ci :header-rows: 0 300762306a36Sopenharmony_ci :stub-columns: 0 300862306a36Sopenharmony_ci :widths: 1 1 2 300962306a36Sopenharmony_ci 301062306a36Sopenharmony_ci * - ``V4L2_AV1_SEQUENCE_FLAG_STILL_PICTURE`` 301162306a36Sopenharmony_ci - 0x00000001 301262306a36Sopenharmony_ci - If set, specifies that the coded video sequence contains only one coded 301362306a36Sopenharmony_ci frame. If not set, specifies that the coded video sequence contains one 301462306a36Sopenharmony_ci or more coded frames. 301562306a36Sopenharmony_ci * - ``V4L2_AV1_SEQUENCE_FLAG_USE_128X128_SUPERBLOCK`` 301662306a36Sopenharmony_ci - 0x00000002 301762306a36Sopenharmony_ci - If set, indicates that superblocks contain 128x128 luma samples. 301862306a36Sopenharmony_ci When equal to 0, it indicates that superblocks contain 64x64 luma 301962306a36Sopenharmony_ci samples. The number of contained chroma samples depends on 302062306a36Sopenharmony_ci subsampling_x and subsampling_y. 302162306a36Sopenharmony_ci * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_FILTER_INTRA`` 302262306a36Sopenharmony_ci - 0x00000004 302362306a36Sopenharmony_ci - If set, specifies that the use_filter_intra syntax element may be 302462306a36Sopenharmony_ci present. If not set, specifies that the use_filter_intra syntax element 302562306a36Sopenharmony_ci will not be present. 302662306a36Sopenharmony_ci * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_INTRA_EDGE_FILTER`` 302762306a36Sopenharmony_ci - 0x00000008 302862306a36Sopenharmony_ci - Specifies whether the intra edge filtering process should be enabled. 302962306a36Sopenharmony_ci * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_INTERINTRA_COMPOUND`` 303062306a36Sopenharmony_ci - 0x00000010 303162306a36Sopenharmony_ci - If set, specifies that the mode info for inter blocks may contain the 303262306a36Sopenharmony_ci syntax element interintra. If not set, specifies that the syntax element 303362306a36Sopenharmony_ci interintra will not be present. 303462306a36Sopenharmony_ci * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_MASKED_COMPOUND`` 303562306a36Sopenharmony_ci - 0x00000020 303662306a36Sopenharmony_ci - If set, specifies that the mode info for inter blocks may contain the 303762306a36Sopenharmony_ci syntax element compound_type. If not set, specifies that the syntax 303862306a36Sopenharmony_ci element compound_type will not be present. 303962306a36Sopenharmony_ci * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_WARPED_MOTION`` 304062306a36Sopenharmony_ci - 0x00000040 304162306a36Sopenharmony_ci - If set, indicates that the allow_warped_motion syntax element may be 304262306a36Sopenharmony_ci present. If not set, indicates that the allow_warped_motion syntax 304362306a36Sopenharmony_ci element will not be present. 304462306a36Sopenharmony_ci * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_DUAL_FILTER`` 304562306a36Sopenharmony_ci - 0x00000080 304662306a36Sopenharmony_ci - If set, indicates that the inter prediction filter type may be specified 304762306a36Sopenharmony_ci independently in the horizontal and vertical directions. If the flag is 304862306a36Sopenharmony_ci equal to 0, only one filter type may be specified, which is then used in 304962306a36Sopenharmony_ci both directions. 305062306a36Sopenharmony_ci * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_ORDER_HINT`` 305162306a36Sopenharmony_ci - 0x00000100 305262306a36Sopenharmony_ci - If set, indicates that tools based on the values of order hints may be 305362306a36Sopenharmony_ci used. If not set, indicates that tools based on order hints are 305462306a36Sopenharmony_ci disabled. 305562306a36Sopenharmony_ci * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_JNT_COMP`` 305662306a36Sopenharmony_ci - 0x00000200 305762306a36Sopenharmony_ci - If set, indicates that the distance weights process may be used for 305862306a36Sopenharmony_ci inter prediction. 305962306a36Sopenharmony_ci * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_REF_FRAME_MVS`` 306062306a36Sopenharmony_ci - 0x00000400 306162306a36Sopenharmony_ci - If set, indicates that the use_ref_frame_mvs syntax element may be 306262306a36Sopenharmony_ci present. If not set, indicates that the use_ref_frame_mvs syntax element 306362306a36Sopenharmony_ci will not be present. 306462306a36Sopenharmony_ci * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_SUPERRES`` 306562306a36Sopenharmony_ci - 0x00000800 306662306a36Sopenharmony_ci - If set, specifies that the use_superres syntax element will be present 306762306a36Sopenharmony_ci in the uncompressed header. If not set, specifies that the use_superres 306862306a36Sopenharmony_ci syntax element will not be present (instead use_superres will be set to 306962306a36Sopenharmony_ci 0 in the uncompressed header without being read). 307062306a36Sopenharmony_ci * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_CDEF`` 307162306a36Sopenharmony_ci - 0x00001000 307262306a36Sopenharmony_ci - If set, specifies that cdef filtering may be enabled. If not set, 307362306a36Sopenharmony_ci specifies that cdef filtering is disabled. 307462306a36Sopenharmony_ci * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_RESTORATION`` 307562306a36Sopenharmony_ci - 0x00002000 307662306a36Sopenharmony_ci - If set, specifies that loop restoration filtering may be enabled. If not 307762306a36Sopenharmony_ci set, specifies that loop restoration filtering is disabled. 307862306a36Sopenharmony_ci * - ``V4L2_AV1_SEQUENCE_FLAG_MONO_CHROME`` 307962306a36Sopenharmony_ci - 0x00004000 308062306a36Sopenharmony_ci - If set, indicates that the video does not contain U and V color planes. 308162306a36Sopenharmony_ci If not set, indicates that the video contains Y, U, and V color planes. 308262306a36Sopenharmony_ci * - ``V4L2_AV1_SEQUENCE_FLAG_COLOR_RANGE`` 308362306a36Sopenharmony_ci - 0x00008000 308462306a36Sopenharmony_ci - If set, signals full swing representation, i.e. "Full Range 308562306a36Sopenharmony_ci Quantization". If not set, signals studio swing representation, i.e. 308662306a36Sopenharmony_ci "Limited Range Quantization". 308762306a36Sopenharmony_ci * - ``V4L2_AV1_SEQUENCE_FLAG_SUBSAMPLING_X`` 308862306a36Sopenharmony_ci - 0x00010000 308962306a36Sopenharmony_ci - Specify the chroma subsampling format. 309062306a36Sopenharmony_ci * - ``V4L2_AV1_SEQUENCE_FLAG_SUBSAMPLING_Y`` 309162306a36Sopenharmony_ci - 0x00020000 309262306a36Sopenharmony_ci - Specify the chroma subsampling format. 309362306a36Sopenharmony_ci * - ``V4L2_AV1_SEQUENCE_FLAG_FILM_GRAIN_PARAMS_PRESENT`` 309462306a36Sopenharmony_ci - 0x00040000 309562306a36Sopenharmony_ci - Specifies whether film grain parameters are present in the coded video 309662306a36Sopenharmony_ci sequence. 309762306a36Sopenharmony_ci * - ``V4L2_AV1_SEQUENCE_FLAG_SEPARATE_UV_DELTA_Q`` 309862306a36Sopenharmony_ci - 0x00080000 309962306a36Sopenharmony_ci - If set, indicates that the U and V planes may have separate delta 310062306a36Sopenharmony_ci quantizer values. If not set, indicates that the U and V planes will share 310162306a36Sopenharmony_ci the same delta quantizer value. 310262306a36Sopenharmony_ci 310362306a36Sopenharmony_ci``V4L2_CID_STATELESS_AV1_TILE_GROUP_ENTRY (struct)`` 310462306a36Sopenharmony_ci Represents a single AV1 tile inside an AV1 Tile Group. Note that MiRowStart, 310562306a36Sopenharmony_ci MiRowEnd, MiColStart and MiColEnd can be retrieved from struct 310662306a36Sopenharmony_ci v4l2_av1_tile_info in struct v4l2_ctrl_av1_frame using tile_row and 310762306a36Sopenharmony_ci tile_col. See section 6.10.1 "General tile group OBU semantics" in 310862306a36Sopenharmony_ci :ref:`av1` for more details. 310962306a36Sopenharmony_ci 311062306a36Sopenharmony_ci.. c:type:: v4l2_ctrl_av1_tile_group_entry 311162306a36Sopenharmony_ci 311262306a36Sopenharmony_ci.. cssclass:: longtable 311362306a36Sopenharmony_ci 311462306a36Sopenharmony_ci.. tabularcolumns:: |p{5.8cm}|p{4.8cm}|p{6.6cm}| 311562306a36Sopenharmony_ci 311662306a36Sopenharmony_ci.. flat-table:: struct v4l2_ctrl_av1_tile_group_entry 311762306a36Sopenharmony_ci :header-rows: 0 311862306a36Sopenharmony_ci :stub-columns: 0 311962306a36Sopenharmony_ci :widths: 1 1 2 312062306a36Sopenharmony_ci 312162306a36Sopenharmony_ci * - __u32 312262306a36Sopenharmony_ci - ``tile_offset`` 312362306a36Sopenharmony_ci - Offset from the OBU data, i.e. where the coded tile data actually starts. 312462306a36Sopenharmony_ci * - __u32 312562306a36Sopenharmony_ci - ``tile_size`` 312662306a36Sopenharmony_ci - Specifies the size in bytes of the coded tile. Equivalent to "TileSize" 312762306a36Sopenharmony_ci in :ref:`av1`. 312862306a36Sopenharmony_ci * - __u32 312962306a36Sopenharmony_ci - ``tile_row`` 313062306a36Sopenharmony_ci - Specifies the row of the current tile. Equivalent to "TileRow" in 313162306a36Sopenharmony_ci :ref:`av1`. 313262306a36Sopenharmony_ci * - __u32 313362306a36Sopenharmony_ci - ``tile_col`` 313462306a36Sopenharmony_ci - Specifies the column of the current tile. Equivalent to "TileColumn" in 313562306a36Sopenharmony_ci :ref:`av1`. 313662306a36Sopenharmony_ci 313762306a36Sopenharmony_ci.. c:type:: v4l2_av1_warp_model 313862306a36Sopenharmony_ci 313962306a36Sopenharmony_ci AV1 Warp Model as described in section 3 "Symbols and abbreviated terms" of 314062306a36Sopenharmony_ci :ref:`av1`. 314162306a36Sopenharmony_ci 314262306a36Sopenharmony_ci.. raw:: latex 314362306a36Sopenharmony_ci 314462306a36Sopenharmony_ci \scriptsize 314562306a36Sopenharmony_ci 314662306a36Sopenharmony_ci.. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| 314762306a36Sopenharmony_ci 314862306a36Sopenharmony_ci.. flat-table:: 314962306a36Sopenharmony_ci :header-rows: 0 315062306a36Sopenharmony_ci :stub-columns: 0 315162306a36Sopenharmony_ci :widths: 1 1 2 315262306a36Sopenharmony_ci 315362306a36Sopenharmony_ci * - ``V4L2_AV1_WARP_MODEL_IDENTITY`` 315462306a36Sopenharmony_ci - 0 315562306a36Sopenharmony_ci - Warp model is just an identity transform. 315662306a36Sopenharmony_ci * - ``V4L2_AV1_WARP_MODEL_TRANSLATION`` 315762306a36Sopenharmony_ci - 1 315862306a36Sopenharmony_ci - Warp model is a pure translation. 315962306a36Sopenharmony_ci * - ``V4L2_AV1_WARP_MODEL_ROTZOOM`` 316062306a36Sopenharmony_ci - 2 316162306a36Sopenharmony_ci - Warp model is a rotation + symmetric zoom + translation. 316262306a36Sopenharmony_ci * - ``V4L2_AV1_WARP_MODEL_AFFINE`` 316362306a36Sopenharmony_ci - 3 316462306a36Sopenharmony_ci - Warp model is a general affine transform. 316562306a36Sopenharmony_ci 316662306a36Sopenharmony_ci.. c:type:: v4l2_av1_reference_frame 316762306a36Sopenharmony_ci 316862306a36Sopenharmony_ciAV1 Reference Frames as described in section 6.10.24 "Ref frames semantics" 316962306a36Sopenharmony_ciof :ref:`av1`. 317062306a36Sopenharmony_ci 317162306a36Sopenharmony_ci.. raw:: latex 317262306a36Sopenharmony_ci 317362306a36Sopenharmony_ci \scriptsize 317462306a36Sopenharmony_ci 317562306a36Sopenharmony_ci.. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| 317662306a36Sopenharmony_ci 317762306a36Sopenharmony_ci.. flat-table:: 317862306a36Sopenharmony_ci :header-rows: 0 317962306a36Sopenharmony_ci :stub-columns: 0 318062306a36Sopenharmony_ci :widths: 1 1 2 318162306a36Sopenharmony_ci 318262306a36Sopenharmony_ci * - ``V4L2_AV1_REF_INTRA_FRAME`` 318362306a36Sopenharmony_ci - 0 318462306a36Sopenharmony_ci - Intra Frame Reference. 318562306a36Sopenharmony_ci * - ``V4L2_AV1_REF_LAST_FRAME`` 318662306a36Sopenharmony_ci - 1 318762306a36Sopenharmony_ci - Last Frame Reference. 318862306a36Sopenharmony_ci * - ``V4L2_AV1_REF_LAST2_FRAME`` 318962306a36Sopenharmony_ci - 2 319062306a36Sopenharmony_ci - Last2 Frame Reference. 319162306a36Sopenharmony_ci * - ``V4L2_AV1_REF_LAST3_FRAME`` 319262306a36Sopenharmony_ci - 3 319362306a36Sopenharmony_ci - Last3 Frame Reference. 319462306a36Sopenharmony_ci * - ``V4L2_AV1_REF_GOLDEN_FRAME`` 319562306a36Sopenharmony_ci - 4 319662306a36Sopenharmony_ci - Golden Frame Reference. 319762306a36Sopenharmony_ci * - ``V4L2_AV1_REF_BWDREF_FRAME`` 319862306a36Sopenharmony_ci - 5 319962306a36Sopenharmony_ci - BWD Frame Reference. 320062306a36Sopenharmony_ci * - ``V4L2_AV1_REF_ALTREF2_FRAME`` 320162306a36Sopenharmony_ci - 6 320262306a36Sopenharmony_ci - ALTREF2 Frame Reference. 320362306a36Sopenharmony_ci * - ``V4L2_AV1_REF_ALTREF_FRAME`` 320462306a36Sopenharmony_ci - 7 320562306a36Sopenharmony_ci - ALTREF Frame Reference. 320662306a36Sopenharmony_ci 320762306a36Sopenharmony_ci.. c:type:: v4l2_av1_global_motion 320862306a36Sopenharmony_ci 320962306a36Sopenharmony_ciAV1 Global Motion parameters as described in section 6.8.17 321062306a36Sopenharmony_ci"Global motion params semantics" of :ref:`av1`. 321162306a36Sopenharmony_ci 321262306a36Sopenharmony_ci.. cssclass:: longtable 321362306a36Sopenharmony_ci 321462306a36Sopenharmony_ci.. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| 321562306a36Sopenharmony_ci 321662306a36Sopenharmony_ci.. flat-table:: struct v4l2_av1_global_motion 321762306a36Sopenharmony_ci :header-rows: 0 321862306a36Sopenharmony_ci :stub-columns: 0 321962306a36Sopenharmony_ci :widths: 1 1 2 322062306a36Sopenharmony_ci 322162306a36Sopenharmony_ci * - __u8 322262306a36Sopenharmony_ci - ``flags[V4L2_AV1_TOTAL_REFS_PER_FRAME]`` 322362306a36Sopenharmony_ci - A bitfield containing the flags per reference frame. See 322462306a36Sopenharmony_ci :ref:`AV1 Global Motion Flags <av1_global_motion_flags>` for more 322562306a36Sopenharmony_ci details. 322662306a36Sopenharmony_ci * - enum :c:type:`v4l2_av1_warp_model` 322762306a36Sopenharmony_ci - ``type[V4L2_AV1_TOTAL_REFS_PER_FRAME]`` 322862306a36Sopenharmony_ci - The type of global motion transform used. 322962306a36Sopenharmony_ci * - __s32 323062306a36Sopenharmony_ci - ``params[V4L2_AV1_TOTAL_REFS_PER_FRAME][6]`` 323162306a36Sopenharmony_ci - This field has the same meaning as "gm_params" in :ref:`av1`. 323262306a36Sopenharmony_ci * - __u8 323362306a36Sopenharmony_ci - ``invalid`` 323462306a36Sopenharmony_ci - Bitfield indicating whether the global motion params are invalid for a 323562306a36Sopenharmony_ci given reference frame. See section 7.11.3.6 Setup shear process and the 323662306a36Sopenharmony_ci variable "warpValid". Use V4L2_AV1_GLOBAL_MOTION_IS_INVALID(ref) to 323762306a36Sopenharmony_ci create a suitable mask. 323862306a36Sopenharmony_ci * - __u8 323962306a36Sopenharmony_ci - ``reserved[3]`` 324062306a36Sopenharmony_ci - Applications and drivers must set this to zero. 324162306a36Sopenharmony_ci 324262306a36Sopenharmony_ci.. _av1_global_motion_flags: 324362306a36Sopenharmony_ci 324462306a36Sopenharmony_ci``AV1 Global Motion Flags`` 324562306a36Sopenharmony_ci 324662306a36Sopenharmony_ci.. cssclass:: longtable 324762306a36Sopenharmony_ci 324862306a36Sopenharmony_ci.. flat-table:: 324962306a36Sopenharmony_ci :header-rows: 0 325062306a36Sopenharmony_ci :stub-columns: 0 325162306a36Sopenharmony_ci :widths: 1 1 2 325262306a36Sopenharmony_ci 325362306a36Sopenharmony_ci * - ``V4L2_AV1_GLOBAL_MOTION_FLAG_IS_GLOBAL`` 325462306a36Sopenharmony_ci - 0x00000001 325562306a36Sopenharmony_ci - Specifies whether global motion parameters are present for a particular 325662306a36Sopenharmony_ci reference frame. 325762306a36Sopenharmony_ci * - ``V4L2_AV1_GLOBAL_MOTION_FLAG_IS_ROT_ZOOM`` 325862306a36Sopenharmony_ci - 0x00000002 325962306a36Sopenharmony_ci - Specifies whether a particular reference frame uses rotation and zoom 326062306a36Sopenharmony_ci global motion. 326162306a36Sopenharmony_ci * - ``V4L2_AV1_GLOBAL_MOTION_FLAG_IS_TRANSLATION`` 326262306a36Sopenharmony_ci - 0x00000004 326362306a36Sopenharmony_ci - Specifies whether a particular reference frame uses translation global 326462306a36Sopenharmony_ci motion 326562306a36Sopenharmony_ci 326662306a36Sopenharmony_ci.. c:type:: v4l2_av1_frame_restoration_type 326762306a36Sopenharmony_ci 326862306a36Sopenharmony_ciAV1 Frame Restoration Type. 326962306a36Sopenharmony_ci 327062306a36Sopenharmony_ci.. raw:: latex 327162306a36Sopenharmony_ci 327262306a36Sopenharmony_ci \scriptsize 327362306a36Sopenharmony_ci 327462306a36Sopenharmony_ci.. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| 327562306a36Sopenharmony_ci 327662306a36Sopenharmony_ci.. flat-table:: 327762306a36Sopenharmony_ci :header-rows: 0 327862306a36Sopenharmony_ci :stub-columns: 0 327962306a36Sopenharmony_ci :widths: 1 1 2 328062306a36Sopenharmony_ci 328162306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_RESTORE_NONE`` 328262306a36Sopenharmony_ci - 0 328362306a36Sopenharmony_ci - No filtering is applied. 328462306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_RESTORE_WIENER`` 328562306a36Sopenharmony_ci - 1 328662306a36Sopenharmony_ci - Wiener filter process is invoked. 328762306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_RESTORE_SGRPROJ`` 328862306a36Sopenharmony_ci - 2 328962306a36Sopenharmony_ci - Self guided filter process is invoked. 329062306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_RESTORE_SWITCHABLE`` 329162306a36Sopenharmony_ci - 3 329262306a36Sopenharmony_ci - Restoration filter is swichtable. 329362306a36Sopenharmony_ci 329462306a36Sopenharmony_ci.. c:type:: v4l2_av1_loop_restoration 329562306a36Sopenharmony_ci 329662306a36Sopenharmony_ciAV1 Loop Restoration as described in section 6.10.15 "Loop restoration params 329762306a36Sopenharmony_cisemantics" of :ref:`av1`. 329862306a36Sopenharmony_ci 329962306a36Sopenharmony_ci.. cssclass:: longtable 330062306a36Sopenharmony_ci 330162306a36Sopenharmony_ci.. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| 330262306a36Sopenharmony_ci 330362306a36Sopenharmony_ci.. flat-table:: struct v4l2_av1_loop_restoration 330462306a36Sopenharmony_ci :header-rows: 0 330562306a36Sopenharmony_ci :stub-columns: 0 330662306a36Sopenharmony_ci :widths: 1 1 2 330762306a36Sopenharmony_ci 330862306a36Sopenharmony_ci * - __u8 330962306a36Sopenharmony_ci - ``flags`` 331062306a36Sopenharmony_ci - See :ref:`AV1 Loop Restoration Flags <av1_loop_restoration_flags>`. 331162306a36Sopenharmony_ci * - __u8 331262306a36Sopenharmony_ci - ``lr_unit_shift`` 331362306a36Sopenharmony_ci - Specifies if the luma restoration size should be halved. 331462306a36Sopenharmony_ci * - __u8 331562306a36Sopenharmony_ci - ``lr_uv_shift`` 331662306a36Sopenharmony_ci - Specifies if the chroma size should be half the luma size. 331762306a36Sopenharmony_ci * - __u8 331862306a36Sopenharmony_ci - ``reserved`` 331962306a36Sopenharmony_ci - Applications and drivers must set this to zero. 332062306a36Sopenharmony_ci * - :c:type:`v4l2_av1_frame_restoration_type` 332162306a36Sopenharmony_ci - ``frame_restoration_type[V4L2_AV1_NUM_PLANES_MAX]`` 332262306a36Sopenharmony_ci - Specifies the type of restoration used for each plane. 332362306a36Sopenharmony_ci * - __u8 332462306a36Sopenharmony_ci - ``loop_restoration_size[V4L2_AV1_MAX_NUM_PLANES]`` 332562306a36Sopenharmony_ci - Specifies the size of loop restoration units in units of samples in the 332662306a36Sopenharmony_ci current plane. 332762306a36Sopenharmony_ci 332862306a36Sopenharmony_ci.. _av1_loop_restoration_flags: 332962306a36Sopenharmony_ci 333062306a36Sopenharmony_ci``AV1 Loop Restoration Flags`` 333162306a36Sopenharmony_ci 333262306a36Sopenharmony_ci.. cssclass:: longtable 333362306a36Sopenharmony_ci 333462306a36Sopenharmony_ci.. flat-table:: 333562306a36Sopenharmony_ci :header-rows: 0 333662306a36Sopenharmony_ci :stub-columns: 0 333762306a36Sopenharmony_ci :widths: 1 1 2 333862306a36Sopenharmony_ci 333962306a36Sopenharmony_ci * - ``V4L2_AV1_LOOP_RESTORATION_FLAG_USES_LR`` 334062306a36Sopenharmony_ci - 0x00000001 334162306a36Sopenharmony_ci - Retains the same meaning as UsesLr in :ref:`av1`. 334262306a36Sopenharmony_ci * - ``V4L2_AV1_LOOP_RESTORATION_FLAG_USES_CHROMA_LR`` 334362306a36Sopenharmony_ci - 0x00000002 334462306a36Sopenharmony_ci - Retains the same meaning as UsesChromaLr in :ref:`av1`. 334562306a36Sopenharmony_ci 334662306a36Sopenharmony_ci.. c:type:: v4l2_av1_cdef 334762306a36Sopenharmony_ci 334862306a36Sopenharmony_ciAV1 CDEF params semantics as described in section 6.10.14 "CDEF params 334962306a36Sopenharmony_cisemantics" of :ref:`av1`. 335062306a36Sopenharmony_ci 335162306a36Sopenharmony_ci.. cssclass:: longtable 335262306a36Sopenharmony_ci 335362306a36Sopenharmony_ci.. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| 335462306a36Sopenharmony_ci 335562306a36Sopenharmony_ci.. flat-table:: struct v4l2_av1_cdef 335662306a36Sopenharmony_ci :header-rows: 0 335762306a36Sopenharmony_ci :stub-columns: 0 335862306a36Sopenharmony_ci :widths: 1 1 2 335962306a36Sopenharmony_ci 336062306a36Sopenharmony_ci * - __u8 336162306a36Sopenharmony_ci - ``damping_minus_3`` 336262306a36Sopenharmony_ci - Controls the amount of damping in the deringing filter. 336362306a36Sopenharmony_ci * - __u8 336462306a36Sopenharmony_ci - ``bits`` 336562306a36Sopenharmony_ci - Specifies the number of bits needed to specify which CDEF filter to 336662306a36Sopenharmony_ci apply. 336762306a36Sopenharmony_ci * - __u8 336862306a36Sopenharmony_ci - ``y_pri_strength[V4L2_AV1_CDEF_MAX]`` 336962306a36Sopenharmony_ci - Specifies the strength of the primary filter. 337062306a36Sopenharmony_ci * - __u8 337162306a36Sopenharmony_ci - ``y_sec_strength[V4L2_AV1_CDEF_MAX]`` 337262306a36Sopenharmony_ci - Specifies the strength of the secondary filter. 337362306a36Sopenharmony_ci * - __u8 337462306a36Sopenharmony_ci - ``uv_pri_strength[V4L2_AV1_CDEF_MAX]`` 337562306a36Sopenharmony_ci - Specifies the strength of the primary filter. 337662306a36Sopenharmony_ci * - __u8 337762306a36Sopenharmony_ci - ``uv_secondary_strength[V4L2_AV1_CDEF_MAX]`` 337862306a36Sopenharmony_ci - Specifies the strength of the secondary filter. 337962306a36Sopenharmony_ci 338062306a36Sopenharmony_ci.. c:type:: v4l2_av1_segment_feature 338162306a36Sopenharmony_ci 338262306a36Sopenharmony_ciAV1 segment features as described in section 3 "Symbols and abbreviated terms" 338362306a36Sopenharmony_ciof :ref:`av1`. 338462306a36Sopenharmony_ci 338562306a36Sopenharmony_ci.. raw:: latex 338662306a36Sopenharmony_ci 338762306a36Sopenharmony_ci \scriptsize 338862306a36Sopenharmony_ci 338962306a36Sopenharmony_ci.. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| 339062306a36Sopenharmony_ci 339162306a36Sopenharmony_ci.. flat-table:: 339262306a36Sopenharmony_ci :header-rows: 0 339362306a36Sopenharmony_ci :stub-columns: 0 339462306a36Sopenharmony_ci :widths: 1 1 2 339562306a36Sopenharmony_ci 339662306a36Sopenharmony_ci * - ``V4L2_AV1_SEG_LVL_ALT_Q`` 339762306a36Sopenharmony_ci - 0 339862306a36Sopenharmony_ci - Index for quantizer segment feature. 339962306a36Sopenharmony_ci * - ``V4L2_AV1_SEG_LVL_ALT_LF_Y_V`` 340062306a36Sopenharmony_ci - 1 340162306a36Sopenharmony_ci - Index for vertical luma loop filter segment feature. 340262306a36Sopenharmony_ci * - ``V4L2_AV1_SEG_LVL_REF_FRAME`` 340362306a36Sopenharmony_ci - 5 340462306a36Sopenharmony_ci - Index for reference frame segment feature. 340562306a36Sopenharmony_ci * - ``V4L2_AV1_SEG_LVL_REF_SKIP`` 340662306a36Sopenharmony_ci - 6 340762306a36Sopenharmony_ci - Index for skip segment feature. 340862306a36Sopenharmony_ci * - ``V4L2_AV1_SEG_LVL_REF_GLOBALMV`` 340962306a36Sopenharmony_ci - 7 341062306a36Sopenharmony_ci - Index for global mv feature. 341162306a36Sopenharmony_ci * - ``V4L2_AV1_SEG_LVL_MAX`` 341262306a36Sopenharmony_ci - 8 341362306a36Sopenharmony_ci - Number of segment features. 341462306a36Sopenharmony_ci 341562306a36Sopenharmony_ci.. c:type:: v4l2_av1_segmentation 341662306a36Sopenharmony_ci 341762306a36Sopenharmony_ciAV1 Segmentation params as defined in section 6.8.13 "Segmentation params 341862306a36Sopenharmony_cisemantics" of :ref:`av1`. 341962306a36Sopenharmony_ci 342062306a36Sopenharmony_ci.. cssclass:: longtable 342162306a36Sopenharmony_ci 342262306a36Sopenharmony_ci.. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| 342362306a36Sopenharmony_ci 342462306a36Sopenharmony_ci.. flat-table:: struct v4l2_av1_segmentation 342562306a36Sopenharmony_ci :header-rows: 0 342662306a36Sopenharmony_ci :stub-columns: 0 342762306a36Sopenharmony_ci :widths: 1 1 2 342862306a36Sopenharmony_ci 342962306a36Sopenharmony_ci * - __u8 343062306a36Sopenharmony_ci - ``flags`` 343162306a36Sopenharmony_ci - See :ref:`AV1 Segmentation Flags <av1_segmentation_flags>` 343262306a36Sopenharmony_ci * - __u8 343362306a36Sopenharmony_ci - ``last_active_seg_id`` 343462306a36Sopenharmony_ci - Indicates the highest numbered segment id that has some 343562306a36Sopenharmony_ci enabled feature. This is used when decoding the segment id to only decode 343662306a36Sopenharmony_ci choices corresponding to used segments. 343762306a36Sopenharmony_ci * - __u8 343862306a36Sopenharmony_ci - ``feature_enabled[V4L2_AV1_MAX_SEGMENTS]`` 343962306a36Sopenharmony_ci - Bitmask defining which features are enabled in each segment. Use 344062306a36Sopenharmony_ci V4L2_AV1_SEGMENT_FEATURE_ENABLED to build a suitable mask. 344162306a36Sopenharmony_ci * - __u16 344262306a36Sopenharmony_ci - `feature_data[V4L2_AV1_MAX_SEGMENTS][V4L2_AV1_SEG_LVL_MAX]`` 344362306a36Sopenharmony_ci - Data attached to each feature. Data entry is only valid if the feature 344462306a36Sopenharmony_ci is enabled. 344562306a36Sopenharmony_ci 344662306a36Sopenharmony_ci.. _av1_segmentation_flags: 344762306a36Sopenharmony_ci 344862306a36Sopenharmony_ci``AV1 Segmentation Flags`` 344962306a36Sopenharmony_ci 345062306a36Sopenharmony_ci.. cssclass:: longtable 345162306a36Sopenharmony_ci 345262306a36Sopenharmony_ci.. flat-table:: 345362306a36Sopenharmony_ci :header-rows: 0 345462306a36Sopenharmony_ci :stub-columns: 0 345562306a36Sopenharmony_ci :widths: 1 1 2 345662306a36Sopenharmony_ci 345762306a36Sopenharmony_ci * - ``V4L2_AV1_SEGMENTATION_FLAG_ENABLED`` 345862306a36Sopenharmony_ci - 0x00000001 345962306a36Sopenharmony_ci - If set, indicates that this frame makes use of the segmentation tool. If 346062306a36Sopenharmony_ci not set, indicates that the frame does not use segmentation. 346162306a36Sopenharmony_ci * - ``V4L2_AV1_SEGMENTATION_FLAG_UPDATE_MAP`` 346262306a36Sopenharmony_ci - 0x00000002 346362306a36Sopenharmony_ci - If set, indicates that the segmentation map are updated during the 346462306a36Sopenharmony_ci decoding of this frame. If not set, indicates that the segmentation map 346562306a36Sopenharmony_ci from the previous frame is used. 346662306a36Sopenharmony_ci * - ``V4L2_AV1_SEGMENTATION_FLAG_TEMPORAL_UPDATE`` 346762306a36Sopenharmony_ci - 0x00000004 346862306a36Sopenharmony_ci - If set, indicates that the updates to the segmentation map are coded 346962306a36Sopenharmony_ci relative to the existing segmentation map. If not set, indicates that 347062306a36Sopenharmony_ci the new segmentation map is coded without reference to the existing 347162306a36Sopenharmony_ci segmentation map. 347262306a36Sopenharmony_ci * - ``V4L2_AV1_SEGMENTATION_FLAG_UPDATE_DATA`` 347362306a36Sopenharmony_ci - 0x00000008 347462306a36Sopenharmony_ci - If set, indicates that the updates to the segmentation map are coded 347562306a36Sopenharmony_ci relative to the existing segmentation map. If not set, indicates that 347662306a36Sopenharmony_ci the new segmentation map is coded without reference to the existing 347762306a36Sopenharmony_ci segmentation map. 347862306a36Sopenharmony_ci * - ``V4L2_AV1_SEGMENTATION_FLAG_SEG_ID_PRE_SKIP`` 347962306a36Sopenharmony_ci - 0x00000010 348062306a36Sopenharmony_ci - If set, indicates that the segment id will be read before the skip 348162306a36Sopenharmony_ci syntax element. If not set, indicates that the skip syntax element will 348262306a36Sopenharmony_ci be read first. 348362306a36Sopenharmony_ci 348462306a36Sopenharmony_ci.. c:type:: v4l2_av1_loop_filter 348562306a36Sopenharmony_ci 348662306a36Sopenharmony_ciAV1 Loop filter params as defined in section 6.8.10 "Loop filter semantics" of 348762306a36Sopenharmony_ci:ref:`av1`. 348862306a36Sopenharmony_ci 348962306a36Sopenharmony_ci.. cssclass:: longtable 349062306a36Sopenharmony_ci 349162306a36Sopenharmony_ci.. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| 349262306a36Sopenharmony_ci 349362306a36Sopenharmony_ci.. flat-table:: struct v4l2_av1_global_motion 349462306a36Sopenharmony_ci :header-rows: 0 349562306a36Sopenharmony_ci :stub-columns: 0 349662306a36Sopenharmony_ci :widths: 1 1 2 349762306a36Sopenharmony_ci 349862306a36Sopenharmony_ci * - __u8 349962306a36Sopenharmony_ci - ``flags`` 350062306a36Sopenharmony_ci - See 350162306a36Sopenharmony_ci :ref:`AV1 Loop Filter flags <av1_loop_filter_flags>` for more details. 350262306a36Sopenharmony_ci * - __u8 350362306a36Sopenharmony_ci - ``level[4]`` 350462306a36Sopenharmony_ci - An array containing loop filter strength values. Different loop 350562306a36Sopenharmony_ci filter strength values from the array are used depending on the image 350662306a36Sopenharmony_ci plane being filtered, and the edge direction (vertical or horizontal) 350762306a36Sopenharmony_ci being filtered. 350862306a36Sopenharmony_ci * - __u8 350962306a36Sopenharmony_ci - ``sharpness`` 351062306a36Sopenharmony_ci - indicates the sharpness level. The loop_filter_level and 351162306a36Sopenharmony_ci loop_filter_sharpness together determine when a block edge is filtered, 351262306a36Sopenharmony_ci and by how much the filtering can change the sample values. The loop 351362306a36Sopenharmony_ci filter process is described in section 7.14 of :ref:`av1`. 351462306a36Sopenharmony_ci * - __u8 351562306a36Sopenharmony_ci - ``ref_deltas[V4L2_AV1_TOTAL_REFS_PER_FRAME]`` 351662306a36Sopenharmony_ci - contains the adjustment needed for the filter level based on the 351762306a36Sopenharmony_ci chosen reference frame. If this syntax element is not present, it 351862306a36Sopenharmony_ci maintains its previous value. 351962306a36Sopenharmony_ci * - __u8 352062306a36Sopenharmony_ci - ``mode_deltas[2]`` 352162306a36Sopenharmony_ci - contains the adjustment needed for the filter level based on 352262306a36Sopenharmony_ci the chosen mode. If this syntax element is not present, it maintains its 352362306a36Sopenharmony_ci previous value. 352462306a36Sopenharmony_ci * - __u8 352562306a36Sopenharmony_ci - ``delta_lf_res`` 352662306a36Sopenharmony_ci - specifies the left shift which should be applied to decoded loop filter 352762306a36Sopenharmony_ci delta values. 352862306a36Sopenharmony_ci 352962306a36Sopenharmony_ci.. _av1_loop_filter_flags: 353062306a36Sopenharmony_ci 353162306a36Sopenharmony_ci``AV1 Loop Filter Flags`` 353262306a36Sopenharmony_ci 353362306a36Sopenharmony_ci.. cssclass:: longtable 353462306a36Sopenharmony_ci 353562306a36Sopenharmony_ci.. flat-table:: 353662306a36Sopenharmony_ci :header-rows: 0 353762306a36Sopenharmony_ci :stub-columns: 0 353862306a36Sopenharmony_ci :widths: 1 1 2 353962306a36Sopenharmony_ci 354062306a36Sopenharmony_ci * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_ENABLED`` 354162306a36Sopenharmony_ci - 0x00000001 354262306a36Sopenharmony_ci - If set, means that the filter level depends on the mode and reference 354362306a36Sopenharmony_ci frame used to predict a block. If not set, means that the filter level 354462306a36Sopenharmony_ci does not depend on the mode and reference frame. 354562306a36Sopenharmony_ci * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_UPDATE`` 354662306a36Sopenharmony_ci - 0x00000002 354762306a36Sopenharmony_ci - If set, means that additional syntax elements are present that specify 354862306a36Sopenharmony_ci which mode and reference frame deltas are to be updated. If not set, 354962306a36Sopenharmony_ci means that these syntax elements are not present. 355062306a36Sopenharmony_ci * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_LF_PRESENT`` 355162306a36Sopenharmony_ci - 0x00000004 355262306a36Sopenharmony_ci - Specifies whether loop filter delta values are present 355362306a36Sopenharmony_ci * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_LF_MULTI`` 355462306a36Sopenharmony_ci - 0x00000008 355562306a36Sopenharmony_ci - A value equal to 1 specifies that separate loop filter 355662306a36Sopenharmony_ci deltas are sent for horizontal luma edges, vertical luma edges, 355762306a36Sopenharmony_ci the U edges, and the V edges. A value of delta_lf_multi equal to 0 355862306a36Sopenharmony_ci specifies that the same loop filter delta is used for all edges. 355962306a36Sopenharmony_ci 356062306a36Sopenharmony_ci.. c:type:: v4l2_av1_quantization 356162306a36Sopenharmony_ci 356262306a36Sopenharmony_ciAV1 Quantization params as defined in section 6.8.11 "Quantization params 356362306a36Sopenharmony_cisemantics" of :ref:`av1`. 356462306a36Sopenharmony_ci 356562306a36Sopenharmony_ci.. cssclass:: longtable 356662306a36Sopenharmony_ci 356762306a36Sopenharmony_ci.. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| 356862306a36Sopenharmony_ci 356962306a36Sopenharmony_ci.. flat-table:: struct v4l2_av1_quantization 357062306a36Sopenharmony_ci :header-rows: 0 357162306a36Sopenharmony_ci :stub-columns: 0 357262306a36Sopenharmony_ci :widths: 1 1 2 357362306a36Sopenharmony_ci 357462306a36Sopenharmony_ci * - __u8 357562306a36Sopenharmony_ci - ``flags`` 357662306a36Sopenharmony_ci - See 357762306a36Sopenharmony_ci :ref:`AV1 Loop Filter flags <av1_quantization_flags>` for more details. 357862306a36Sopenharmony_ci * - __u8 357962306a36Sopenharmony_ci - ``base_q_idx`` 358062306a36Sopenharmony_ci - Indicates the base frame qindex. This is used for Y AC coefficients and 358162306a36Sopenharmony_ci as the base value for the other quantizers. 358262306a36Sopenharmony_ci * - __u8 358362306a36Sopenharmony_ci - ``delta_q_y_dc`` 358462306a36Sopenharmony_ci - Indicates the Y DC quantizer relative to base_q_idx. 358562306a36Sopenharmony_ci * - __u8 358662306a36Sopenharmony_ci - ``delta_q_u_dc`` 358762306a36Sopenharmony_ci - Indicates the U DC quantizer relative to base_q_idx. 358862306a36Sopenharmony_ci * - __u8 358962306a36Sopenharmony_ci - ``delta_q_u_ac`` 359062306a36Sopenharmony_ci - Indicates the U AC quantizer relative to base_q_idx. 359162306a36Sopenharmony_ci * - __u8 359262306a36Sopenharmony_ci - ``delta_q_v_dc`` 359362306a36Sopenharmony_ci - Indicates the V DC quantizer relative to base_q_idx. 359462306a36Sopenharmony_ci * - __u8 359562306a36Sopenharmony_ci - ``delta_q_v_ac`` 359662306a36Sopenharmony_ci - Indicates the V AC quantizer relative to base_q_idx. 359762306a36Sopenharmony_ci * - __u8 359862306a36Sopenharmony_ci - ``qm_y`` 359962306a36Sopenharmony_ci - Specifies the level in the quantizer matrix that should be used for 360062306a36Sopenharmony_ci luma plane decoding. 360162306a36Sopenharmony_ci * - __u8 360262306a36Sopenharmony_ci - ``qm_u`` 360362306a36Sopenharmony_ci - Specifies the level in the quantizer matrix that should be used for 360462306a36Sopenharmony_ci chroma U plane decoding. 360562306a36Sopenharmony_ci * - __u8 360662306a36Sopenharmony_ci - ``qm_v`` 360762306a36Sopenharmony_ci - Specifies the level in the quantizer matrix that should be used for 360862306a36Sopenharmony_ci chroma V plane decoding. 360962306a36Sopenharmony_ci * - __u8 361062306a36Sopenharmony_ci - ``delta_q_res`` 361162306a36Sopenharmony_ci - Specifies the left shift which should be applied to decoded quantizer 361262306a36Sopenharmony_ci index delta values. 361362306a36Sopenharmony_ci 361462306a36Sopenharmony_ci.. _av1_quantization_flags: 361562306a36Sopenharmony_ci 361662306a36Sopenharmony_ci``AV1 Quantization Flags`` 361762306a36Sopenharmony_ci 361862306a36Sopenharmony_ci.. cssclass:: longtable 361962306a36Sopenharmony_ci 362062306a36Sopenharmony_ci.. flat-table:: 362162306a36Sopenharmony_ci :header-rows: 0 362262306a36Sopenharmony_ci :stub-columns: 0 362362306a36Sopenharmony_ci :widths: 1 1 2 362462306a36Sopenharmony_ci 362562306a36Sopenharmony_ci * - ``V4L2_AV1_QUANTIZATION_FLAG_DIFF_UV_DELTA`` 362662306a36Sopenharmony_ci - 0x00000001 362762306a36Sopenharmony_ci - If set, indicates that the U and V delta quantizer values are coded 362862306a36Sopenharmony_ci separately. If not set, indicates that the U and V delta quantizer 362962306a36Sopenharmony_ci values share a common value. 363062306a36Sopenharmony_ci * - ``V4L2_AV1_QUANTIZATION_FLAG_USING_QMATRIX`` 363162306a36Sopenharmony_ci - 0x00000002 363262306a36Sopenharmony_ci - If set, specifies that the quantizer matrix will be used to compute 363362306a36Sopenharmony_ci quantizers. 363462306a36Sopenharmony_ci * - ``V4L2_AV1_QUANTIZATION_FLAG_DELTA_Q_PRESENT`` 363562306a36Sopenharmony_ci - 0x00000004 363662306a36Sopenharmony_ci - Specifies whether quantizer index delta values are present. 363762306a36Sopenharmony_ci 363862306a36Sopenharmony_ci.. c:type:: v4l2_av1_tile_info 363962306a36Sopenharmony_ci 364062306a36Sopenharmony_ciAV1 Tile info as defined in section 6.8.14 "Tile info semantics" of ref:`av1`. 364162306a36Sopenharmony_ci 364262306a36Sopenharmony_ci.. cssclass:: longtable 364362306a36Sopenharmony_ci 364462306a36Sopenharmony_ci.. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| 364562306a36Sopenharmony_ci 364662306a36Sopenharmony_ci.. flat-table:: struct v4l2_av1_tile_info 364762306a36Sopenharmony_ci :header-rows: 0 364862306a36Sopenharmony_ci :stub-columns: 0 364962306a36Sopenharmony_ci :widths: 1 1 2 365062306a36Sopenharmony_ci 365162306a36Sopenharmony_ci * - __u8 365262306a36Sopenharmony_ci - ``flags`` 365362306a36Sopenharmony_ci - See 365462306a36Sopenharmony_ci :ref:`AV1 Tile Info flags <av1_tile_info_flags>` for more details. 365562306a36Sopenharmony_ci * - __u8 365662306a36Sopenharmony_ci - ``context_update_tile_id`` 365762306a36Sopenharmony_ci - Specifies which tile to use for the CDF update. 365862306a36Sopenharmony_ci * - __u8 365962306a36Sopenharmony_ci - ``tile_cols`` 366062306a36Sopenharmony_ci - Specifies the number of tiles across the frame. 366162306a36Sopenharmony_ci * - __u8 366262306a36Sopenharmony_ci - ``tile_rows`` 366362306a36Sopenharmony_ci - Specifies the number of tiles down the frame. 366462306a36Sopenharmony_ci * - __u32 366562306a36Sopenharmony_ci - ``mi_col_starts[V4L2_AV1_MAX_TILE_COLS + 1]`` 366662306a36Sopenharmony_ci - An array specifying the start column (in units of 4x4 luma 366762306a36Sopenharmony_ci samples) for each tile across the image. 366862306a36Sopenharmony_ci * - __u32 366962306a36Sopenharmony_ci - ``mi_row_starts[V4L2_AV1_MAX_TILE_ROWS + 1]`` 367062306a36Sopenharmony_ci - An array specifying the start row (in units of 4x4 luma 367162306a36Sopenharmony_ci samples) for each tile across the image. 367262306a36Sopenharmony_ci * - __u32 367362306a36Sopenharmony_ci - ``width_in_sbs_minus_1[V4L2_AV1_MAX_TILE_COLS]`` 367462306a36Sopenharmony_ci - Specifies the width of a tile minus 1 in units of superblocks. 367562306a36Sopenharmony_ci * - __u32 367662306a36Sopenharmony_ci - ``height_in_sbs_minus_1[V4L2_AV1_MAX_TILE_ROWS]`` 367762306a36Sopenharmony_ci - Specifies the height of a tile minus 1 in units of superblocks. 367862306a36Sopenharmony_ci * - __u8 367962306a36Sopenharmony_ci - ``tile_size_bytes`` 368062306a36Sopenharmony_ci - Specifies the number of bytes needed to code each tile size. 368162306a36Sopenharmony_ci * - __u8 368262306a36Sopenharmony_ci - ``reserved[3]`` 368362306a36Sopenharmony_ci - Applications and drivers must set this to zero. 368462306a36Sopenharmony_ci 368562306a36Sopenharmony_ci.. _av1_tile_info_flags: 368662306a36Sopenharmony_ci 368762306a36Sopenharmony_ci``AV1 Tile Info Flags`` 368862306a36Sopenharmony_ci 368962306a36Sopenharmony_ci.. cssclass:: longtable 369062306a36Sopenharmony_ci 369162306a36Sopenharmony_ci.. flat-table:: 369262306a36Sopenharmony_ci :header-rows: 0 369362306a36Sopenharmony_ci :stub-columns: 0 369462306a36Sopenharmony_ci :widths: 1 1 2 369562306a36Sopenharmony_ci 369662306a36Sopenharmony_ci * - ``V4L2_AV1_TILE_INFO_FLAG_UNIFORM_TILE_SPACING`` 369762306a36Sopenharmony_ci - 0x00000001 369862306a36Sopenharmony_ci - If set, means that the tiles are uniformly spaced across the frame. (In 369962306a36Sopenharmony_ci other words, all tiles are the same size except for the ones at the 370062306a36Sopenharmony_ci right and bottom edge which can be smaller). If not set means that the 370162306a36Sopenharmony_ci tile sizes are coded. 370262306a36Sopenharmony_ci 370362306a36Sopenharmony_ci.. c:type:: v4l2_av1_frame_type 370462306a36Sopenharmony_ci 370562306a36Sopenharmony_ciAV1 Frame Type 370662306a36Sopenharmony_ci 370762306a36Sopenharmony_ci.. raw:: latex 370862306a36Sopenharmony_ci 370962306a36Sopenharmony_ci \scriptsize 371062306a36Sopenharmony_ci 371162306a36Sopenharmony_ci.. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| 371262306a36Sopenharmony_ci 371362306a36Sopenharmony_ci.. flat-table:: 371462306a36Sopenharmony_ci :header-rows: 0 371562306a36Sopenharmony_ci :stub-columns: 0 371662306a36Sopenharmony_ci :widths: 1 1 2 371762306a36Sopenharmony_ci 371862306a36Sopenharmony_ci * - ``V4L2_AV1_KEY_FRAME`` 371962306a36Sopenharmony_ci - 0 372062306a36Sopenharmony_ci - Key frame. 372162306a36Sopenharmony_ci * - ``V4L2_AV1_INTER_FRAME`` 372262306a36Sopenharmony_ci - 1 372362306a36Sopenharmony_ci - Inter frame. 372462306a36Sopenharmony_ci * - ``V4L2_AV1_INTRA_ONLY_FRAME`` 372562306a36Sopenharmony_ci - 2 372662306a36Sopenharmony_ci - Intra-only frame. 372762306a36Sopenharmony_ci * - ``V4L2_AV1_SWITCH_FRAME`` 372862306a36Sopenharmony_ci - 3 372962306a36Sopenharmony_ci - Switch frame. 373062306a36Sopenharmony_ci 373162306a36Sopenharmony_ci.. c:type:: v4l2_av1_interpolation_filter 373262306a36Sopenharmony_ci 373362306a36Sopenharmony_ciAV1 Interpolation Filter 373462306a36Sopenharmony_ci 373562306a36Sopenharmony_ci.. raw:: latex 373662306a36Sopenharmony_ci 373762306a36Sopenharmony_ci \scriptsize 373862306a36Sopenharmony_ci 373962306a36Sopenharmony_ci.. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| 374062306a36Sopenharmony_ci 374162306a36Sopenharmony_ci.. flat-table:: 374262306a36Sopenharmony_ci :header-rows: 0 374362306a36Sopenharmony_ci :stub-columns: 0 374462306a36Sopenharmony_ci :widths: 1 1 2 374562306a36Sopenharmony_ci 374662306a36Sopenharmony_ci * - ``V4L2_AV1_INTERPOLATION_FILTER_EIGHTTAP`` 374762306a36Sopenharmony_ci - 0 374862306a36Sopenharmony_ci - Eight tap filter. 374962306a36Sopenharmony_ci * - ``V4L2_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH`` 375062306a36Sopenharmony_ci - 1 375162306a36Sopenharmony_ci - Eight tap smooth filter. 375262306a36Sopenharmony_ci * - ``V4L2_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP`` 375362306a36Sopenharmony_ci - 2 375462306a36Sopenharmony_ci - Eight tap sharp filter. 375562306a36Sopenharmony_ci * - ``V4L2_AV1_INTERPOLATION_FILTER_BILINEAR`` 375662306a36Sopenharmony_ci - 3 375762306a36Sopenharmony_ci - Bilinear filter. 375862306a36Sopenharmony_ci * - ``V4L2_AV1_INTERPOLATION_FILTER_SWITCHABLE`` 375962306a36Sopenharmony_ci - 4 376062306a36Sopenharmony_ci - Filter selection is signaled at the block level. 376162306a36Sopenharmony_ci 376262306a36Sopenharmony_ci.. c:type:: v4l2_av1_tx_mode 376362306a36Sopenharmony_ci 376462306a36Sopenharmony_ciAV1 Tx mode as described in section 6.8.21 "TX mode semantics" of :ref:`av1`. 376562306a36Sopenharmony_ci 376662306a36Sopenharmony_ci.. raw:: latex 376762306a36Sopenharmony_ci 376862306a36Sopenharmony_ci \scriptsize 376962306a36Sopenharmony_ci 377062306a36Sopenharmony_ci.. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| 377162306a36Sopenharmony_ci 377262306a36Sopenharmony_ci.. flat-table:: 377362306a36Sopenharmony_ci :header-rows: 0 377462306a36Sopenharmony_ci :stub-columns: 0 377562306a36Sopenharmony_ci :widths: 1 1 2 377662306a36Sopenharmony_ci 377762306a36Sopenharmony_ci * - ``V4L2_AV1_TX_MODE_ONLY_4X4`` 377862306a36Sopenharmony_ci - 0 377962306a36Sopenharmony_ci - The inverse transform will use only 4x4 transforms. 378062306a36Sopenharmony_ci * - ``V4L2_AV1_TX_MODE_LARGEST`` 378162306a36Sopenharmony_ci - 1 378262306a36Sopenharmony_ci - The inverse transform will use the largest transform size that fits 378362306a36Sopenharmony_ci inside the block. 378462306a36Sopenharmony_ci * - ``V4L2_AV1_TX_MODE_SELECT`` 378562306a36Sopenharmony_ci - 2 378662306a36Sopenharmony_ci - The choice of transform size is specified explicitly for each block. 378762306a36Sopenharmony_ci 378862306a36Sopenharmony_ci``V4L2_CID_STATELESS_AV1_FRAME (struct)`` 378962306a36Sopenharmony_ci Represents a Frame Header OBU. See 6.8 "Frame Header OBU semantics" of 379062306a36Sopenharmony_ci :ref:`av1` for more details. 379162306a36Sopenharmony_ci 379262306a36Sopenharmony_ci.. c:type:: v4l2_ctrl_av1_frame 379362306a36Sopenharmony_ci 379462306a36Sopenharmony_ci.. cssclass:: longtable 379562306a36Sopenharmony_ci 379662306a36Sopenharmony_ci.. tabularcolumns:: |p{5.8cm}|p{4.8cm}|p{6.6cm}| 379762306a36Sopenharmony_ci 379862306a36Sopenharmony_ci.. flat-table:: struct v4l2_ctrl_av1_frame 379962306a36Sopenharmony_ci :header-rows: 0 380062306a36Sopenharmony_ci :stub-columns: 0 380162306a36Sopenharmony_ci :widths: 1 1 2 380262306a36Sopenharmony_ci 380362306a36Sopenharmony_ci * - struct :c:type:`v4l2_av1_tile_info` 380462306a36Sopenharmony_ci - ``tile_info`` 380562306a36Sopenharmony_ci - Tile info 380662306a36Sopenharmony_ci * - struct :c:type:`v4l2_av1_quantization` 380762306a36Sopenharmony_ci - ``quantization`` 380862306a36Sopenharmony_ci - Quantization parameters. 380962306a36Sopenharmony_ci * - struct :c:type:`v4l2_av1_segmentation` 381062306a36Sopenharmony_ci - ``segmentation`` 381162306a36Sopenharmony_ci - Segmentation parameters. 381262306a36Sopenharmony_ci * - __u8 381362306a36Sopenharmony_ci - ``superres_denom`` 381462306a36Sopenharmony_ci - The denominator for the upscaling ratio. 381562306a36Sopenharmony_ci * - struct :c:type:`v4l2_av1_loop_filter` 381662306a36Sopenharmony_ci - ``loop_filter`` 381762306a36Sopenharmony_ci - Loop filter params 381862306a36Sopenharmony_ci * - struct :c:type:`v4l2_av1_cdef` 381962306a36Sopenharmony_ci - ``cdef`` 382062306a36Sopenharmony_ci - CDEF params 382162306a36Sopenharmony_ci * - __u8 382262306a36Sopenharmony_ci - ``skip_mode_frame[2]`` 382362306a36Sopenharmony_ci - Specifies the frames to use for compound prediction when skip_mode is 382462306a36Sopenharmony_ci equal to 1. 382562306a36Sopenharmony_ci * - __u8 382662306a36Sopenharmony_ci - ``primary_ref_frame`` 382762306a36Sopenharmony_ci - Specifies which reference frame contains the CDF values and other state 382862306a36Sopenharmony_ci that should be loaded at the start of the frame. 382962306a36Sopenharmony_ci * - struct :c:type:`v4l2_av1_loop_restoration` 383062306a36Sopenharmony_ci - ``loop_restoration`` 383162306a36Sopenharmony_ci - Loop restoration parameters. 383262306a36Sopenharmony_ci * - struct :c:type:`v4l2_av1_loop_global_motion` 383362306a36Sopenharmony_ci - ``global_motion`` 383462306a36Sopenharmony_ci - Global motion parameters. 383562306a36Sopenharmony_ci * - __u32 383662306a36Sopenharmony_ci - ``flags`` 383762306a36Sopenharmony_ci - See 383862306a36Sopenharmony_ci :ref:`AV1 Frame flags <av1_frame_flags>` for more details. 383962306a36Sopenharmony_ci * - enum :c:type:`v4l2_av1_frame_type` 384062306a36Sopenharmony_ci - ``frame_type`` 384162306a36Sopenharmony_ci - Specifies the AV1 frame type 384262306a36Sopenharmony_ci * - __u32 384362306a36Sopenharmony_ci - ``order_hint`` 384462306a36Sopenharmony_ci - Specifies OrderHintBits least significant bits of the expected output 384562306a36Sopenharmony_ci order for this frame. 384662306a36Sopenharmony_ci * - __u32 384762306a36Sopenharmony_ci - ``upscaled_width`` 384862306a36Sopenharmony_ci - The upscaled width. 384962306a36Sopenharmony_ci * - enum :c:type:`v4l2_av1_interpolation_filter` 385062306a36Sopenharmony_ci - ``interpolation_filter`` 385162306a36Sopenharmony_ci - Specifies the filter selection used for performing inter prediction. 385262306a36Sopenharmony_ci * - enum :c:type:`v4l2_av1_tx_mode` 385362306a36Sopenharmony_ci - ``tx_mode`` 385462306a36Sopenharmony_ci - Specifies how the transform size is determined. 385562306a36Sopenharmony_ci * - __u32 385662306a36Sopenharmony_ci - ``frame_width_minus_1`` 385762306a36Sopenharmony_ci - Add 1 to get the frame's width. 385862306a36Sopenharmony_ci * - __u32 385962306a36Sopenharmony_ci - ``frame_height_minus_1`` 386062306a36Sopenharmony_ci - Add 1 to get the frame's height. 386162306a36Sopenharmony_ci * - __u16 386262306a36Sopenharmony_ci - ``render_width_minus_1`` 386362306a36Sopenharmony_ci - Add 1 to get the render width of the frame in luma samples. 386462306a36Sopenharmony_ci * - __u16 386562306a36Sopenharmony_ci - ``render_height_minus_1`` 386662306a36Sopenharmony_ci - Add 1 to get the render height of the frame in luma samples. 386762306a36Sopenharmony_ci * - __u32 386862306a36Sopenharmony_ci - ``current_frame_id`` 386962306a36Sopenharmony_ci - Specifies the frame id number for the current frame. Frame 387062306a36Sopenharmony_ci id numbers are additional information that do not affect the decoding 387162306a36Sopenharmony_ci process, but provide decoders with a way of detecting missing reference 387262306a36Sopenharmony_ci frames so that appropriate action can be taken. 387362306a36Sopenharmony_ci * - __u8 387462306a36Sopenharmony_ci - ``buffer_removal_time[V4L2_AV1_MAX_OPERATING_POINTS]`` 387562306a36Sopenharmony_ci - Specifies the frame removal time in units of DecCT clock ticks counted 387662306a36Sopenharmony_ci from the removal time of the last random access point for operating point 387762306a36Sopenharmony_ci opNum. 387862306a36Sopenharmony_ci * - __u8 387962306a36Sopenharmony_ci - ``reserved[4]`` 388062306a36Sopenharmony_ci - Applications and drivers must set this to zero. 388162306a36Sopenharmony_ci * - __u32 388262306a36Sopenharmony_ci - ``order_hints[V4L2_AV1_TOTAL_REFS_PER_FRAME]`` 388362306a36Sopenharmony_ci - Specifies the expected output order hint for each reference frame. 388462306a36Sopenharmony_ci This field corresponds to the OrderHints variable from the specification 388562306a36Sopenharmony_ci (section 5.9.2 "Uncompressed header syntax"). As such, this is only 388662306a36Sopenharmony_ci used for non-intra frames and ignored otherwise. order_hints[0] is 388762306a36Sopenharmony_ci always ignored. 388862306a36Sopenharmony_ci * - __u64 388962306a36Sopenharmony_ci - ``reference_frame_ts[V4L2_AV1_TOTAL_REFS_PER_FRAME]`` 389062306a36Sopenharmony_ci - The V4L2 timestamp for each of the reference frames enumerated in 389162306a36Sopenharmony_ci enum :c:type:`v4l2_av1_reference_frame` starting at 389262306a36Sopenharmony_ci ``V4L2_AV1_REF_LAST_FRAME``. This represents the state of reference 389362306a36Sopenharmony_ci slot as described in the spec and updated by userland through the 389462306a36Sopenharmony_ci "Reference frame update process" in section 7.20 The timestamp refers 389562306a36Sopenharmony_ci to the ``timestamp`` field in struct :c:type:`v4l2_buffer`. Use the 389662306a36Sopenharmony_ci :c:func:`v4l2_timeval_to_ns()` function to convert the struct 389762306a36Sopenharmony_ci :c:type:`timeval` in struct :c:type:`v4l2_buffer` to a __u64. 389862306a36Sopenharmony_ci * - __s8 389962306a36Sopenharmony_ci - ``ref_frame_idx[V4L2_AV1_REFS_PER_FRAME]`` 390062306a36Sopenharmony_ci - An index into ``reference_frame_ts`` representing the ordered list of 390162306a36Sopenharmony_ci references used by inter-frame. Matches the bitstream syntax 390262306a36Sopenharmony_ci element of the same name. 390362306a36Sopenharmony_ci * - __u8 390462306a36Sopenharmony_ci - ``refresh_frame_flags`` 390562306a36Sopenharmony_ci - Contains a bitmask that specifies which reference frame slots will be 390662306a36Sopenharmony_ci updated with the current frame after it is decoded. 390762306a36Sopenharmony_ci 390862306a36Sopenharmony_ci.. _av1_frame_flags: 390962306a36Sopenharmony_ci 391062306a36Sopenharmony_ci``AV1 Frame Flags`` 391162306a36Sopenharmony_ci 391262306a36Sopenharmony_ci.. cssclass:: longtable 391362306a36Sopenharmony_ci 391462306a36Sopenharmony_ci.. flat-table:: 391562306a36Sopenharmony_ci :header-rows: 0 391662306a36Sopenharmony_ci :stub-columns: 0 391762306a36Sopenharmony_ci :widths: 1 1 2 391862306a36Sopenharmony_ci 391962306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_FLAG_SHOW_FRAME`` 392062306a36Sopenharmony_ci - 0x00000001 392162306a36Sopenharmony_ci - If set, specifies that this frame should be immediately output once 392262306a36Sopenharmony_ci decoded. If not set, specifies that this frame should not be immediately 392362306a36Sopenharmony_ci output; it may be output later if a later uncompressed header uses 392462306a36Sopenharmony_ci show_existing_frame equal to 1. 392562306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_FLAG_SHOWABLE_FRAME`` 392662306a36Sopenharmony_ci - 0x00000002 392762306a36Sopenharmony_ci - If set, specifies that the frame may be output using the 392862306a36Sopenharmony_ci show_existing_frame mechanism. If not set, specifies that this frame 392962306a36Sopenharmony_ci will not be output using the show_existing_frame mechanism. 393062306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_FLAG_ERROR_RESILIENT_MODE`` 393162306a36Sopenharmony_ci - 0x00000004 393262306a36Sopenharmony_ci - Specifies whether error resilient mode is enabled. 393362306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_FLAG_DISABLE_CDF_UPDATE`` 393462306a36Sopenharmony_ci - 0x00000008 393562306a36Sopenharmony_ci - Specifies whether the CDF update in the symbol decoding process should 393662306a36Sopenharmony_ci be disabled. 393762306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_FLAG_ALLOW_SCREEN_CONTENT_TOOLS`` 393862306a36Sopenharmony_ci - 0x00000010 393962306a36Sopenharmony_ci - If set, indicates that intra blocks may use palette encoding. If not 394062306a36Sopenharmony_ci set, indicates that palette encoding is never used. 394162306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_FLAG_FORCE_INTEGER_MV`` 394262306a36Sopenharmony_ci - 0x00000020 394362306a36Sopenharmony_ci - If set, specifies that motion vectors will always be integers. If not 394462306a36Sopenharmony_ci set, specifies that motion vectors can contain fractional bits. 394562306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_FLAG_ALLOW_INTRABC`` 394662306a36Sopenharmony_ci - 0x00000040 394762306a36Sopenharmony_ci - If set, indicates that intra block copy may be used in this frame. If 394862306a36Sopenharmony_ci not set, indicates that intra block copy is not allowed in this frame. 394962306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_FLAG_USE_SUPERRES`` 395062306a36Sopenharmony_ci - 0x00000080 395162306a36Sopenharmony_ci - If set, indicates that upscaling is needed. 395262306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_FLAG_ALLOW_HIGH_PRECISION_MV`` 395362306a36Sopenharmony_ci - 0x00000100 395462306a36Sopenharmony_ci - If set, specifies that motion vectors are specified to eighth pel 395562306a36Sopenharmony_ci precision. If not set, specifies that motion vectors are specified to 395662306a36Sopenharmony_ci quarter pel precision; 395762306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_FLAG_IS_MOTION_MODE_SWITCHABLE`` 395862306a36Sopenharmony_ci - 0x00000200 395962306a36Sopenharmony_ci - If not set, specifies that only the SIMPLE motion mode will be used. 396062306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_FLAG_USE_REF_FRAME_MVS`` 396162306a36Sopenharmony_ci - 0x00000400 396262306a36Sopenharmony_ci - If set specifies that motion vector information from a previous frame 396362306a36Sopenharmony_ci can be used when decoding the current frame. If not set, specifies that 396462306a36Sopenharmony_ci this information will not be used. 396562306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_FLAG_DISABLE_FRAME_END_UPDATE_CDF`` 396662306a36Sopenharmony_ci - 0x00000800 396762306a36Sopenharmony_ci - If set indicates that the end of frame CDF update is disabled. If not 396862306a36Sopenharmony_ci set, indicates that the end of frame CDF update is enabled 396962306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_FLAG_ALLOW_WARPED_MOTION`` 397062306a36Sopenharmony_ci - 0x00001000 397162306a36Sopenharmony_ci - If set, indicates that the syntax element motion_mode may be present, if 397262306a36Sopenharmony_ci not set, indicates that the syntax element motion_mode will not be 397362306a36Sopenharmony_ci present. 397462306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_FLAG_REFERENCE_SELECT`` 397562306a36Sopenharmony_ci - 0x00002000 397662306a36Sopenharmony_ci - If set, specifies that the mode info for inter blocks contains the 397762306a36Sopenharmony_ci syntax element comp_mode that indicates whether to use single or 397862306a36Sopenharmony_ci compound reference prediction. If not set, specifies that all inter 397962306a36Sopenharmony_ci blocks will use single prediction. 398062306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_FLAG_REDUCED_TX_SET`` 398162306a36Sopenharmony_ci - 0x00004000 398262306a36Sopenharmony_ci - If set, specifies that the frame is restricted to a reduced subset of 398362306a36Sopenharmony_ci the full set of transform types. 398462306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_FLAG_SKIP_MODE_ALLOWED`` 398562306a36Sopenharmony_ci - 0x00008000 398662306a36Sopenharmony_ci - This flag retains the same meaning as SkipModeAllowed in :ref:`av1`. 398762306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_FLAG_SKIP_MODE_PRESENT`` 398862306a36Sopenharmony_ci - 0x00010000 398962306a36Sopenharmony_ci - If set, specifies that the syntax element skip_mode will be present, if 399062306a36Sopenharmony_ci not set, specifies that skip_mode will not be used for this frame. 399162306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_FLAG_FRAME_SIZE_OVERRIDE`` 399262306a36Sopenharmony_ci - 0x00020000 399362306a36Sopenharmony_ci - If set, specifies that the frame size will either be specified as the 399462306a36Sopenharmony_ci size of one of the reference frames, or computed from the 399562306a36Sopenharmony_ci frame_width_minus_1 and frame_height_minus_1 syntax elements. If not 399662306a36Sopenharmony_ci set, specifies that the frame size is equal to the size in the sequence 399762306a36Sopenharmony_ci header. 399862306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_FLAG_BUFFER_REMOVAL_TIME_PRESENT`` 399962306a36Sopenharmony_ci - 0x00040000 400062306a36Sopenharmony_ci - If set, specifies that buffer_removal_time is present. If not set, 400162306a36Sopenharmony_ci specifies that buffer_removal_time is not present. 400262306a36Sopenharmony_ci * - ``V4L2_AV1_FRAME_FLAG_FRAME_REFS_SHORT_SIGNALING`` 400362306a36Sopenharmony_ci - 0x00080000 400462306a36Sopenharmony_ci - If set, indicates that only two reference frames are explicitly 400562306a36Sopenharmony_ci signaled. If not set, indicates that all reference frames are explicitly 400662306a36Sopenharmony_ci signaled. 400762306a36Sopenharmony_ci 400862306a36Sopenharmony_ci``V4L2_CID_STATELESS_AV1_FILM_GRAIN (struct)`` 400962306a36Sopenharmony_ci Represents the optional film grain parameters. See section 401062306a36Sopenharmony_ci 6.8.20 "Film grain params semantics" of :ref:`av1` for more details. 401162306a36Sopenharmony_ci 401262306a36Sopenharmony_ci.. c:type:: v4l2_ctrl_av1_film_grain 401362306a36Sopenharmony_ci 401462306a36Sopenharmony_ci.. cssclass:: longtable 401562306a36Sopenharmony_ci 401662306a36Sopenharmony_ci.. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| 401762306a36Sopenharmony_ci 401862306a36Sopenharmony_ci.. flat-table:: struct v4l2_ctrl_av1_film_grain 401962306a36Sopenharmony_ci :header-rows: 0 402062306a36Sopenharmony_ci :stub-columns: 0 402162306a36Sopenharmony_ci :widths: 1 1 2 402262306a36Sopenharmony_ci 402362306a36Sopenharmony_ci * - __u8 402462306a36Sopenharmony_ci - ``flags`` 402562306a36Sopenharmony_ci - See :ref:`AV1 Film Grain Flags <av1_film_grain_flags>`. 402662306a36Sopenharmony_ci * - __u8 402762306a36Sopenharmony_ci - ``cr_mult`` 402862306a36Sopenharmony_ci - Represents a multiplier for the cr component used in derivation of the 402962306a36Sopenharmony_ci input index to the cr component scaling function. 403062306a36Sopenharmony_ci * - __u16 403162306a36Sopenharmony_ci - ``grain_seed`` 403262306a36Sopenharmony_ci - Specifies the starting value for the pseudo-random numbers used during 403362306a36Sopenharmony_ci film grain synthesis. 403462306a36Sopenharmony_ci * - __u8 403562306a36Sopenharmony_ci - ``film_grain_params_ref_idx`` 403662306a36Sopenharmony_ci - Indicates which reference frame contains the film grain parameters to be 403762306a36Sopenharmony_ci used for this frame. 403862306a36Sopenharmony_ci * - __u8 403962306a36Sopenharmony_ci - ``num_y_points`` 404062306a36Sopenharmony_ci - Specifies the number of points for the piece-wise linear scaling 404162306a36Sopenharmony_ci function of the luma component. 404262306a36Sopenharmony_ci * - __u8 404362306a36Sopenharmony_ci - ``point_y_value[V4L2_AV1_MAX_NUM_Y_POINTS]`` 404462306a36Sopenharmony_ci - Represents the x (luma value) coordinate for the i-th point 404562306a36Sopenharmony_ci of the piecewise linear scaling function for luma component. The values 404662306a36Sopenharmony_ci are signaled on the scale of 0..255. In case of 10 bit video, these 404762306a36Sopenharmony_ci values correspond to luma values divided by 4. In case of 12 bit video, 404862306a36Sopenharmony_ci these values correspond to luma values divided by 16. 404962306a36Sopenharmony_ci * - __u8 405062306a36Sopenharmony_ci - ``point_y_scaling[V4L2_AV1_MAX_NUM_Y_POINTS]`` 405162306a36Sopenharmony_ci - Represents the scaling (output) value for the i-th point 405262306a36Sopenharmony_ci of the piecewise linear scaling function for luma component. 405362306a36Sopenharmony_ci * - __u8 405462306a36Sopenharmony_ci - ``num_cb_points`` 405562306a36Sopenharmony_ci - Specifies the number of points for the piece-wise linear scaling 405662306a36Sopenharmony_ci function of the cb component. 405762306a36Sopenharmony_ci * - __u8 405862306a36Sopenharmony_ci - ``point_cb_value[V4L2_AV1_MAX_NUM_CB_POINTS]`` 405962306a36Sopenharmony_ci - Represents the x coordinate for the i-th point of the 406062306a36Sopenharmony_ci piece-wise linear scaling function for cb component. The values are 406162306a36Sopenharmony_ci signaled on the scale of 0..255. 406262306a36Sopenharmony_ci * - __u8 406362306a36Sopenharmony_ci - ``point_cb_scaling[V4L2_AV1_MAX_NUM_CB_POINTS]`` 406462306a36Sopenharmony_ci - Represents the scaling (output) value for the i-th point of the 406562306a36Sopenharmony_ci piecewise linear scaling function for cb component. 406662306a36Sopenharmony_ci * - __u8 406762306a36Sopenharmony_ci - ``num_cr_points`` 406862306a36Sopenharmony_ci - Represents the number of points for the piece-wise 406962306a36Sopenharmony_ci linear scaling function of the cr component. 407062306a36Sopenharmony_ci * - __u8 407162306a36Sopenharmony_ci - ``point_cr_value[V4L2_AV1_MAX_NUM_CR_POINTS]`` 407262306a36Sopenharmony_ci - Represents the x coordinate for the i-th point of the 407362306a36Sopenharmony_ci piece-wise linear scaling function for cr component. The values are 407462306a36Sopenharmony_ci signaled on the scale of 0..255. 407562306a36Sopenharmony_ci * - __u8 407662306a36Sopenharmony_ci - ``point_cr_scaling[V4L2_AV1_MAX_NUM_CR_POINTS]`` 407762306a36Sopenharmony_ci - Represents the scaling (output) value for the i-th point of the 407862306a36Sopenharmony_ci piecewise linear scaling function for cr component. 407962306a36Sopenharmony_ci * - __u8 408062306a36Sopenharmony_ci - ``grain_scaling_minus_8`` 408162306a36Sopenharmony_ci - Represents the shift - 8 applied to the values of the chroma component. 408262306a36Sopenharmony_ci The grain_scaling_minus_8 can take values of 0..3 and determines the 408362306a36Sopenharmony_ci range and quantization step of the standard deviation of film grain. 408462306a36Sopenharmony_ci * - __u8 408562306a36Sopenharmony_ci - ``ar_coeff_lag`` 408662306a36Sopenharmony_ci - Specifies the number of auto-regressive coefficients for luma and 408762306a36Sopenharmony_ci chroma. 408862306a36Sopenharmony_ci * - __u8 408962306a36Sopenharmony_ci - ``ar_coeffs_y_plus_128[V4L2_AV1_AR_COEFFS_SIZE]`` 409062306a36Sopenharmony_ci - Specifies auto-regressive coefficients used for the Y plane. 409162306a36Sopenharmony_ci * - __u8 409262306a36Sopenharmony_ci - ``ar_coeffs_cb_plus_128[V4L2_AV1_AR_COEFFS_SIZE]`` 409362306a36Sopenharmony_ci - Specifies auto-regressive coefficients used for the U plane. 409462306a36Sopenharmony_ci * - __u8 409562306a36Sopenharmony_ci - ``ar_coeffs_cr_plus_128[V4L2_AV1_AR_COEFFS_SIZE]`` 409662306a36Sopenharmony_ci - Specifies auto-regressive coefficients used for the V plane. 409762306a36Sopenharmony_ci * - __u8 409862306a36Sopenharmony_ci - ``ar_coeff_shift_minus_6`` 409962306a36Sopenharmony_ci - Specifies the range of the auto-regressive coefficients. Values of 0, 410062306a36Sopenharmony_ci 1, 2, and 3 correspond to the ranges for auto-regressive coefficients of 410162306a36Sopenharmony_ci [-2, 2), [-1, 1), [-0.5, 0.5) and [-0.25, 0.25) respectively. 410262306a36Sopenharmony_ci * - __u8 410362306a36Sopenharmony_ci - ``grain_scale_shift`` 410462306a36Sopenharmony_ci - Specifies how much the Gaussian random numbers should be scaled down 410562306a36Sopenharmony_ci during the grain synthesis process. 410662306a36Sopenharmony_ci * - __u8 410762306a36Sopenharmony_ci - ``cb_mult`` 410862306a36Sopenharmony_ci - Represents a multiplier for the cb component used in derivation of the 410962306a36Sopenharmony_ci input index to the cb component scaling function. 411062306a36Sopenharmony_ci * - __u8 411162306a36Sopenharmony_ci - ``cb_luma_mult`` 411262306a36Sopenharmony_ci - Represents a multiplier for the average luma component used in 411362306a36Sopenharmony_ci derivation of the input index to the cb component scaling function.. 411462306a36Sopenharmony_ci * - __u8 411562306a36Sopenharmony_ci - ``cr_luma_mult`` 411662306a36Sopenharmony_ci - Represents a multiplier for the average luma component used in 411762306a36Sopenharmony_ci derivation of the input index to the cr component scaling function. 411862306a36Sopenharmony_ci * - __u16 411962306a36Sopenharmony_ci - ``cb_offset`` 412062306a36Sopenharmony_ci - Represents an offset used in derivation of the input index to the 412162306a36Sopenharmony_ci cb component scaling function. 412262306a36Sopenharmony_ci * - __u16 412362306a36Sopenharmony_ci - ``cr_offset`` 412462306a36Sopenharmony_ci - Represents an offset used in derivation of the input index to the 412562306a36Sopenharmony_ci cr component scaling function. 412662306a36Sopenharmony_ci * - __u8 412762306a36Sopenharmony_ci - ``reserved[4]`` 412862306a36Sopenharmony_ci - Applications and drivers must set this to zero. 412962306a36Sopenharmony_ci 413062306a36Sopenharmony_ci.. _av1_film_grain_flags: 413162306a36Sopenharmony_ci 413262306a36Sopenharmony_ci``AV1 Film Grain Flags`` 413362306a36Sopenharmony_ci 413462306a36Sopenharmony_ci.. cssclass:: longtable 413562306a36Sopenharmony_ci 413662306a36Sopenharmony_ci.. flat-table:: 413762306a36Sopenharmony_ci :header-rows: 0 413862306a36Sopenharmony_ci :stub-columns: 0 413962306a36Sopenharmony_ci :widths: 1 1 2 414062306a36Sopenharmony_ci 414162306a36Sopenharmony_ci * - ``V4L2_AV1_FILM_GRAIN_FLAG_APPLY_GRAIN`` 414262306a36Sopenharmony_ci - 0x00000001 414362306a36Sopenharmony_ci - If set, specifies that film grain should be added to this frame. If not 414462306a36Sopenharmony_ci set, specifies that film grain should not be added. 414562306a36Sopenharmony_ci * - ``V4L2_AV1_FILM_GRAIN_FLAG_UPDATE_GRAIN`` 414662306a36Sopenharmony_ci - 0x00000002 414762306a36Sopenharmony_ci - If set, means that a new set of parameters should be sent. If not set, 414862306a36Sopenharmony_ci specifies that the previous set of parameters should be used. 414962306a36Sopenharmony_ci * - ``V4L2_AV1_FILM_GRAIN_FLAG_CHROMA_SCALING_FROM_LUMA`` 415062306a36Sopenharmony_ci - 0x00000004 415162306a36Sopenharmony_ci - If set, specifies that the chroma scaling is inferred from the luma 415262306a36Sopenharmony_ci scaling. 415362306a36Sopenharmony_ci * - ``V4L2_AV1_FILM_GRAIN_FLAG_OVERLAP`` 415462306a36Sopenharmony_ci - 0x00000008 415562306a36Sopenharmony_ci - If set, indicates that the overlap between film grain blocks shall be 415662306a36Sopenharmony_ci applied. If not set, indicates that the overlap between film grain blocks 415762306a36Sopenharmony_ci shall not be applied. 415862306a36Sopenharmony_ci * - ``V4L2_AV1_FILM_GRAIN_FLAG_CLIP_TO_RESTRICTED_RANGE`` 415962306a36Sopenharmony_ci - 0x00000010 416062306a36Sopenharmony_ci - If set, indicates that clipping to the restricted (studio, i.e. limited) 416162306a36Sopenharmony_ci range shall be applied to the sample values after adding the film grain 416262306a36Sopenharmony_ci (see the semantics for color_range for an explanation of studio swing). 416362306a36Sopenharmony_ci If not set, indicates that clipping to the full range shall be applied 416462306a36Sopenharmony_ci to the sample values after adding the film grain. 4165