~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/userspace-api/media/v4l/ext-ctrls-codec-stateless.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/userspace-api/media/v4l/ext-ctrls-codec-stateless.rst (Architecture mips) and /Documentation/userspace-api/media/v4l/ext-ctrls-codec-stateless.rst (Architecture sparc)


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

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php