diff options
Diffstat (limited to 'Documentation/userspace-api/media/v4l/ext-ctrls-codec-stateless.rst')
| -rw-r--r-- | Documentation/userspace-api/media/v4l/ext-ctrls-codec-stateless.rst | 1216 | 
1 files changed, 1214 insertions, 2 deletions
diff --git a/Documentation/userspace-api/media/v4l/ext-ctrls-codec-stateless.rst b/Documentation/userspace-api/media/v4l/ext-ctrls-codec-stateless.rst index 3d8411acd5b8..81e60f4002c8 100644 --- a/Documentation/userspace-api/media/v4l/ext-ctrls-codec-stateless.rst +++ b/Documentation/userspace-api/media/v4l/ext-ctrls-codec-stateless.rst @@ -1890,11 +1890,11 @@ params syntax' of the :ref:`vp9` specification for more details.      * - __u8        - ``tree_probs[7]``        - Specifies the probability values to be used when decoding a Segment-ID. -        See '5.15. Segmentation map' section of :ref:`vp9` for more details. +        See '5.15 Segmentation map' section of :ref:`vp9` for more details.      * - __u8        - ``pred_probs[3]``        - Specifies the probability values to be used when decoding a -        Predicted-Segment-ID. See '6.4.14. Get segment id syntax' +        Predicted-Segment-ID. See '6.4.14 Get segment id syntax'          section of :ref:`vp9` for more details.      * - __u8        - ``flags`` @@ -2923,6 +2923,13 @@ This structure contains all loop filter related parameters. See sections        - ``poc_lt_curr[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``        - PocLtCurr as described in section 8.3.2 "Decoding process for reference          picture set": provides the index of the long term references in DPB array. +    * - __u8 +      - ``num_delta_pocs_of_ref_rps_idx`` +      - When the short_term_ref_pic_set_sps_flag in the slice header is equal to 0, +        it is the same as the derived value NumDeltaPocs[RefRpsIdx]. It can be used to parse +        the RPS data in slice headers instead of skipping it with @short_term_ref_pic_set_size. +        When the value of short_term_ref_pic_set_sps_flag in the slice header is +        equal to 1, num_delta_pocs_of_ref_rps_idx shall be set to 0.      * - struct :c:type:`v4l2_hevc_dpb_entry`        - ``dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``        - The decoded picture buffer, for meta-data about reference frames. @@ -2950,3 +2957,1208 @@ This structure contains all loop filter related parameters. See sections      * - ``V4L2_HEVC_DECODE_PARAM_FLAG_NO_OUTPUT_OF_PRIOR``        - 0x00000004        - + +.. _v4l2-codec-stateless-av1: + +``V4L2_CID_STATELESS_AV1_SEQUENCE (struct)`` +    Represents an AV1 Sequence OBU (Open Bitstream Unit). See section 5.5 +    "Sequence header OBU syntax" in :ref:`av1` for more details. + +.. c:type:: v4l2_ctrl_av1_sequence + +.. cssclass:: longtable + +.. tabularcolumns:: |p{5.8cm}|p{4.8cm}|p{6.6cm}| + +.. flat-table:: struct v4l2_ctrl_av1_sequence +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - __u32 +      - ``flags`` +      - See :ref:`AV1 Sequence Flags <av1_sequence_flags>`. +    * - __u8 +      - ``seq_profile`` +      - Specifies the features that can be used in the coded video sequence. +    * - __u8 +      - ``order_hint_bits`` +      - Specifies the number of bits used for the order_hint field at each frame. +    * - __u8 +      - ``bit_depth`` +      - the bit depth to use for the sequence as described in section 5.5.2 +        "Color config syntax" in :ref:`av1` for more details. +    * - __u8 +      - ``reserved`` +      - Applications and drivers must set this to zero. +    * - __u16 +      - ``max_frame_width_minus_1`` +      - specifies the maximum frame width minus 1 for the frames represented by +        this sequence header. + +.. _av1_sequence_flags: + +``AV1 Sequence Flags`` + +.. cssclass:: longtable + +.. flat-table:: +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - ``V4L2_AV1_SEQUENCE_FLAG_STILL_PICTURE`` +      - 0x00000001 +      - If set, specifies that the coded video sequence contains only one coded +        frame. If not set, specifies that the coded video sequence contains one +        or more coded frames. +    * - ``V4L2_AV1_SEQUENCE_FLAG_USE_128X128_SUPERBLOCK`` +      - 0x00000002 +      - If set, indicates that superblocks contain 128x128 luma samples. +        When equal to 0, it indicates that superblocks contain 64x64 luma +        samples. The number of contained chroma samples depends on +        subsampling_x and subsampling_y. +    * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_FILTER_INTRA`` +      - 0x00000004 +      - If set, specifies that the use_filter_intra syntax element may be +        present. If not set, specifies that the use_filter_intra syntax element +        will not be present. +    * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_INTRA_EDGE_FILTER`` +      - 0x00000008 +      - Specifies whether the intra edge filtering process should be enabled. +    * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_INTERINTRA_COMPOUND`` +      - 0x00000010 +      - If set, specifies that the mode info for inter blocks may contain the +        syntax element interintra. If not set, specifies that the syntax element +        interintra will not be present. +    * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_MASKED_COMPOUND`` +      - 0x00000020 +      - If set, specifies that the mode info for inter blocks may contain the +        syntax element compound_type. If not set, specifies that the syntax +        element compound_type will not be present. +    * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_WARPED_MOTION`` +      - 0x00000040 +      - If set, indicates that the allow_warped_motion syntax element may be +        present. If not set, indicates that the allow_warped_motion syntax +        element will not be present. +    * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_DUAL_FILTER`` +      - 0x00000080 +      - If set, indicates that the inter prediction filter type may be specified +        independently in the horizontal and vertical directions. If the flag is +        equal to 0, only one filter type may be specified, which is then used in +        both directions. +    * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_ORDER_HINT`` +      - 0x00000100 +      - If set, indicates that tools based on the values of order hints may be +        used. If not set, indicates that tools based on order hints are +        disabled. +    * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_JNT_COMP`` +      - 0x00000200 +      - If set, indicates that the distance weights process may be used for +        inter prediction. +    * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_REF_FRAME_MVS`` +      - 0x00000400 +      - If set, indicates that the use_ref_frame_mvs syntax element may be +        present. If not set, indicates that the use_ref_frame_mvs syntax element +        will not be present. +    * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_SUPERRES`` +      - 0x00000800 +      - If set, specifies that the use_superres syntax element will be present +        in the uncompressed header. If not set, specifies that the use_superres +        syntax element will not be present (instead use_superres will be set to +        0 in the uncompressed header without being read). +    * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_CDEF`` +      - 0x00001000 +      - If set, specifies that cdef filtering may be enabled. If not set, +        specifies that cdef filtering is disabled. +    * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_RESTORATION`` +      - 0x00002000 +      - If set, specifies that loop restoration filtering may be enabled. If not +        set, specifies that loop restoration filtering is disabled. +    * - ``V4L2_AV1_SEQUENCE_FLAG_MONO_CHROME`` +      - 0x00004000 +      - If set, indicates that the video does not contain U and V color planes. +        If not set, indicates that the video contains Y, U, and V color planes. +    * - ``V4L2_AV1_SEQUENCE_FLAG_COLOR_RANGE`` +      - 0x00008000 +      - If set, signals full swing representation, i.e. "Full Range +        Quantization". If not set, signals studio swing representation, i.e. +        "Limited Range Quantization". +    * - ``V4L2_AV1_SEQUENCE_FLAG_SUBSAMPLING_X`` +      - 0x00010000 +      - Specify the chroma subsampling format. +    * - ``V4L2_AV1_SEQUENCE_FLAG_SUBSAMPLING_Y`` +      - 0x00020000 +      - Specify the chroma subsampling format. +    * - ``V4L2_AV1_SEQUENCE_FLAG_FILM_GRAIN_PARAMS_PRESENT`` +      - 0x00040000 +      - Specifies whether film grain parameters are present in the coded video +        sequence. +    * - ``V4L2_AV1_SEQUENCE_FLAG_SEPARATE_UV_DELTA_Q`` +      - 0x00080000 +      - If set, indicates that the U and V planes may have separate delta +        quantizer values. If not set, indicates that the U and V planes will share +        the same delta quantizer value. + +``V4L2_CID_STATELESS_AV1_TILE_GROUP_ENTRY (struct)`` +    Represents a single AV1 tile inside an AV1 Tile Group. Note that MiRowStart, +    MiRowEnd, MiColStart and MiColEnd can be retrieved from struct +    v4l2_av1_tile_info in struct v4l2_ctrl_av1_frame using tile_row and +    tile_col. See section 6.10.1 "General tile group OBU semantics" in +    :ref:`av1` for more details. + +.. c:type:: v4l2_ctrl_av1_tile_group_entry + +.. cssclass:: longtable + +.. tabularcolumns:: |p{5.8cm}|p{4.8cm}|p{6.6cm}| + +.. flat-table:: struct v4l2_ctrl_av1_tile_group_entry +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - __u32 +      - ``tile_offset`` +      - Offset from the OBU data, i.e. where the coded tile data actually starts. +    * - __u32 +      - ``tile_size`` +      - Specifies the size in bytes of the coded tile. Equivalent to "TileSize" +        in :ref:`av1`. +    * - __u32 +      - ``tile_row`` +      - Specifies the row of the current tile. Equivalent to "TileRow" in +        :ref:`av1`. +    * - __u32 +      - ``tile_col`` +      - Specifies the column of the current tile. Equivalent to "TileColumn" in +        :ref:`av1`. + +.. c:type:: v4l2_av1_warp_model + +	AV1 Warp Model as described in section 3 "Symbols and abbreviated terms" of +	:ref:`av1`. + +.. raw:: latex + +    \scriptsize + +.. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| + +.. flat-table:: +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - ``V4L2_AV1_WARP_MODEL_IDENTITY`` +      - 0 +      - Warp model is just an identity transform. +    * - ``V4L2_AV1_WARP_MODEL_TRANSLATION`` +      - 1 +      - Warp model is a pure translation. +    * - ``V4L2_AV1_WARP_MODEL_ROTZOOM`` +      - 2 +      - Warp model is a rotation + symmetric zoom + translation. +    * - ``V4L2_AV1_WARP_MODEL_AFFINE`` +      - 3 +      - Warp model is a general affine transform. + +.. c:type:: v4l2_av1_reference_frame + +AV1 Reference Frames as described in section 6.10.24 "Ref frames semantics" +of :ref:`av1`. + +.. raw:: latex + +    \scriptsize + +.. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| + +.. flat-table:: +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - ``V4L2_AV1_REF_INTRA_FRAME`` +      - 0 +      - Intra Frame Reference. +    * - ``V4L2_AV1_REF_LAST_FRAME`` +      - 1 +      - Last Frame Reference. +    * - ``V4L2_AV1_REF_LAST2_FRAME`` +      - 2 +      - Last2 Frame Reference. +    * - ``V4L2_AV1_REF_LAST3_FRAME`` +      - 3 +      - Last3 Frame Reference. +    * - ``V4L2_AV1_REF_GOLDEN_FRAME`` +      - 4 +      - Golden Frame Reference. +    * - ``V4L2_AV1_REF_BWDREF_FRAME`` +      - 5 +      - BWD Frame Reference. +    * - ``V4L2_AV1_REF_ALTREF2_FRAME`` +      - 6 +      - ALTREF2 Frame Reference. +    * - ``V4L2_AV1_REF_ALTREF_FRAME`` +      - 7 +      - ALTREF Frame Reference. + +.. c:type:: v4l2_av1_global_motion + +AV1 Global Motion parameters as described in section 6.8.17 +"Global motion params semantics" of :ref:`av1`. + +.. cssclass:: longtable + +.. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| + +.. flat-table:: struct v4l2_av1_global_motion +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - __u8 +      - ``flags[V4L2_AV1_TOTAL_REFS_PER_FRAME]`` +      - A bitfield containing the flags per reference frame. See +        :ref:`AV1 Global Motion Flags <av1_global_motion_flags>` for more +        details. +    * - enum :c:type:`v4l2_av1_warp_model` +      - ``type[V4L2_AV1_TOTAL_REFS_PER_FRAME]`` +      - The type of global motion transform used. +    * - __s32 +      - ``params[V4L2_AV1_TOTAL_REFS_PER_FRAME][6]`` +      - This field has the same meaning as "gm_params" in :ref:`av1`. +    * - __u8 +      - ``invalid`` +      - Bitfield indicating whether the global motion params are invalid for a +        given reference frame. See section 7.11.3.6 Setup shear process and the +        variable "warpValid". Use V4L2_AV1_GLOBAL_MOTION_IS_INVALID(ref) to +        create a suitable mask. +    * - __u8 +      - ``reserved[3]`` +      - Applications and drivers must set this to zero. + +.. _av1_global_motion_flags: + +``AV1 Global Motion Flags`` + +.. cssclass:: longtable + +.. flat-table:: +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - ``V4L2_AV1_GLOBAL_MOTION_FLAG_IS_GLOBAL`` +      - 0x00000001 +      - Specifies whether global motion parameters are present for a particular +        reference frame. +    * - ``V4L2_AV1_GLOBAL_MOTION_FLAG_IS_ROT_ZOOM`` +      - 0x00000002 +      - Specifies whether a particular reference frame uses rotation and zoom +        global motion. +    * - ``V4L2_AV1_GLOBAL_MOTION_FLAG_IS_TRANSLATION`` +      - 0x00000004 +      - Specifies whether a particular reference frame uses translation global +        motion + +.. c:type:: v4l2_av1_frame_restoration_type + +AV1 Frame Restoration Type. + +.. raw:: latex + +    \scriptsize + +.. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| + +.. flat-table:: +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - ``V4L2_AV1_FRAME_RESTORE_NONE`` +      - 0 +      - No filtering is applied. +    * - ``V4L2_AV1_FRAME_RESTORE_WIENER`` +      - 1 +      - Wiener filter process is invoked. +    * - ``V4L2_AV1_FRAME_RESTORE_SGRPROJ`` +      - 2 +      - Self guided filter process is invoked. +    * - ``V4L2_AV1_FRAME_RESTORE_SWITCHABLE`` +      - 3 +      - Restoration filter is swichtable. + +.. c:type:: v4l2_av1_loop_restoration + +AV1 Loop Restauration as described in section 6.10.15 "Loop restoration params +semantics" of :ref:`av1`. + +.. cssclass:: longtable + +.. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| + +.. flat-table:: struct v4l2_av1_loop_restoration +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - __u8 +      - ``flags`` +      - See :ref:`AV1 Loop Restoration Flags <av1_loop_restoration_flags>`. +    * - __u8 +      - ``lr_unit_shift`` +      - Specifies if the luma restoration size should be halved. +    * - __u8 +      - ``lr_uv_shift`` +      - Specifies if the chroma size should be half the luma size. +    * - __u8 +      - ``reserved`` +      - Applications and drivers must set this to zero. +    * - :c:type:`v4l2_av1_frame_restoration_type` +      - ``frame_restoration_type[V4L2_AV1_NUM_PLANES_MAX]`` +      - Specifies the type of restoration used for each plane. +    * - __u8 +      - ``loop_restoration_size[V4L2_AV1_MAX_NUM_PLANES]`` +      - Specifies the size of loop restoration units in units of samples in the +        current plane. + +.. _av1_loop_restoration_flags: + +``AV1 Loop Restoration Flags`` + +.. cssclass:: longtable + +.. flat-table:: +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - ``V4L2_AV1_LOOP_RESTORATION_FLAG_USES_LR`` +      - 0x00000001 +      - Retains the same meaning as UsesLr in :ref:`av1`. +    * - ``V4L2_AV1_LOOP_RESTORATION_FLAG_USES_CHROMA_LR`` +      - 0x00000002 +      - Retains the same meaning as UsesChromaLr in :ref:`av1`. + +.. c:type:: v4l2_av1_cdef + +AV1 CDEF params semantics as described in section 6.10.14 "CDEF params +semantics" of :ref:`av1`. + +.. cssclass:: longtable + +.. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| + +.. flat-table:: struct v4l2_av1_cdef +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - __u8 +      - ``damping_minus_3`` +      - Controls the amount of damping in the deringing filter. +    * - __u8 +      - ``bits`` +      - Specifies the number of bits needed to specify which CDEF filter to +        apply. +    * - __u8 +      - ``y_pri_strength[V4L2_AV1_CDEF_MAX]`` +      -  Specifies the strength of the primary filter. +    * - __u8 +      - ``y_sec_strength[V4L2_AV1_CDEF_MAX]`` +      -  Specifies the strength of the secondary filter. +    * - __u8 +      - ``uv_pri_strength[V4L2_AV1_CDEF_MAX]`` +      -  Specifies the strength of the primary filter. +    * - __u8 +      - ``uv_secondary_strength[V4L2_AV1_CDEF_MAX]`` +      -  Specifies the strength of the secondary filter. + +.. c:type:: v4l2_av1_segment_feature + +AV1 segment features as described in section 3 "Symbols and abbreviated terms" +of :ref:`av1`. + +.. raw:: latex + +    \scriptsize + +.. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| + +.. flat-table:: +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - ``V4L2_AV1_SEG_LVL_ALT_Q`` +      - 0 +      - Index for quantizer segment feature. +    * - ``V4L2_AV1_SEG_LVL_ALT_LF_Y_V`` +      - 1 +      - Index for vertical luma loop filter segment feature. +    * - ``V4L2_AV1_SEG_LVL_REF_FRAME`` +      - 5 +      - Index for reference frame segment feature. +    * - ``V4L2_AV1_SEG_LVL_REF_SKIP`` +      - 6 +      - Index for skip segment feature. +    * - ``V4L2_AV1_SEG_LVL_REF_GLOBALMV`` +      - 7 +      - Index for global mv feature. +    * - ``V4L2_AV1_SEG_LVL_MAX`` +      - 8 +      - Number of segment features. + +.. c:type:: v4l2_av1_segmentation + +AV1 Segmentation params as defined in section 6.8.13 "Segmentation params +semantics" of :ref:`av1`. + +.. cssclass:: longtable + +.. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| + +.. flat-table:: struct v4l2_av1_segmentation +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - __u8 +      - ``flags`` +      - See :ref:`AV1 Segmentation Flags <av1_segmentation_flags>` +    * - __u8 +      - ``last_active_seg_id`` +      -  Indicates the highest numbered segment id that has some +         enabled feature. This is used when decoding the segment id to only decode +         choices corresponding to used segments. +    * - __u8 +      - ``feature_enabled[V4L2_AV1_MAX_SEGMENTS]`` +      - Bitmask defining which features are enabled in each segment. Use +        V4L2_AV1_SEGMENT_FEATURE_ENABLED to build a suitable mask. +    * - __u16 +      - `feature_data[V4L2_AV1_MAX_SEGMENTS][V4L2_AV1_SEG_LVL_MAX]`` +      -  Data attached to each feature. Data entry is only valid if the feature +         is enabled. + +.. _av1_segmentation_flags: + +``AV1 Segmentation Flags`` + +.. cssclass:: longtable + +.. flat-table:: +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - ``V4L2_AV1_SEGMENTATION_FLAG_ENABLED`` +      - 0x00000001 +      - If set, indicates that this frame makes use of the segmentation tool. If +        not set, indicates that the frame does not use segmentation. +    * - ``V4L2_AV1_SEGMENTATION_FLAG_UPDATE_MAP`` +      - 0x00000002 +      - If set, indicates that the segmentation map are updated during the +        decoding of this frame. If not set, indicates that the segmentation map +        from the previous frame is used. +    * - ``V4L2_AV1_SEGMENTATION_FLAG_TEMPORAL_UPDATE`` +      - 0x00000004 +      - If set, indicates that the updates to the segmentation map are coded +        relative to the existing segmentation map. If not set, indicates that +        the new segmentation map is coded without reference to the existing +        segmentation map. +    * - ``V4L2_AV1_SEGMENTATION_FLAG_UPDATE_DATA`` +      - 0x00000008 +      - If set, indicates that the updates to the segmentation map are coded +        relative to the existing segmentation map. If not set, indicates that +        the new segmentation map is coded without reference to the existing +        segmentation map. +    * - ``V4L2_AV1_SEGMENTATION_FLAG_SEG_ID_PRE_SKIP`` +      - 0x00000010 +      - If set, indicates that the segment id will be read before the skip +        syntax element. If not set, indicates that the skip syntax element will +        be read first. + +.. c:type:: v4l2_av1_loop_filter + +AV1 Loop filter params as defined in section 6.8.10 "Loop filter semantics" of +:ref:`av1`. + +.. cssclass:: longtable + +.. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| + +.. flat-table:: struct v4l2_av1_global_motion +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - __u8 +      - ``flags`` +      - See +        :ref:`AV1 Loop Filter flags <av1_loop_filter_flags>` for more details. +    * - __u8 +      - ``level[4]`` +      - An array containing loop filter strength values. Different loop +        filter strength values from the array are used depending on the image +        plane being filtered, and the edge direction (vertical or horizontal) +        being filtered. +    * - __u8 +      - ``sharpness`` +      - indicates the sharpness level. The loop_filter_level and +        loop_filter_sharpness together determine when a block edge is filtered, +        and by how much the filtering can change the sample values. The loop +        filter process is described in section 7.14 of :ref:`av1`. +    * - __u8 +      - ``ref_deltas[V4L2_AV1_TOTAL_REFS_PER_FRAME]`` +      - contains the adjustment needed for the filter level based on the +        chosen reference frame. If this syntax element is not present, it +        maintains its previous value. +    * - __u8 +      - ``mode_deltas[2]`` +      - contains the adjustment needed for the filter level based on +        the chosen mode. If this syntax element is not present, it maintains its +        previous value. +    * - __u8 +      - ``delta_lf_res`` +      - specifies the left shift which should be applied to decoded loop filter +        delta values. + +.. _av1_loop_filter_flags: + +``AV1 Loop Filter Flags`` + +.. cssclass:: longtable + +.. flat-table:: +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_ENABLED`` +      - 0x00000001 +      - If set, means that the filter level depends on the mode and reference +        frame used to predict a block. If not set, means that the filter level +        does not depend on the mode and reference frame. +    * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_UPDATE`` +      - 0x00000002 +      - If set, means that additional syntax elements are present that specify +        which mode and reference frame deltas are to be updated. If not set, +        means that these syntax elements are not present. +    * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_LF_PRESENT`` +      - 0x00000004 +      - Specifies whether loop filter delta values are present +    * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_LF_MULTI`` +      - 0x00000008 +      - A value equal to 1 specifies that separate loop filter +        deltas are sent for horizontal luma edges, vertical luma edges, +        the U edges, and the V edges. A value of delta_lf_multi equal to 0 +        specifies that the same loop filter delta is used for all edges. + +.. c:type:: v4l2_av1_quantization + +AV1 Quantization params as defined in section 6.8.11 "Quantization params +semantics" of :ref:`av1`. + +.. cssclass:: longtable + +.. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| + +.. flat-table:: struct v4l2_av1_quantization +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - __u8 +      - ``flags`` +      - See +        :ref:`AV1 Loop Filter flags <av1_quantization_flags>` for more details. +    * - __u8 +      - ``base_q_idx`` +      - Indicates the base frame qindex. This is used for Y AC coefficients and +        as the base value for the other quantizers. +    * - __u8 +      - ``delta_q_y_dc`` +      - Indicates the Y DC quantizer relative to base_q_idx. +    * - __u8 +      - ``delta_q_u_dc`` +      - Indicates the U DC quantizer relative to base_q_idx. +    * - __u8 +      - ``delta_q_u_ac`` +      - Indicates the U AC quantizer relative to base_q_idx. +    * - __u8 +      - ``delta_q_v_dc`` +      - Indicates the V DC quantizer relative to base_q_idx. +    * - __u8 +      - ``delta_q_v_ac`` +      - Indicates the V AC quantizer relative to base_q_idx. +    * - __u8 +      - ``qm_y`` +      - Specifies the level in the quantizer matrix that should be used for +        luma plane decoding. +    * - __u8 +      - ``qm_u`` +      - Specifies the level in the quantizer matrix that should be used for +        chroma U plane decoding. +    * - __u8 +      - ``qm_v`` +      - Specifies the level in the quantizer matrix that should be used for +        chroma V plane decoding. +    * - __u8 +      - ``delta_q_res`` +      - Specifies the left shift which should be applied to decoded quantizer +        index delta values. + +.. _av1_quantization_flags: + +``AV1 Quantization Flags`` + +.. cssclass:: longtable + +.. flat-table:: +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - ``V4L2_AV1_QUANTIZATION_FLAG_DIFF_UV_DELTA`` +      - 0x00000001 +      - If set, indicates that the U and V delta quantizer values are coded +        separately. If not set, indicates that the U and V delta quantizer +        values share a common value. +    * - ``V4L2_AV1_QUANTIZATION_FLAG_USING_QMATRIX`` +      - 0x00000002 +      - If set, specifies that the quantizer matrix will be used to compute +        quantizers. +    * - ``V4L2_AV1_QUANTIZATION_FLAG_DELTA_Q_PRESENT`` +      - 0x00000004 +      - Specifies whether quantizer index delta values are present. + +.. c:type:: v4l2_av1_tile_info + +AV1 Tile info as defined in section 6.8.14 "Tile info semantics" of ref:`av1`. + +.. cssclass:: longtable + +.. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| + +.. flat-table:: struct v4l2_av1_tile_info +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - __u8 +      - ``flags`` +      - See +        :ref:`AV1 Tile Info flags <av1_tile_info_flags>` for more details. +    * - __u8 +      - ``context_update_tile_id`` +      - Specifies which tile to use for the CDF update. +    * - __u8 +      - ``tile_cols`` +      - Specifies the number of tiles across the frame. +    * - __u8 +      - ``tile_rows`` +      - Specifies the number of tiles down the frame. +    * - __u32 +      - ``mi_col_starts[V4L2_AV1_MAX_TILE_COLS + 1]`` +      - An array specifying the start column (in units of 4x4 luma +        samples) for each tile across the image. +    * - __u32 +      - ``mi_row_starts[V4L2_AV1_MAX_TILE_ROWS + 1]`` +      - An array specifying the start row (in units of 4x4 luma +        samples) for each tile across the image. +    * - __u32 +      - ``width_in_sbs_minus_1[V4L2_AV1_MAX_TILE_COLS]`` +      - Specifies the width of a tile minus 1 in units of superblocks. +    * - __u32 +      - ``height_in_sbs_minus_1[V4L2_AV1_MAX_TILE_ROWS]`` +      - Specifies the height of a tile minus 1 in units of superblocks. +    * - __u8 +      - ``tile_size_bytes`` +      - Specifies the number of bytes needed to code each tile size. +    * - __u8 +      - ``reserved[3]`` +      - Applications and drivers must set this to zero. + +.. _av1_tile_info_flags: + +``AV1 Tile Info Flags`` + +.. cssclass:: longtable + +.. flat-table:: +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - ``V4L2_AV1_TILE_INFO_FLAG_UNIFORM_TILE_SPACING`` +      - 0x00000001 +      - If set, means that the tiles are uniformly spaced across the frame. (In +        other words, all tiles are the same size except for the ones at the +        right and bottom edge which can be smaller). If not set means that the +        tile sizes are coded. + +.. c:type:: v4l2_av1_frame_type + +AV1 Frame Type + +.. raw:: latex + +    \scriptsize + +.. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| + +.. flat-table:: +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - ``V4L2_AV1_KEY_FRAME`` +      - 0 +      - Key frame. +    * - ``V4L2_AV1_INTER_FRAME`` +      - 1 +      - Inter frame. +    * - ``V4L2_AV1_INTRA_ONLY_FRAME`` +      - 2 +      - Intra-only frame. +    * - ``V4L2_AV1_SWITCH_FRAME`` +      - 3 +      - Switch frame. + +.. c:type:: v4l2_av1_interpolation_filter + +AV1 Interpolation Filter + +.. raw:: latex + +    \scriptsize + +.. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| + +.. flat-table:: +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - ``V4L2_AV1_INTERPOLATION_FILTER_EIGHTTAP`` +      - 0 +      - Eight tap filter. +    * - ``V4L2_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH`` +      - 1 +      - Eight tap smooth filter. +    * - ``V4L2_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP`` +      - 2 +      - Eight tap sharp filter. +    * - ``V4L2_AV1_INTERPOLATION_FILTER_BILINEAR`` +      - 3 +      - Bilinear filter. +    * - ``V4L2_AV1_INTERPOLATION_FILTER_SWITCHABLE`` +      - 4 +      - Filter selection is signaled at the block level. + +.. c:type:: v4l2_av1_tx_mode + +AV1 Tx mode as described in section 6.8.21 "TX mode semantics" of :ref:`av1`. + +.. raw:: latex + +    \scriptsize + +.. tabularcolumns:: |p{7.4cm}|p{0.3cm}|p{9.6cm}| + +.. flat-table:: +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - ``V4L2_AV1_TX_MODE_ONLY_4X4`` +      - 0 +      -  The inverse transform will use only 4x4 transforms. +    * - ``V4L2_AV1_TX_MODE_LARGEST`` +      - 1 +      - The inverse transform will use the largest transform size that fits +        inside the block. +    * - ``V4L2_AV1_TX_MODE_SELECT`` +      - 2 +      - The choice of transform size is specified explicitly for each block. + +``V4L2_CID_STATELESS_AV1_FRAME (struct)`` +    Represents a Frame Header OBU. See 6.8 "Frame Header OBU semantics" of +    :ref:`av1` for more details. + +.. c:type:: v4l2_ctrl_av1_frame + +.. cssclass:: longtable + +.. tabularcolumns:: |p{5.8cm}|p{4.8cm}|p{6.6cm}| + +.. flat-table:: struct v4l2_ctrl_av1_frame +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - struct :c:type:`v4l2_av1_tile_info` +      - ``tile_info`` +      - Tile info +    * - struct :c:type:`v4l2_av1_quantization` +      - ``quantization`` +      - Quantization parameters. +    * - struct :c:type:`v4l2_av1_segmentation` +      - ``segmentation`` +      - Segmentation parameters. +    * - __u8 +      - ``superres_denom`` +      - The denominator for the upscaling ratio. +    * - struct :c:type:`v4l2_av1_loop_filter` +      - ``loop_filter`` +      - Loop filter params +    * - struct :c:type:`v4l2_av1_cdef` +      - ``cdef`` +      - CDEF params +    * - __u8 +      - ``skip_mode_frame[2]`` +      - Specifies the frames to use for compound prediction when skip_mode is +        equal to 1. +    * - __u8 +      - ``primary_ref_frame`` +      - Specifies which reference frame contains the CDF values and other state +        that should be loaded at the start of the frame. +    * - struct :c:type:`v4l2_av1_loop_restoration` +      - ``loop_restoration`` +      - Loop restoration parameters. +    * - struct :c:type:`v4l2_av1_loop_global_motion` +      - ``global_motion`` +      - Global motion parameters. +    * - __u32 +      - ``flags`` +      - See +        :ref:`AV1 Frame flags <av1_frame_flags>` for more details. +    * - enum :c:type:`v4l2_av1_frame_type` +      - ``frame_type`` +      - Specifies the AV1 frame type +    * - __u32 +      - ``order_hint`` +      - Specifies OrderHintBits least significant bits of the expected output +        order for this frame. +    * - __u32 +      - ``upscaled_width`` +      - The upscaled width. +    * - enum :c:type:`v4l2_av1_interpolation_filter` +      - ``interpolation_filter`` +      - Specifies the filter selection used for performing inter prediction. +    * - enum :c:type:`v4l2_av1_tx_mode` +      - ``tx_mode`` +      - Specifies how the transform size is determined. +    * - __u32 +      - ``frame_width_minus_1`` +      - Add 1 to get the frame's width. +    * - __u32 +      - ``frame_height_minus_1`` +      - Add 1 to get the frame's height. +    * - __u16 +      - ``render_width_minus_1`` +      - Add 1 to get the render width of the frame in luma samples. +    * - __u16 +      - ``render_height_minus_1`` +      - Add 1 to get the render height of the frame in luma samples. +    * - __u32 +      - ``current_frame_id`` +      - Specifies the frame id number for the current frame. Frame +        id numbers are additional information that do not affect the decoding +        process, but provide decoders with a way of detecting missing reference +        frames so that appropriate action can be taken. +    * - __u8 +      - ``buffer_removal_time[V4L2_AV1_MAX_OPERATING_POINTS]`` +      - Specifies the frame removal time in units of DecCT clock ticks counted +        from the removal time of the last random access point for operating point +        opNum. +    * - __u8 +      - ``reserved[4]`` +      - Applications and drivers must set this to zero. +    * - __u32 +      - ``order_hints[V4L2_AV1_TOTAL_REFS_PER_FRAME]`` +      - Specifies the expected output order hint for each reference frame. +        This field corresponds to the OrderHints variable from the specification +        (section 5.9.2  "Uncompressed header syntax"). As such, this is only +        used for non-intra frames and ignored otherwise. order_hints[0] is +        always ignored. +    * - __u64 +      - ``reference_frame_ts[V4L2_AV1_TOTAL_REFS_PER_FRAME]`` +      - The V4L2 timestamp for each of the reference frames enumerated in +        enum :c:type:`v4l2_av1_reference_frame` starting at +        ``V4L2_AV1_REF_LAST_FRAME``. This represents the state of reference +        slot as described in the spec and updated by userland through the +        "Reference frame update process" in section 7.20 The timestamp refers +        to the ``timestamp`` field in struct :c:type:`v4l2_buffer`. Use the +        :c:func:`v4l2_timeval_to_ns()` function to convert the struct +        :c:type:`timeval` in struct :c:type:`v4l2_buffer` to a __u64. +    * - __s8 +      - ``ref_frame_idx[V4L2_AV1_REFS_PER_FRAME]`` +      - An index into ``reference_frame_ts`` representing the ordered list of +        references used by inter-frame. Matches the bitstream syntax +        element of the same name. +    * - __u8 +      - ``refresh_frame_flags`` +      - Contains a bitmask that specifies which reference frame slots will be +        updated with the current frame after it is decoded. + +.. _av1_frame_flags: + +``AV1 Frame Flags`` + +.. cssclass:: longtable + +.. flat-table:: +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - ``V4L2_AV1_FRAME_FLAG_SHOW_FRAME`` +      - 0x00000001 +      - If set, specifies that this frame should be immediately output once +        decoded. If not set, specifies that this frame should not be immediately +        output; it may be output later if a later uncompressed header uses +        show_existing_frame equal to 1. +    * - ``V4L2_AV1_FRAME_FLAG_SHOWABLE_FRAME`` +      - 0x00000002 +      - If set, specifies that the frame may be output using the +        show_existing_frame mechanism. If not set, specifies that this frame +        will not be output using the show_existing_frame mechanism. +    * - ``V4L2_AV1_FRAME_FLAG_ERROR_RESILIENT_MODE`` +      - 0x00000004 +      - Specifies whether error resilient mode is enabled. +    * - ``V4L2_AV1_FRAME_FLAG_DISABLE_CDF_UPDATE`` +      - 0x00000008 +      - Specifies whether the CDF update in the symbol decoding process should +        be disabled. +    * - ``V4L2_AV1_FRAME_FLAG_ALLOW_SCREEN_CONTENT_TOOLS`` +      - 0x00000010 +      - If set, indicates that intra blocks may use palette encoding. If not +        set, indicates that palette encoding is never used. +    * - ``V4L2_AV1_FRAME_FLAG_FORCE_INTEGER_MV`` +      - 0x00000020 +      - If set, specifies that motion vectors will always be integers. If not +        set, specifies that motion vectors can contain fractional bits. +    * - ``V4L2_AV1_FRAME_FLAG_ALLOW_INTRABC`` +      - 0x00000040 +      - If set, indicates that intra block copy may be used in this frame. If +        not set, indicates that intra block copy is not allowed in this frame. +    * - ``V4L2_AV1_FRAME_FLAG_USE_SUPERRES`` +      - 0x00000080 +      - If set, indicates that upscaling is needed. +    * - ``V4L2_AV1_FRAME_FLAG_ALLOW_HIGH_PRECISION_MV`` +      - 0x00000100 +      - If set, specifies that motion vectors are specified to eighth pel +        precision. If not set, specifies that motion vectors are specified to +        quarter pel precision; +    * - ``V4L2_AV1_FRAME_FLAG_IS_MOTION_MODE_SWITCHABLE`` +      - 0x00000200 +      - If not set, specifies that only the SIMPLE motion mode will be used. +    * - ``V4L2_AV1_FRAME_FLAG_USE_REF_FRAME_MVS`` +      - 0x00000400 +      - If set specifies that motion vector information from a previous frame +        can be used when decoding the current frame. If not set, specifies that +        this information will not be used. +    * - ``V4L2_AV1_FRAME_FLAG_DISABLE_FRAME_END_UPDATE_CDF`` +      - 0x00000800 +      - If set indicates that the end of frame CDF update is disabled. If not +        set, indicates that the end of frame CDF update is enabled +    * - ``V4L2_AV1_FRAME_FLAG_ALLOW_WARPED_MOTION`` +      - 0x00001000 +      - If set, indicates that the syntax element motion_mode may be present, if +        not set, indicates that the syntax element motion_mode will not be +        present. +    * - ``V4L2_AV1_FRAME_FLAG_REFERENCE_SELECT`` +      - 0x00002000 +      - If set, specifies that the mode info for inter blocks contains the +        syntax element comp_mode that indicates whether to use single or +        compound reference prediction. If not set, specifies that all inter +        blocks will use single prediction. +    * - ``V4L2_AV1_FRAME_FLAG_REDUCED_TX_SET`` +      - 0x00004000 +      - If set, specifies that the frame is restricted to a reduced subset of +        the full set of transform types. +    * - ``V4L2_AV1_FRAME_FLAG_SKIP_MODE_ALLOWED`` +      - 0x00008000 +      - This flag retains the same meaning as SkipModeAllowed in :ref:`av1`. +    * - ``V4L2_AV1_FRAME_FLAG_SKIP_MODE_PRESENT`` +      - 0x00010000 +      - If set, specifies that the syntax element skip_mode will be present, if +        not set, specifies that skip_mode will not be used for this frame. +    * - ``V4L2_AV1_FRAME_FLAG_FRAME_SIZE_OVERRIDE`` +      - 0x00020000 +      - If set, specifies that the frame size will either be specified as the +        size of one of the reference frames, or computed from the +        frame_width_minus_1 and frame_height_minus_1 syntax elements. If not +        set, specifies that the frame size is equal to the size in the sequence +        header. +    * - ``V4L2_AV1_FRAME_FLAG_BUFFER_REMOVAL_TIME_PRESENT`` +      - 0x00040000 +      - If set, specifies that buffer_removal_time is present. If not set, +        specifies that buffer_removal_time is not present. +    * - ``V4L2_AV1_FRAME_FLAG_FRAME_REFS_SHORT_SIGNALING`` +      - 0x00080000 +      - If set, indicates that only two reference frames are explicitly +        signaled. If not set, indicates that all reference frames are explicitly +        signaled. + +``V4L2_CID_STATELESS_AV1_FILM_GRAIN (struct)`` +    Represents the optional film grain parameters. See section +    6.8.20 "Film grain params semantics" of :ref:`av1` for more details. + +.. c:type:: v4l2_ctrl_av1_film_grain + +.. cssclass:: longtable + +.. tabularcolumns:: |p{1.5cm}|p{5.8cm}|p{10.0cm}| + +.. flat-table:: struct v4l2_ctrl_av1_film_grain +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - __u8 +      - ``flags`` +      - See :ref:`AV1 Film Grain Flags <av1_film_grain_flags>`. +    * - __u8 +      - ``cr_mult`` +      - Represents a multiplier for the cr component used in derivation of the +        input index to the cr component scaling function. +    * - __u16 +      - ``grain_seed`` +      - Specifies the starting value for the pseudo-random numbers used during +        film grain synthesis. +    * - __u8 +      - ``film_grain_params_ref_idx`` +      - Indicates which reference frame contains the film grain parameters to be +	used for this frame. +    * - __u8 +      - ``num_y_points`` +      - Specifies the number of points for the piece-wise linear scaling +        function of the luma component. +    * - __u8 +      - ``point_y_value[V4L2_AV1_MAX_NUM_Y_POINTS]`` +      - Represents the x (luma value) coordinate for the i-th point +        of the piecewise linear scaling function for luma component. The values +        are signaled on the scale of 0..255. In case of 10 bit video, these +        values correspond to luma values divided by 4. In case of 12 bit video, +        these values correspond to luma values divided by 16. +    * - __u8 +      - ``point_y_scaling[V4L2_AV1_MAX_NUM_Y_POINTS]`` +      - Represents the scaling (output) value for the i-th point +        of the piecewise linear scaling function for luma component. +    * - __u8 +      - ``num_cb_points`` +      -  Specifies the number of points for the piece-wise linear scaling +         function of the cb component. +    * - __u8 +      - ``point_cb_value[V4L2_AV1_MAX_NUM_CB_POINTS]`` +      - Represents the x coordinate for the i-th point of the +        piece-wise linear scaling function for cb component. The values are +        signaled on the scale of 0..255. +    * - __u8 +      - ``point_cb_scaling[V4L2_AV1_MAX_NUM_CB_POINTS]`` +      - Represents the scaling (output) value for the i-th point of the +        piecewise linear scaling function for cb component. +    * - __u8 +      - ``num_cr_points`` +      - Represents the number of points for the piece-wise +        linear scaling function of the cr component. +    * - __u8 +      - ``point_cr_value[V4L2_AV1_MAX_NUM_CR_POINTS]`` +      - Represents the x coordinate for the i-th point of the +        piece-wise linear scaling function for cr component. The values are +        signaled on the scale of 0..255. +    * - __u8 +      - ``point_cr_scaling[V4L2_AV1_MAX_NUM_CR_POINTS]`` +      - Represents the scaling (output) value for the i-th point of the +        piecewise linear scaling function for cr component. +    * - __u8 +      - ``grain_scaling_minus_8`` +      - Represents the shift - 8 applied to the values of the chroma component. +        The grain_scaling_minus_8 can take values of 0..3 and determines the +        range and quantization step of the standard deviation of film grain. +    * - __u8 +      - ``ar_coeff_lag`` +      - Specifies the number of auto-regressive coefficients for luma and +        chroma. +    * - __u8 +      - ``ar_coeffs_y_plus_128[V4L2_AV1_AR_COEFFS_SIZE]`` +      - Specifies auto-regressive coefficients used for the Y plane. +    * - __u8 +      - ``ar_coeffs_cb_plus_128[V4L2_AV1_AR_COEFFS_SIZE]`` +      - Specifies auto-regressive coefficients used for the U plane. +    * - __u8 +      - ``ar_coeffs_cr_plus_128[V4L2_AV1_AR_COEFFS_SIZE]`` +      - Specifies auto-regressive coefficients used for the V plane. +    * - __u8 +      - ``ar_coeff_shift_minus_6`` +      - Specifies the range of the auto-regressive coefficients. Values of 0, +        1, 2, and 3 correspond to the ranges for auto-regressive coefficients of +        [-2, 2), [-1, 1), [-0.5, 0.5) and [-0.25, 0.25) respectively. +    * - __u8 +      - ``grain_scale_shift`` +      - Specifies how much the Gaussian random numbers should be scaled down +        during the grain synthesis process. +    * - __u8 +      - ``cb_mult`` +      - Represents a multiplier for the cb component used in derivation of the +        input index to the cb component scaling function. +    * - __u8 +      - ``cb_luma_mult`` +      - Represents a multiplier for the average luma component used in +        derivation of the input index to the cb component scaling function.. +    * - __u8 +      - ``cr_luma_mult`` +      - Represents a multiplier for the average luma component used in +        derivation of the input index to the cr component scaling function. +    * - __u16 +      - ``cb_offset`` +      - Represents an offset used in derivation of the input index to the +        cb component scaling function. +    * - __u16 +      - ``cr_offset`` +      - Represents an offset used in derivation of the input index to the +        cr component scaling function. +    * - __u8 +      - ``reserved[4]`` +      - Applications and drivers must set this to zero. + +.. _av1_film_grain_flags: + +``AV1 Film Grain Flags`` + +.. cssclass:: longtable + +.. flat-table:: +    :header-rows:  0 +    :stub-columns: 0 +    :widths:       1 1 2 + +    * - ``V4L2_AV1_FILM_GRAIN_FLAG_APPLY_GRAIN`` +      - 0x00000001 +      - If set, specifies that film grain should be added to this frame. If not +        set, specifies that film grain should not be added. +    * - ``V4L2_AV1_FILM_GRAIN_FLAG_UPDATE_GRAIN`` +      - 0x00000002 +      - If set, means that a new set of parameters should be sent. If not set, +        specifies that the previous set of parameters should be used. +    * - ``V4L2_AV1_FILM_GRAIN_FLAG_CHROMA_SCALING_FROM_LUMA`` +      - 0x00000004 +      - If set, specifies that the chroma scaling is inferred from the luma +        scaling. +    * - ``V4L2_AV1_FILM_GRAIN_FLAG_OVERLAP`` +      - 0x00000008 +      - If set, indicates that the overlap between film grain blocks shall be +        applied. If not set, indicates that the overlap between film grain blocks +        shall not be applied. +    * - ``V4L2_AV1_FILM_GRAIN_FLAG_CLIP_TO_RESTRICTED_RANGE`` +      - 0x00000010 +      - If set, indicates that clipping to the restricted (studio, i.e. limited) +        range shall be applied to the sample values after adding the film grain +        (see the semantics for color_range for an explanation of studio swing). +        If not set, indicates that clipping to the full range shall be applied +        to the sample values after adding the film grain.  | 
