xref: /OK3568_Linux_fs/kernel/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun.. _mpeg-controls:
4*4882a593Smuzhiyun
5*4882a593Smuzhiyun***********************
6*4882a593SmuzhiyunCodec Control Reference
7*4882a593Smuzhiyun***********************
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunBelow all controls within the Codec control class are described. First
10*4882a593Smuzhiyunthe generic controls, then controls specific for certain hardware.
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun.. note::
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun   These controls are applicable to all codecs and not just MPEG. The
15*4882a593Smuzhiyun   defines are prefixed with V4L2_CID_MPEG/V4L2_MPEG as the controls
16*4882a593Smuzhiyun   were originally made for MPEG codecs and later extended to cover all
17*4882a593Smuzhiyun   encoding formats.
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunGeneric Codec Controls
21*4882a593Smuzhiyun======================
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun.. _mpeg-control-id:
25*4882a593Smuzhiyun
26*4882a593SmuzhiyunCodec Control IDs
27*4882a593Smuzhiyun-----------------
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun``V4L2_CID_MPEG_CLASS (class)``
30*4882a593Smuzhiyun    The Codec class descriptor. Calling
31*4882a593Smuzhiyun    :ref:`VIDIOC_QUERYCTRL` for this control will
32*4882a593Smuzhiyun    return a description of this control class. This description can be
33*4882a593Smuzhiyun    used as the caption of a Tab page in a GUI, for example.
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun.. _v4l2-mpeg-stream-type:
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun``V4L2_CID_MPEG_STREAM_TYPE``
38*4882a593Smuzhiyun    (enum)
39*4882a593Smuzhiyun
40*4882a593Smuzhiyunenum v4l2_mpeg_stream_type -
41*4882a593Smuzhiyun    The MPEG-1, -2 or -4 output stream type. One cannot assume anything
42*4882a593Smuzhiyun    here. Each hardware MPEG encoder tends to support different subsets
43*4882a593Smuzhiyun    of the available MPEG stream types. This control is specific to
44*4882a593Smuzhiyun    multiplexed MPEG streams. The currently defined stream types are:
45*4882a593Smuzhiyun
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun.. flat-table::
49*4882a593Smuzhiyun    :header-rows:  0
50*4882a593Smuzhiyun    :stub-columns: 0
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun    * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_PS``
53*4882a593Smuzhiyun      - MPEG-2 program stream
54*4882a593Smuzhiyun    * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_TS``
55*4882a593Smuzhiyun      - MPEG-2 transport stream
56*4882a593Smuzhiyun    * - ``V4L2_MPEG_STREAM_TYPE_MPEG1_SS``
57*4882a593Smuzhiyun      - MPEG-1 system stream
58*4882a593Smuzhiyun    * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_DVD``
59*4882a593Smuzhiyun      - MPEG-2 DVD-compatible stream
60*4882a593Smuzhiyun    * - ``V4L2_MPEG_STREAM_TYPE_MPEG1_VCD``
61*4882a593Smuzhiyun      - MPEG-1 VCD-compatible stream
62*4882a593Smuzhiyun    * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD``
63*4882a593Smuzhiyun      - MPEG-2 SVCD-compatible stream
64*4882a593Smuzhiyun
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun``V4L2_CID_MPEG_STREAM_PID_PMT (integer)``
68*4882a593Smuzhiyun    Program Map Table Packet ID for the MPEG transport stream (default
69*4882a593Smuzhiyun    16)
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun``V4L2_CID_MPEG_STREAM_PID_AUDIO (integer)``
72*4882a593Smuzhiyun    Audio Packet ID for the MPEG transport stream (default 256)
73*4882a593Smuzhiyun
74*4882a593Smuzhiyun``V4L2_CID_MPEG_STREAM_PID_VIDEO (integer)``
75*4882a593Smuzhiyun    Video Packet ID for the MPEG transport stream (default 260)
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun``V4L2_CID_MPEG_STREAM_PID_PCR (integer)``
78*4882a593Smuzhiyun    Packet ID for the MPEG transport stream carrying PCR fields (default
79*4882a593Smuzhiyun    259)
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun``V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (integer)``
82*4882a593Smuzhiyun    Audio ID for MPEG PES
83*4882a593Smuzhiyun
84*4882a593Smuzhiyun``V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (integer)``
85*4882a593Smuzhiyun    Video ID for MPEG PES
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun.. _v4l2-mpeg-stream-vbi-fmt:
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun``V4L2_CID_MPEG_STREAM_VBI_FMT``
90*4882a593Smuzhiyun    (enum)
91*4882a593Smuzhiyun
92*4882a593Smuzhiyunenum v4l2_mpeg_stream_vbi_fmt -
93*4882a593Smuzhiyun    Some cards can embed VBI data (e. g. Closed Caption, Teletext) into
94*4882a593Smuzhiyun    the MPEG stream. This control selects whether VBI data should be
95*4882a593Smuzhiyun    embedded, and if so, what embedding method should be used. The list
96*4882a593Smuzhiyun    of possible VBI formats depends on the driver. The currently defined
97*4882a593Smuzhiyun    VBI format types are:
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun
100*4882a593Smuzhiyun
101*4882a593Smuzhiyun.. tabularcolumns:: |p{6.6 cm}|p{10.9cm}|
102*4882a593Smuzhiyun
103*4882a593Smuzhiyun.. flat-table::
104*4882a593Smuzhiyun    :header-rows:  0
105*4882a593Smuzhiyun    :stub-columns: 0
106*4882a593Smuzhiyun
107*4882a593Smuzhiyun    * - ``V4L2_MPEG_STREAM_VBI_FMT_NONE``
108*4882a593Smuzhiyun      - No VBI in the MPEG stream
109*4882a593Smuzhiyun    * - ``V4L2_MPEG_STREAM_VBI_FMT_IVTV``
110*4882a593Smuzhiyun      - VBI in private packets, IVTV format (documented in the kernel
111*4882a593Smuzhiyun	sources in the file
112*4882a593Smuzhiyun	``Documentation/userspace-api/media/drivers/cx2341x-uapi.rst``)
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun
115*4882a593Smuzhiyun
116*4882a593Smuzhiyun.. _v4l2-mpeg-audio-sampling-freq:
117*4882a593Smuzhiyun
118*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ``
119*4882a593Smuzhiyun    (enum)
120*4882a593Smuzhiyun
121*4882a593Smuzhiyunenum v4l2_mpeg_audio_sampling_freq -
122*4882a593Smuzhiyun    MPEG Audio sampling frequency. Possible values are:
123*4882a593Smuzhiyun
124*4882a593Smuzhiyun
125*4882a593Smuzhiyun
126*4882a593Smuzhiyun.. flat-table::
127*4882a593Smuzhiyun    :header-rows:  0
128*4882a593Smuzhiyun    :stub-columns: 0
129*4882a593Smuzhiyun
130*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100``
131*4882a593Smuzhiyun      - 44.1 kHz
132*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000``
133*4882a593Smuzhiyun      - 48 kHz
134*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000``
135*4882a593Smuzhiyun      - 32 kHz
136*4882a593Smuzhiyun
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun
139*4882a593Smuzhiyun.. _v4l2-mpeg-audio-encoding:
140*4882a593Smuzhiyun
141*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_ENCODING``
142*4882a593Smuzhiyun    (enum)
143*4882a593Smuzhiyun
144*4882a593Smuzhiyunenum v4l2_mpeg_audio_encoding -
145*4882a593Smuzhiyun    MPEG Audio encoding. This control is specific to multiplexed MPEG
146*4882a593Smuzhiyun    streams. Possible values are:
147*4882a593Smuzhiyun
148*4882a593Smuzhiyun
149*4882a593Smuzhiyun
150*4882a593Smuzhiyun.. flat-table::
151*4882a593Smuzhiyun    :header-rows:  0
152*4882a593Smuzhiyun    :stub-columns: 0
153*4882a593Smuzhiyun
154*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_1``
155*4882a593Smuzhiyun      - MPEG-1/2 Layer I encoding
156*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_2``
157*4882a593Smuzhiyun      - MPEG-1/2 Layer II encoding
158*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_3``
159*4882a593Smuzhiyun      - MPEG-1/2 Layer III encoding
160*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_ENCODING_AAC``
161*4882a593Smuzhiyun      - MPEG-2/4 AAC (Advanced Audio Coding)
162*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_ENCODING_AC3``
163*4882a593Smuzhiyun      - AC-3 aka ATSC A/52 encoding
164*4882a593Smuzhiyun
165*4882a593Smuzhiyun
166*4882a593Smuzhiyun
167*4882a593Smuzhiyun.. _v4l2-mpeg-audio-l1-bitrate:
168*4882a593Smuzhiyun
169*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_L1_BITRATE``
170*4882a593Smuzhiyun    (enum)
171*4882a593Smuzhiyun
172*4882a593Smuzhiyunenum v4l2_mpeg_audio_l1_bitrate -
173*4882a593Smuzhiyun    MPEG-1/2 Layer I bitrate. Possible values are:
174*4882a593Smuzhiyun
175*4882a593Smuzhiyun
176*4882a593Smuzhiyun
177*4882a593Smuzhiyun.. flat-table::
178*4882a593Smuzhiyun    :header-rows:  0
179*4882a593Smuzhiyun    :stub-columns: 0
180*4882a593Smuzhiyun
181*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L1_BITRATE_32K``
182*4882a593Smuzhiyun      - 32 kbit/s
183*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L1_BITRATE_64K``
184*4882a593Smuzhiyun      - 64 kbit/s
185*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L1_BITRATE_96K``
186*4882a593Smuzhiyun      - 96 kbit/s
187*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L1_BITRATE_128K``
188*4882a593Smuzhiyun      - 128 kbit/s
189*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L1_BITRATE_160K``
190*4882a593Smuzhiyun      - 160 kbit/s
191*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L1_BITRATE_192K``
192*4882a593Smuzhiyun      - 192 kbit/s
193*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L1_BITRATE_224K``
194*4882a593Smuzhiyun      - 224 kbit/s
195*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L1_BITRATE_256K``
196*4882a593Smuzhiyun      - 256 kbit/s
197*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L1_BITRATE_288K``
198*4882a593Smuzhiyun      - 288 kbit/s
199*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L1_BITRATE_320K``
200*4882a593Smuzhiyun      - 320 kbit/s
201*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L1_BITRATE_352K``
202*4882a593Smuzhiyun      - 352 kbit/s
203*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L1_BITRATE_384K``
204*4882a593Smuzhiyun      - 384 kbit/s
205*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L1_BITRATE_416K``
206*4882a593Smuzhiyun      - 416 kbit/s
207*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L1_BITRATE_448K``
208*4882a593Smuzhiyun      - 448 kbit/s
209*4882a593Smuzhiyun
210*4882a593Smuzhiyun
211*4882a593Smuzhiyun
212*4882a593Smuzhiyun.. _v4l2-mpeg-audio-l2-bitrate:
213*4882a593Smuzhiyun
214*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_L2_BITRATE``
215*4882a593Smuzhiyun    (enum)
216*4882a593Smuzhiyun
217*4882a593Smuzhiyunenum v4l2_mpeg_audio_l2_bitrate -
218*4882a593Smuzhiyun    MPEG-1/2 Layer II bitrate. Possible values are:
219*4882a593Smuzhiyun
220*4882a593Smuzhiyun
221*4882a593Smuzhiyun
222*4882a593Smuzhiyun.. flat-table::
223*4882a593Smuzhiyun    :header-rows:  0
224*4882a593Smuzhiyun    :stub-columns: 0
225*4882a593Smuzhiyun
226*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L2_BITRATE_32K``
227*4882a593Smuzhiyun      - 32 kbit/s
228*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L2_BITRATE_48K``
229*4882a593Smuzhiyun      - 48 kbit/s
230*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L2_BITRATE_56K``
231*4882a593Smuzhiyun      - 56 kbit/s
232*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L2_BITRATE_64K``
233*4882a593Smuzhiyun      - 64 kbit/s
234*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L2_BITRATE_80K``
235*4882a593Smuzhiyun      - 80 kbit/s
236*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L2_BITRATE_96K``
237*4882a593Smuzhiyun      - 96 kbit/s
238*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L2_BITRATE_112K``
239*4882a593Smuzhiyun      - 112 kbit/s
240*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L2_BITRATE_128K``
241*4882a593Smuzhiyun      - 128 kbit/s
242*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L2_BITRATE_160K``
243*4882a593Smuzhiyun      - 160 kbit/s
244*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L2_BITRATE_192K``
245*4882a593Smuzhiyun      - 192 kbit/s
246*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L2_BITRATE_224K``
247*4882a593Smuzhiyun      - 224 kbit/s
248*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L2_BITRATE_256K``
249*4882a593Smuzhiyun      - 256 kbit/s
250*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L2_BITRATE_320K``
251*4882a593Smuzhiyun      - 320 kbit/s
252*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L2_BITRATE_384K``
253*4882a593Smuzhiyun      - 384 kbit/s
254*4882a593Smuzhiyun
255*4882a593Smuzhiyun
256*4882a593Smuzhiyun
257*4882a593Smuzhiyun.. _v4l2-mpeg-audio-l3-bitrate:
258*4882a593Smuzhiyun
259*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_L3_BITRATE``
260*4882a593Smuzhiyun    (enum)
261*4882a593Smuzhiyun
262*4882a593Smuzhiyunenum v4l2_mpeg_audio_l3_bitrate -
263*4882a593Smuzhiyun    MPEG-1/2 Layer III bitrate. Possible values are:
264*4882a593Smuzhiyun
265*4882a593Smuzhiyun
266*4882a593Smuzhiyun
267*4882a593Smuzhiyun.. flat-table::
268*4882a593Smuzhiyun    :header-rows:  0
269*4882a593Smuzhiyun    :stub-columns: 0
270*4882a593Smuzhiyun
271*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L3_BITRATE_32K``
272*4882a593Smuzhiyun      - 32 kbit/s
273*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L3_BITRATE_40K``
274*4882a593Smuzhiyun      - 40 kbit/s
275*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L3_BITRATE_48K``
276*4882a593Smuzhiyun      - 48 kbit/s
277*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L3_BITRATE_56K``
278*4882a593Smuzhiyun      - 56 kbit/s
279*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L3_BITRATE_64K``
280*4882a593Smuzhiyun      - 64 kbit/s
281*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L3_BITRATE_80K``
282*4882a593Smuzhiyun      - 80 kbit/s
283*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L3_BITRATE_96K``
284*4882a593Smuzhiyun      - 96 kbit/s
285*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L3_BITRATE_112K``
286*4882a593Smuzhiyun      - 112 kbit/s
287*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L3_BITRATE_128K``
288*4882a593Smuzhiyun      - 128 kbit/s
289*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L3_BITRATE_160K``
290*4882a593Smuzhiyun      - 160 kbit/s
291*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L3_BITRATE_192K``
292*4882a593Smuzhiyun      - 192 kbit/s
293*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L3_BITRATE_224K``
294*4882a593Smuzhiyun      - 224 kbit/s
295*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L3_BITRATE_256K``
296*4882a593Smuzhiyun      - 256 kbit/s
297*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_L3_BITRATE_320K``
298*4882a593Smuzhiyun      - 320 kbit/s
299*4882a593Smuzhiyun
300*4882a593Smuzhiyun
301*4882a593Smuzhiyun
302*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_AAC_BITRATE (integer)``
303*4882a593Smuzhiyun    AAC bitrate in bits per second.
304*4882a593Smuzhiyun
305*4882a593Smuzhiyun.. _v4l2-mpeg-audio-ac3-bitrate:
306*4882a593Smuzhiyun
307*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_AC3_BITRATE``
308*4882a593Smuzhiyun    (enum)
309*4882a593Smuzhiyun
310*4882a593Smuzhiyunenum v4l2_mpeg_audio_ac3_bitrate -
311*4882a593Smuzhiyun    AC-3 bitrate. Possible values are:
312*4882a593Smuzhiyun
313*4882a593Smuzhiyun
314*4882a593Smuzhiyun
315*4882a593Smuzhiyun.. flat-table::
316*4882a593Smuzhiyun    :header-rows:  0
317*4882a593Smuzhiyun    :stub-columns: 0
318*4882a593Smuzhiyun
319*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_32K``
320*4882a593Smuzhiyun      - 32 kbit/s
321*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_40K``
322*4882a593Smuzhiyun      - 40 kbit/s
323*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_48K``
324*4882a593Smuzhiyun      - 48 kbit/s
325*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_56K``
326*4882a593Smuzhiyun      - 56 kbit/s
327*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_64K``
328*4882a593Smuzhiyun      - 64 kbit/s
329*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_80K``
330*4882a593Smuzhiyun      - 80 kbit/s
331*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_96K``
332*4882a593Smuzhiyun      - 96 kbit/s
333*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_112K``
334*4882a593Smuzhiyun      - 112 kbit/s
335*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_128K``
336*4882a593Smuzhiyun      - 128 kbit/s
337*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_160K``
338*4882a593Smuzhiyun      - 160 kbit/s
339*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_192K``
340*4882a593Smuzhiyun      - 192 kbit/s
341*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_224K``
342*4882a593Smuzhiyun      - 224 kbit/s
343*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_256K``
344*4882a593Smuzhiyun      - 256 kbit/s
345*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_320K``
346*4882a593Smuzhiyun      - 320 kbit/s
347*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_384K``
348*4882a593Smuzhiyun      - 384 kbit/s
349*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_448K``
350*4882a593Smuzhiyun      - 448 kbit/s
351*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_512K``
352*4882a593Smuzhiyun      - 512 kbit/s
353*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_576K``
354*4882a593Smuzhiyun      - 576 kbit/s
355*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_640K``
356*4882a593Smuzhiyun      - 640 kbit/s
357*4882a593Smuzhiyun
358*4882a593Smuzhiyun
359*4882a593Smuzhiyun
360*4882a593Smuzhiyun.. _v4l2-mpeg-audio-mode:
361*4882a593Smuzhiyun
362*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_MODE``
363*4882a593Smuzhiyun    (enum)
364*4882a593Smuzhiyun
365*4882a593Smuzhiyunenum v4l2_mpeg_audio_mode -
366*4882a593Smuzhiyun    MPEG Audio mode. Possible values are:
367*4882a593Smuzhiyun
368*4882a593Smuzhiyun
369*4882a593Smuzhiyun
370*4882a593Smuzhiyun.. flat-table::
371*4882a593Smuzhiyun    :header-rows:  0
372*4882a593Smuzhiyun    :stub-columns: 0
373*4882a593Smuzhiyun
374*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_MODE_STEREO``
375*4882a593Smuzhiyun      - Stereo
376*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_MODE_JOINT_STEREO``
377*4882a593Smuzhiyun      - Joint Stereo
378*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_MODE_DUAL``
379*4882a593Smuzhiyun      - Bilingual
380*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_MODE_MONO``
381*4882a593Smuzhiyun      - Mono
382*4882a593Smuzhiyun
383*4882a593Smuzhiyun
384*4882a593Smuzhiyun
385*4882a593Smuzhiyun.. _v4l2-mpeg-audio-mode-extension:
386*4882a593Smuzhiyun
387*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_MODE_EXTENSION``
388*4882a593Smuzhiyun    (enum)
389*4882a593Smuzhiyun
390*4882a593Smuzhiyunenum v4l2_mpeg_audio_mode_extension -
391*4882a593Smuzhiyun    Joint Stereo audio mode extension. In Layer I and II they indicate
392*4882a593Smuzhiyun    which subbands are in intensity stereo. All other subbands are coded
393*4882a593Smuzhiyun    in stereo. Layer III is not (yet) supported. Possible values are:
394*4882a593Smuzhiyun
395*4882a593Smuzhiyun
396*4882a593Smuzhiyun
397*4882a593Smuzhiyun.. flat-table::
398*4882a593Smuzhiyun    :header-rows:  0
399*4882a593Smuzhiyun    :stub-columns: 0
400*4882a593Smuzhiyun
401*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4``
402*4882a593Smuzhiyun      - Subbands 4-31 in intensity stereo
403*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8``
404*4882a593Smuzhiyun      - Subbands 8-31 in intensity stereo
405*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12``
406*4882a593Smuzhiyun      - Subbands 12-31 in intensity stereo
407*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16``
408*4882a593Smuzhiyun      - Subbands 16-31 in intensity stereo
409*4882a593Smuzhiyun
410*4882a593Smuzhiyun
411*4882a593Smuzhiyun
412*4882a593Smuzhiyun.. _v4l2-mpeg-audio-emphasis:
413*4882a593Smuzhiyun
414*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_EMPHASIS``
415*4882a593Smuzhiyun    (enum)
416*4882a593Smuzhiyun
417*4882a593Smuzhiyunenum v4l2_mpeg_audio_emphasis -
418*4882a593Smuzhiyun    Audio Emphasis. Possible values are:
419*4882a593Smuzhiyun
420*4882a593Smuzhiyun
421*4882a593Smuzhiyun
422*4882a593Smuzhiyun.. flat-table::
423*4882a593Smuzhiyun    :header-rows:  0
424*4882a593Smuzhiyun    :stub-columns: 0
425*4882a593Smuzhiyun
426*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_EMPHASIS_NONE``
427*4882a593Smuzhiyun      - None
428*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS``
429*4882a593Smuzhiyun      - 50/15 microsecond emphasis
430*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17``
431*4882a593Smuzhiyun      - CCITT J.17
432*4882a593Smuzhiyun
433*4882a593Smuzhiyun
434*4882a593Smuzhiyun
435*4882a593Smuzhiyun.. _v4l2-mpeg-audio-crc:
436*4882a593Smuzhiyun
437*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_CRC``
438*4882a593Smuzhiyun    (enum)
439*4882a593Smuzhiyun
440*4882a593Smuzhiyunenum v4l2_mpeg_audio_crc -
441*4882a593Smuzhiyun    CRC method. Possible values are:
442*4882a593Smuzhiyun
443*4882a593Smuzhiyun
444*4882a593Smuzhiyun
445*4882a593Smuzhiyun.. flat-table::
446*4882a593Smuzhiyun    :header-rows:  0
447*4882a593Smuzhiyun    :stub-columns: 0
448*4882a593Smuzhiyun
449*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_CRC_NONE``
450*4882a593Smuzhiyun      - None
451*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_CRC_CRC16``
452*4882a593Smuzhiyun      - 16 bit parity check
453*4882a593Smuzhiyun
454*4882a593Smuzhiyun
455*4882a593Smuzhiyun
456*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_MUTE (boolean)``
457*4882a593Smuzhiyun    Mutes the audio when capturing. This is not done by muting audio
458*4882a593Smuzhiyun    hardware, which can still produce a slight hiss, but in the encoder
459*4882a593Smuzhiyun    itself, guaranteeing a fixed and reproducible audio bitstream. 0 =
460*4882a593Smuzhiyun    unmuted, 1 = muted.
461*4882a593Smuzhiyun
462*4882a593Smuzhiyun.. _v4l2-mpeg-audio-dec-playback:
463*4882a593Smuzhiyun
464*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK``
465*4882a593Smuzhiyun    (enum)
466*4882a593Smuzhiyun
467*4882a593Smuzhiyunenum v4l2_mpeg_audio_dec_playback -
468*4882a593Smuzhiyun    Determines how monolingual audio should be played back. Possible
469*4882a593Smuzhiyun    values are:
470*4882a593Smuzhiyun
471*4882a593Smuzhiyun
472*4882a593Smuzhiyun
473*4882a593Smuzhiyun.. tabularcolumns:: |p{9.8cm}|p{7.7cm}|
474*4882a593Smuzhiyun
475*4882a593Smuzhiyun.. flat-table::
476*4882a593Smuzhiyun    :header-rows:  0
477*4882a593Smuzhiyun    :stub-columns: 0
478*4882a593Smuzhiyun
479*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_AUTO``
480*4882a593Smuzhiyun      - Automatically determines the best playback mode.
481*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_STEREO``
482*4882a593Smuzhiyun      - Stereo playback.
483*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_LEFT``
484*4882a593Smuzhiyun      - Left channel playback.
485*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_RIGHT``
486*4882a593Smuzhiyun      - Right channel playback.
487*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_MONO``
488*4882a593Smuzhiyun      - Mono playback.
489*4882a593Smuzhiyun    * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_SWAPPED_STEREO``
490*4882a593Smuzhiyun      - Stereo playback with swapped left and right channels.
491*4882a593Smuzhiyun
492*4882a593Smuzhiyun
493*4882a593Smuzhiyun
494*4882a593Smuzhiyun.. _v4l2-mpeg-audio-dec-multilingual-playback:
495*4882a593Smuzhiyun
496*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK``
497*4882a593Smuzhiyun    (enum)
498*4882a593Smuzhiyun
499*4882a593Smuzhiyunenum v4l2_mpeg_audio_dec_playback -
500*4882a593Smuzhiyun    Determines how multilingual audio should be played back.
501*4882a593Smuzhiyun
502*4882a593Smuzhiyun.. _v4l2-mpeg-video-encoding:
503*4882a593Smuzhiyun
504*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_ENCODING``
505*4882a593Smuzhiyun    (enum)
506*4882a593Smuzhiyun
507*4882a593Smuzhiyunenum v4l2_mpeg_video_encoding -
508*4882a593Smuzhiyun    MPEG Video encoding method. This control is specific to multiplexed
509*4882a593Smuzhiyun    MPEG streams. Possible values are:
510*4882a593Smuzhiyun
511*4882a593Smuzhiyun
512*4882a593Smuzhiyun
513*4882a593Smuzhiyun.. flat-table::
514*4882a593Smuzhiyun    :header-rows:  0
515*4882a593Smuzhiyun    :stub-columns: 0
516*4882a593Smuzhiyun
517*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_1``
518*4882a593Smuzhiyun      - MPEG-1 Video encoding
519*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_2``
520*4882a593Smuzhiyun      - MPEG-2 Video encoding
521*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC``
522*4882a593Smuzhiyun      - MPEG-4 AVC (H.264) Video encoding
523*4882a593Smuzhiyun
524*4882a593Smuzhiyun
525*4882a593Smuzhiyun
526*4882a593Smuzhiyun.. _v4l2-mpeg-video-aspect:
527*4882a593Smuzhiyun
528*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_ASPECT``
529*4882a593Smuzhiyun    (enum)
530*4882a593Smuzhiyun
531*4882a593Smuzhiyunenum v4l2_mpeg_video_aspect -
532*4882a593Smuzhiyun    Video aspect. Possible values are:
533*4882a593Smuzhiyun
534*4882a593Smuzhiyun
535*4882a593Smuzhiyun
536*4882a593Smuzhiyun.. flat-table::
537*4882a593Smuzhiyun    :header-rows:  0
538*4882a593Smuzhiyun    :stub-columns: 0
539*4882a593Smuzhiyun
540*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_ASPECT_1x1``
541*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_ASPECT_4x3``
542*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_ASPECT_16x9``
543*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_ASPECT_221x100``
544*4882a593Smuzhiyun
545*4882a593Smuzhiyun
546*4882a593Smuzhiyun
547*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_B_FRAMES (integer)``
548*4882a593Smuzhiyun    Number of B-Frames (default 2)
549*4882a593Smuzhiyun
550*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_GOP_SIZE (integer)``
551*4882a593Smuzhiyun    GOP size (default 12)
552*4882a593Smuzhiyun
553*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (boolean)``
554*4882a593Smuzhiyun    GOP closure (default 1)
555*4882a593Smuzhiyun
556*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_PULLDOWN (boolean)``
557*4882a593Smuzhiyun    Enable 3:2 pulldown (default 0)
558*4882a593Smuzhiyun
559*4882a593Smuzhiyun.. _v4l2-mpeg-video-bitrate-mode:
560*4882a593Smuzhiyun
561*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_BITRATE_MODE``
562*4882a593Smuzhiyun    (enum)
563*4882a593Smuzhiyun
564*4882a593Smuzhiyunenum v4l2_mpeg_video_bitrate_mode -
565*4882a593Smuzhiyun    Video bitrate mode. Possible values are:
566*4882a593Smuzhiyun
567*4882a593Smuzhiyun
568*4882a593Smuzhiyun
569*4882a593Smuzhiyun.. flat-table::
570*4882a593Smuzhiyun    :header-rows:  0
571*4882a593Smuzhiyun    :stub-columns: 0
572*4882a593Smuzhiyun
573*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_BITRATE_MODE_VBR``
574*4882a593Smuzhiyun      - Variable bitrate
575*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_BITRATE_MODE_CBR``
576*4882a593Smuzhiyun      - Constant bitrate
577*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_BITRATE_MODE_CQ``
578*4882a593Smuzhiyun      - Constant quality
579*4882a593Smuzhiyun
580*4882a593Smuzhiyun
581*4882a593Smuzhiyun
582*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_BITRATE (integer)``
583*4882a593Smuzhiyun    Video bitrate in bits per second.
584*4882a593Smuzhiyun
585*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (integer)``
586*4882a593Smuzhiyun    Peak video bitrate in bits per second. Must be larger or equal to
587*4882a593Smuzhiyun    the average video bitrate. It is ignored if the video bitrate mode
588*4882a593Smuzhiyun    is set to constant bitrate.
589*4882a593Smuzhiyun
590*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY (integer)``
591*4882a593Smuzhiyun    Constant quality level control. This control is applicable when
592*4882a593Smuzhiyun    ``V4L2_CID_MPEG_VIDEO_BITRATE_MODE`` value is
593*4882a593Smuzhiyun    ``V4L2_MPEG_VIDEO_BITRATE_MODE_CQ``. Valid range is 1 to 100
594*4882a593Smuzhiyun    where 1 indicates lowest quality and 100 indicates highest quality.
595*4882a593Smuzhiyun    Encoder will decide the appropriate quantization parameter and
596*4882a593Smuzhiyun    bitrate to produce requested frame quality.
597*4882a593Smuzhiyun
598*4882a593Smuzhiyun
599*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE (enum)``
600*4882a593Smuzhiyun
601*4882a593Smuzhiyunenum v4l2_mpeg_video_frame_skip_mode -
602*4882a593Smuzhiyun    Indicates in what conditions the encoder should skip frames. If
603*4882a593Smuzhiyun    encoding a frame would cause the encoded stream to be larger then a
604*4882a593Smuzhiyun    chosen data limit then the frame will be skipped. Possible values
605*4882a593Smuzhiyun    are:
606*4882a593Smuzhiyun
607*4882a593Smuzhiyun
608*4882a593Smuzhiyun.. tabularcolumns:: |p{9.2cm}|p{8.3cm}|
609*4882a593Smuzhiyun
610*4882a593Smuzhiyun.. raw:: latex
611*4882a593Smuzhiyun
612*4882a593Smuzhiyun    \small
613*4882a593Smuzhiyun
614*4882a593Smuzhiyun.. flat-table::
615*4882a593Smuzhiyun    :header-rows:  0
616*4882a593Smuzhiyun    :stub-columns: 0
617*4882a593Smuzhiyun
618*4882a593Smuzhiyun    * - ``V4L2_MPEG_FRAME_SKIP_MODE_DISABLED``
619*4882a593Smuzhiyun      - Frame skip mode is disabled.
620*4882a593Smuzhiyun    * - ``V4L2_MPEG_FRAME_SKIP_MODE_LEVEL_LIMIT``
621*4882a593Smuzhiyun      - Frame skip mode enabled and buffer limit is set by the chosen
622*4882a593Smuzhiyun        level and is defined by the standard.
623*4882a593Smuzhiyun    * - ``V4L2_MPEG_FRAME_SKIP_MODE_BUF_LIMIT``
624*4882a593Smuzhiyun      - Frame skip mode enabled and buffer limit is set by the
625*4882a593Smuzhiyun        :ref:`VBV (MPEG1/2/4) <v4l2-mpeg-video-vbv-size>` or
626*4882a593Smuzhiyun        :ref:`CPB (H264) buffer size <v4l2-mpeg-video-h264-cpb-size>` control.
627*4882a593Smuzhiyun
628*4882a593Smuzhiyun.. raw:: latex
629*4882a593Smuzhiyun
630*4882a593Smuzhiyun    \normalsize
631*4882a593Smuzhiyun
632*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (integer)``
633*4882a593Smuzhiyun    For every captured frame, skip this many subsequent frames (default
634*4882a593Smuzhiyun    0).
635*4882a593Smuzhiyun
636*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MUTE (boolean)``
637*4882a593Smuzhiyun    "Mutes" the video to a fixed color when capturing. This is useful
638*4882a593Smuzhiyun    for testing, to produce a fixed video bitstream. 0 = unmuted, 1 =
639*4882a593Smuzhiyun    muted.
640*4882a593Smuzhiyun
641*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MUTE_YUV (integer)``
642*4882a593Smuzhiyun    Sets the "mute" color of the video. The supplied 32-bit integer is
643*4882a593Smuzhiyun    interpreted as follows (bit 0 = least significant bit):
644*4882a593Smuzhiyun
645*4882a593Smuzhiyun
646*4882a593Smuzhiyun
647*4882a593Smuzhiyun.. flat-table::
648*4882a593Smuzhiyun    :header-rows:  0
649*4882a593Smuzhiyun    :stub-columns: 0
650*4882a593Smuzhiyun
651*4882a593Smuzhiyun    * - Bit 0:7
652*4882a593Smuzhiyun      - V chrominance information
653*4882a593Smuzhiyun    * - Bit 8:15
654*4882a593Smuzhiyun      - U chrominance information
655*4882a593Smuzhiyun    * - Bit 16:23
656*4882a593Smuzhiyun      - Y luminance information
657*4882a593Smuzhiyun    * - Bit 24:31
658*4882a593Smuzhiyun      - Must be zero.
659*4882a593Smuzhiyun
660*4882a593Smuzhiyun
661*4882a593Smuzhiyun
662*4882a593Smuzhiyun.. _v4l2-mpeg-video-dec-pts:
663*4882a593Smuzhiyun
664*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_DEC_PTS (integer64)``
665*4882a593Smuzhiyun    This read-only control returns the 33-bit video Presentation Time
666*4882a593Smuzhiyun    Stamp as defined in ITU T-REC-H.222.0 and ISO/IEC 13818-1 of the
667*4882a593Smuzhiyun    currently displayed frame. This is the same PTS as is used in
668*4882a593Smuzhiyun    :ref:`VIDIOC_DECODER_CMD`.
669*4882a593Smuzhiyun
670*4882a593Smuzhiyun.. _v4l2-mpeg-video-dec-frame:
671*4882a593Smuzhiyun
672*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_DEC_FRAME (integer64)``
673*4882a593Smuzhiyun    This read-only control returns the frame counter of the frame that
674*4882a593Smuzhiyun    is currently displayed (decoded). This value is reset to 0 whenever
675*4882a593Smuzhiyun    the decoder is started.
676*4882a593Smuzhiyun
677*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR (integer64)``
678*4882a593Smuzhiyun    This control sets the conceal color in YUV color space. It describes
679*4882a593Smuzhiyun    the client preference of the error conceal color in case of an error
680*4882a593Smuzhiyun    where the reference frame is missing. The decoder should fill the
681*4882a593Smuzhiyun    reference buffer with the preferred color and use it for future
682*4882a593Smuzhiyun    decoding. The control is using 16 bits per channel.
683*4882a593Smuzhiyun    Applicable to decoders.
684*4882a593Smuzhiyun
685*4882a593Smuzhiyun.. flat-table::
686*4882a593Smuzhiyun    :header-rows:  0
687*4882a593Smuzhiyun    :stub-columns: 0
688*4882a593Smuzhiyun
689*4882a593Smuzhiyun    * -
690*4882a593Smuzhiyun      - 8bit  format
691*4882a593Smuzhiyun      - 10bit format
692*4882a593Smuzhiyun      - 12bit format
693*4882a593Smuzhiyun    * - Y luminance
694*4882a593Smuzhiyun      - Bit 0:7
695*4882a593Smuzhiyun      - Bit 0:9
696*4882a593Smuzhiyun      - Bit 0:11
697*4882a593Smuzhiyun    * - Cb chrominance
698*4882a593Smuzhiyun      - Bit 16:23
699*4882a593Smuzhiyun      - Bit 16:25
700*4882a593Smuzhiyun      - Bit 16:27
701*4882a593Smuzhiyun    * - Cr chrominance
702*4882a593Smuzhiyun      - Bit 32:39
703*4882a593Smuzhiyun      - Bit 32:41
704*4882a593Smuzhiyun      - Bit 32:43
705*4882a593Smuzhiyun    * - Must be zero
706*4882a593Smuzhiyun      - Bit 48:63
707*4882a593Smuzhiyun      - Bit 48:63
708*4882a593Smuzhiyun      - Bit 48:63
709*4882a593Smuzhiyun
710*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (boolean)``
711*4882a593Smuzhiyun    If enabled the decoder expects to receive a single slice per buffer,
712*4882a593Smuzhiyun    otherwise the decoder expects a single frame in per buffer.
713*4882a593Smuzhiyun    Applicable to the decoder, all codecs.
714*4882a593Smuzhiyun
715*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE (boolean)``
716*4882a593Smuzhiyun    If the display delay is enabled then the decoder is forced to return
717*4882a593Smuzhiyun    a CAPTURE buffer (decoded frame) after processing a certain number
718*4882a593Smuzhiyun    of OUTPUT buffers. The delay can be set through
719*4882a593Smuzhiyun    ``V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY``. This
720*4882a593Smuzhiyun    feature can be used for example for generating thumbnails of videos.
721*4882a593Smuzhiyun    Applicable to the decoder.
722*4882a593Smuzhiyun
723*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY (integer)``
724*4882a593Smuzhiyun    Display delay value for decoder. The decoder is forced to
725*4882a593Smuzhiyun    return a decoded frame after the set 'display delay' number of
726*4882a593Smuzhiyun    frames. If this number is low it may result in frames returned out
727*4882a593Smuzhiyun    of display order, in addition the hardware may still be using the
728*4882a593Smuzhiyun    returned buffer as a reference picture for subsequent frames.
729*4882a593Smuzhiyun
730*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_AU_DELIMITER (boolean)``
731*4882a593Smuzhiyun    If enabled then, AUD (Access Unit Delimiter) NALUs will be generated.
732*4882a593Smuzhiyun    That could be useful to find the start of a frame without having to
733*4882a593Smuzhiyun    fully parse each NALU. Applicable to the H264 and HEVC encoders.
734*4882a593Smuzhiyun
735*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (boolean)``
736*4882a593Smuzhiyun    Enable writing sample aspect ratio in the Video Usability
737*4882a593Smuzhiyun    Information. Applicable to the H264 encoder.
738*4882a593Smuzhiyun
739*4882a593Smuzhiyun.. _v4l2-mpeg-video-h264-vui-sar-idc:
740*4882a593Smuzhiyun
741*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC``
742*4882a593Smuzhiyun    (enum)
743*4882a593Smuzhiyun
744*4882a593Smuzhiyunenum v4l2_mpeg_video_h264_vui_sar_idc -
745*4882a593Smuzhiyun    VUI sample aspect ratio indicator for H.264 encoding. The value is
746*4882a593Smuzhiyun    defined in the table E-1 in the standard. Applicable to the H264
747*4882a593Smuzhiyun    encoder.
748*4882a593Smuzhiyun
749*4882a593Smuzhiyun
750*4882a593Smuzhiyun
751*4882a593Smuzhiyun.. flat-table::
752*4882a593Smuzhiyun    :header-rows:  0
753*4882a593Smuzhiyun    :stub-columns: 0
754*4882a593Smuzhiyun
755*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED``
756*4882a593Smuzhiyun      - Unspecified
757*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1``
758*4882a593Smuzhiyun      - 1x1
759*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_12x11``
760*4882a593Smuzhiyun      - 12x11
761*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_10x11``
762*4882a593Smuzhiyun      - 10x11
763*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_16x11``
764*4882a593Smuzhiyun      - 16x11
765*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_40x33``
766*4882a593Smuzhiyun      - 40x33
767*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_24x11``
768*4882a593Smuzhiyun      - 24x11
769*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_20x11``
770*4882a593Smuzhiyun      - 20x11
771*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_32x11``
772*4882a593Smuzhiyun      - 32x11
773*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_80x33``
774*4882a593Smuzhiyun      - 80x33
775*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_18x11``
776*4882a593Smuzhiyun      - 18x11
777*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_15x11``
778*4882a593Smuzhiyun      - 15x11
779*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_64x33``
780*4882a593Smuzhiyun      - 64x33
781*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_160x99``
782*4882a593Smuzhiyun      - 160x99
783*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_4x3``
784*4882a593Smuzhiyun      - 4x3
785*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_3x2``
786*4882a593Smuzhiyun      - 3x2
787*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1``
788*4882a593Smuzhiyun      - 2x1
789*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED``
790*4882a593Smuzhiyun      - Extended SAR
791*4882a593Smuzhiyun
792*4882a593Smuzhiyun
793*4882a593Smuzhiyun
794*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (integer)``
795*4882a593Smuzhiyun    Extended sample aspect ratio width for H.264 VUI encoding.
796*4882a593Smuzhiyun    Applicable to the H264 encoder.
797*4882a593Smuzhiyun
798*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (integer)``
799*4882a593Smuzhiyun    Extended sample aspect ratio height for H.264 VUI encoding.
800*4882a593Smuzhiyun    Applicable to the H264 encoder.
801*4882a593Smuzhiyun
802*4882a593Smuzhiyun.. _v4l2-mpeg-video-h264-level:
803*4882a593Smuzhiyun
804*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_LEVEL``
805*4882a593Smuzhiyun    (enum)
806*4882a593Smuzhiyun
807*4882a593Smuzhiyunenum v4l2_mpeg_video_h264_level -
808*4882a593Smuzhiyun    The level information for the H264 video elementary stream.
809*4882a593Smuzhiyun    Applicable to the H264 encoder. Possible values are:
810*4882a593Smuzhiyun
811*4882a593Smuzhiyun
812*4882a593Smuzhiyun
813*4882a593Smuzhiyun.. flat-table::
814*4882a593Smuzhiyun    :header-rows:  0
815*4882a593Smuzhiyun    :stub-columns: 0
816*4882a593Smuzhiyun
817*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_0``
818*4882a593Smuzhiyun      - Level 1.0
819*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1B``
820*4882a593Smuzhiyun      - Level 1B
821*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_1``
822*4882a593Smuzhiyun      - Level 1.1
823*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_2``
824*4882a593Smuzhiyun      - Level 1.2
825*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_3``
826*4882a593Smuzhiyun      - Level 1.3
827*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_0``
828*4882a593Smuzhiyun      - Level 2.0
829*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_1``
830*4882a593Smuzhiyun      - Level 2.1
831*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_2``
832*4882a593Smuzhiyun      - Level 2.2
833*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_0``
834*4882a593Smuzhiyun      - Level 3.0
835*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_1``
836*4882a593Smuzhiyun      - Level 3.1
837*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_2``
838*4882a593Smuzhiyun      - Level 3.2
839*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_0``
840*4882a593Smuzhiyun      - Level 4.0
841*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_1``
842*4882a593Smuzhiyun      - Level 4.1
843*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_2``
844*4882a593Smuzhiyun      - Level 4.2
845*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_0``
846*4882a593Smuzhiyun      - Level 5.0
847*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_1``
848*4882a593Smuzhiyun      - Level 5.1
849*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_2``
850*4882a593Smuzhiyun      - Level 5.2
851*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LEVEL_6_0``
852*4882a593Smuzhiyun      - Level 6.0
853*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LEVEL_6_1``
854*4882a593Smuzhiyun      - Level 6.1
855*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LEVEL_6_2``
856*4882a593Smuzhiyun      - Level 6.2
857*4882a593Smuzhiyun
858*4882a593Smuzhiyun
859*4882a593Smuzhiyun
860*4882a593Smuzhiyun.. _v4l2-mpeg-video-mpeg2-level:
861*4882a593Smuzhiyun
862*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL``
863*4882a593Smuzhiyun    (enum)
864*4882a593Smuzhiyun
865*4882a593Smuzhiyunenum v4l2_mpeg_video_mpeg2_level -
866*4882a593Smuzhiyun    The level information for the MPEG2 elementary stream. Applicable to
867*4882a593Smuzhiyun    MPEG2 codecs. Possible values are:
868*4882a593Smuzhiyun
869*4882a593Smuzhiyun
870*4882a593Smuzhiyun
871*4882a593Smuzhiyun.. flat-table::
872*4882a593Smuzhiyun    :header-rows:  0
873*4882a593Smuzhiyun    :stub-columns: 0
874*4882a593Smuzhiyun
875*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG2_LEVEL_LOW``
876*4882a593Smuzhiyun      - Low Level (LL)
877*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG2_LEVEL_MAIN``
878*4882a593Smuzhiyun      - Main Level (ML)
879*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH_1440``
880*4882a593Smuzhiyun      - High-1440 Level (H-14)
881*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH``
882*4882a593Smuzhiyun      - High Level (HL)
883*4882a593Smuzhiyun
884*4882a593Smuzhiyun
885*4882a593Smuzhiyun
886*4882a593Smuzhiyun.. _v4l2-mpeg-video-mpeg4-level:
887*4882a593Smuzhiyun
888*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL``
889*4882a593Smuzhiyun    (enum)
890*4882a593Smuzhiyun
891*4882a593Smuzhiyunenum v4l2_mpeg_video_mpeg4_level -
892*4882a593Smuzhiyun    The level information for the MPEG4 elementary stream. Applicable to
893*4882a593Smuzhiyun    the MPEG4 encoder. Possible values are:
894*4882a593Smuzhiyun
895*4882a593Smuzhiyun
896*4882a593Smuzhiyun
897*4882a593Smuzhiyun.. flat-table::
898*4882a593Smuzhiyun    :header-rows:  0
899*4882a593Smuzhiyun    :stub-columns: 0
900*4882a593Smuzhiyun
901*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_0``
902*4882a593Smuzhiyun      - Level 0
903*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_0B``
904*4882a593Smuzhiyun      - Level 0b
905*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_1``
906*4882a593Smuzhiyun      - Level 1
907*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_2``
908*4882a593Smuzhiyun      - Level 2
909*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_3``
910*4882a593Smuzhiyun      - Level 3
911*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_3B``
912*4882a593Smuzhiyun      - Level 3b
913*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_4``
914*4882a593Smuzhiyun      - Level 4
915*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_5``
916*4882a593Smuzhiyun      - Level 5
917*4882a593Smuzhiyun
918*4882a593Smuzhiyun
919*4882a593Smuzhiyun
920*4882a593Smuzhiyun.. _v4l2-mpeg-video-h264-profile:
921*4882a593Smuzhiyun
922*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_PROFILE``
923*4882a593Smuzhiyun    (enum)
924*4882a593Smuzhiyun
925*4882a593Smuzhiyunenum v4l2_mpeg_video_h264_profile -
926*4882a593Smuzhiyun    The profile information for H264. Applicable to the H264 encoder.
927*4882a593Smuzhiyun    Possible values are:
928*4882a593Smuzhiyun
929*4882a593Smuzhiyun
930*4882a593Smuzhiyun
931*4882a593Smuzhiyun.. flat-table::
932*4882a593Smuzhiyun    :header-rows:  0
933*4882a593Smuzhiyun    :stub-columns: 0
934*4882a593Smuzhiyun
935*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE``
936*4882a593Smuzhiyun      - Baseline profile
937*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE``
938*4882a593Smuzhiyun      - Constrained Baseline profile
939*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_PROFILE_MAIN``
940*4882a593Smuzhiyun      - Main profile
941*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED``
942*4882a593Smuzhiyun      - Extended profile
943*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH``
944*4882a593Smuzhiyun      - High profile
945*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10``
946*4882a593Smuzhiyun      - High 10 profile
947*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422``
948*4882a593Smuzhiyun      - High 422 profile
949*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE``
950*4882a593Smuzhiyun      - High 444 Predictive profile
951*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA``
952*4882a593Smuzhiyun      - High 10 Intra profile
953*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA``
954*4882a593Smuzhiyun      - High 422 Intra profile
955*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_INTRA``
956*4882a593Smuzhiyun      - High 444 Intra profile
957*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_PROFILE_CAVLC_444_INTRA``
958*4882a593Smuzhiyun      - CAVLC 444 Intra profile
959*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_BASELINE``
960*4882a593Smuzhiyun      - Scalable Baseline profile
961*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH``
962*4882a593Smuzhiyun      - Scalable High profile
963*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA``
964*4882a593Smuzhiyun      - Scalable High Intra profile
965*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH``
966*4882a593Smuzhiyun      - Stereo High profile
967*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH``
968*4882a593Smuzhiyun      - Multiview High profile
969*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH``
970*4882a593Smuzhiyun      - Constrained High profile
971*4882a593Smuzhiyun
972*4882a593Smuzhiyun
973*4882a593Smuzhiyun
974*4882a593Smuzhiyun.. _v4l2-mpeg-video-mpeg2-profile:
975*4882a593Smuzhiyun
976*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG2_PROFILE``
977*4882a593Smuzhiyun    (enum)
978*4882a593Smuzhiyun
979*4882a593Smuzhiyunenum v4l2_mpeg_video_mpeg2_profile -
980*4882a593Smuzhiyun    The profile information for MPEG2. Applicable to MPEG2 codecs.
981*4882a593Smuzhiyun    Possible values are:
982*4882a593Smuzhiyun
983*4882a593Smuzhiyun
984*4882a593Smuzhiyun
985*4882a593Smuzhiyun.. flat-table::
986*4882a593Smuzhiyun    :header-rows:  0
987*4882a593Smuzhiyun    :stub-columns: 0
988*4882a593Smuzhiyun
989*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_SIMPLE``
990*4882a593Smuzhiyun      - Simple profile (SP)
991*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_MAIN``
992*4882a593Smuzhiyun      - Main profile (MP)
993*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_SNR_SCALABLE``
994*4882a593Smuzhiyun      - SNR Scalable profile (SNR)
995*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_SPATIALLY_SCALABLE``
996*4882a593Smuzhiyun      - Spatially Scalable profile (Spt)
997*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_HIGH``
998*4882a593Smuzhiyun      - High profile (HP)
999*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_MULTIVIEW``
1000*4882a593Smuzhiyun      - Multi-view profile (MVP)
1001*4882a593Smuzhiyun
1002*4882a593Smuzhiyun
1003*4882a593Smuzhiyun
1004*4882a593Smuzhiyun.. _v4l2-mpeg-video-mpeg4-profile:
1005*4882a593Smuzhiyun
1006*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE``
1007*4882a593Smuzhiyun    (enum)
1008*4882a593Smuzhiyun
1009*4882a593Smuzhiyunenum v4l2_mpeg_video_mpeg4_profile -
1010*4882a593Smuzhiyun    The profile information for MPEG4. Applicable to the MPEG4 encoder.
1011*4882a593Smuzhiyun    Possible values are:
1012*4882a593Smuzhiyun
1013*4882a593Smuzhiyun
1014*4882a593Smuzhiyun
1015*4882a593Smuzhiyun.. flat-table::
1016*4882a593Smuzhiyun    :header-rows:  0
1017*4882a593Smuzhiyun    :stub-columns: 0
1018*4882a593Smuzhiyun
1019*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE``
1020*4882a593Smuzhiyun      - Simple profile
1021*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE``
1022*4882a593Smuzhiyun      - Advanced Simple profile
1023*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG4_PROFILE_CORE``
1024*4882a593Smuzhiyun      - Core profile
1025*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE_SCALABLE``
1026*4882a593Smuzhiyun      - Simple Scalable profile
1027*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY``
1028*4882a593Smuzhiyun      -
1029*4882a593Smuzhiyun
1030*4882a593Smuzhiyun
1031*4882a593Smuzhiyun
1032*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MAX_REF_PIC (integer)``
1033*4882a593Smuzhiyun    The maximum number of reference pictures used for encoding.
1034*4882a593Smuzhiyun    Applicable to the encoder.
1035*4882a593Smuzhiyun
1036*4882a593Smuzhiyun.. _v4l2-mpeg-video-multi-slice-mode:
1037*4882a593Smuzhiyun
1038*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE``
1039*4882a593Smuzhiyun    (enum)
1040*4882a593Smuzhiyun
1041*4882a593Smuzhiyunenum v4l2_mpeg_video_multi_slice_mode -
1042*4882a593Smuzhiyun    Determines how the encoder should handle division of frame into
1043*4882a593Smuzhiyun    slices. Applicable to the encoder. Possible values are:
1044*4882a593Smuzhiyun
1045*4882a593Smuzhiyun
1046*4882a593Smuzhiyun
1047*4882a593Smuzhiyun.. tabularcolumns:: |p{9.6cm}|p{7.9cm}|
1048*4882a593Smuzhiyun
1049*4882a593Smuzhiyun.. flat-table::
1050*4882a593Smuzhiyun    :header-rows:  0
1051*4882a593Smuzhiyun    :stub-columns: 0
1052*4882a593Smuzhiyun
1053*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE``
1054*4882a593Smuzhiyun      - Single slice per frame.
1055*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB``
1056*4882a593Smuzhiyun      - Multiple slices with set maximum number of macroblocks per slice.
1057*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES``
1058*4882a593Smuzhiyun      - Multiple slice with set maximum size in bytes per slice.
1059*4882a593Smuzhiyun
1060*4882a593Smuzhiyun
1061*4882a593Smuzhiyun
1062*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB (integer)``
1063*4882a593Smuzhiyun    The maximum number of macroblocks in a slice. Used when
1064*4882a593Smuzhiyun    ``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE`` is set to
1065*4882a593Smuzhiyun    ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB``. Applicable to the
1066*4882a593Smuzhiyun    encoder.
1067*4882a593Smuzhiyun
1068*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES (integer)``
1069*4882a593Smuzhiyun    The maximum size of a slice in bytes. Used when
1070*4882a593Smuzhiyun    ``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE`` is set to
1071*4882a593Smuzhiyun    ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES``. Applicable to the
1072*4882a593Smuzhiyun    encoder.
1073*4882a593Smuzhiyun
1074*4882a593Smuzhiyun.. _v4l2-mpeg-video-h264-loop-filter-mode:
1075*4882a593Smuzhiyun
1076*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE``
1077*4882a593Smuzhiyun    (enum)
1078*4882a593Smuzhiyun
1079*4882a593Smuzhiyunenum v4l2_mpeg_video_h264_loop_filter_mode -
1080*4882a593Smuzhiyun    Loop filter mode for H264 encoder. Possible values are:
1081*4882a593Smuzhiyun
1082*4882a593Smuzhiyun.. raw:: latex
1083*4882a593Smuzhiyun
1084*4882a593Smuzhiyun    \small
1085*4882a593Smuzhiyun
1086*4882a593Smuzhiyun.. tabularcolumns:: |p{13.6cm}|p{3.9cm}|
1087*4882a593Smuzhiyun
1088*4882a593Smuzhiyun.. flat-table::
1089*4882a593Smuzhiyun    :header-rows:  0
1090*4882a593Smuzhiyun    :stub-columns: 0
1091*4882a593Smuzhiyun
1092*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED``
1093*4882a593Smuzhiyun      - Loop filter is enabled.
1094*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED``
1095*4882a593Smuzhiyun      - Loop filter is disabled.
1096*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY``
1097*4882a593Smuzhiyun      - Loop filter is disabled at the slice boundary.
1098*4882a593Smuzhiyun
1099*4882a593Smuzhiyun.. raw:: latex
1100*4882a593Smuzhiyun
1101*4882a593Smuzhiyun    \normalsize
1102*4882a593Smuzhiyun
1103*4882a593Smuzhiyun
1104*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA (integer)``
1105*4882a593Smuzhiyun    Loop filter alpha coefficient, defined in the H264 standard.
1106*4882a593Smuzhiyun    This value corresponds to the slice_alpha_c0_offset_div2 slice header
1107*4882a593Smuzhiyun    field, and should be in the range of -6 to +6, inclusive. The actual alpha
1108*4882a593Smuzhiyun    offset FilterOffsetA is twice this value.
1109*4882a593Smuzhiyun    Applicable to the H264 encoder.
1110*4882a593Smuzhiyun
1111*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA (integer)``
1112*4882a593Smuzhiyun    Loop filter beta coefficient, defined in the H264 standard.
1113*4882a593Smuzhiyun    This corresponds to the slice_beta_offset_div2 slice header field, and
1114*4882a593Smuzhiyun    should be in the range of -6 to +6, inclusive. The actual beta offset
1115*4882a593Smuzhiyun    FilterOffsetB is twice this value.
1116*4882a593Smuzhiyun    Applicable to the H264 encoder.
1117*4882a593Smuzhiyun
1118*4882a593Smuzhiyun.. _v4l2-mpeg-video-h264-entropy-mode:
1119*4882a593Smuzhiyun
1120*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE``
1121*4882a593Smuzhiyun    (enum)
1122*4882a593Smuzhiyun
1123*4882a593Smuzhiyunenum v4l2_mpeg_video_h264_entropy_mode -
1124*4882a593Smuzhiyun    Entropy coding mode for H264 - CABAC/CAVALC. Applicable to the H264
1125*4882a593Smuzhiyun    encoder. Possible values are:
1126*4882a593Smuzhiyun
1127*4882a593Smuzhiyun
1128*4882a593Smuzhiyun.. tabularcolumns:: |p{9.0cm}|p{8.5cm}|
1129*4882a593Smuzhiyun
1130*4882a593Smuzhiyun
1131*4882a593Smuzhiyun.. flat-table::
1132*4882a593Smuzhiyun    :header-rows:  0
1133*4882a593Smuzhiyun    :stub-columns: 0
1134*4882a593Smuzhiyun
1135*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC``
1136*4882a593Smuzhiyun      - Use CAVLC entropy coding.
1137*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC``
1138*4882a593Smuzhiyun      - Use CABAC entropy coding.
1139*4882a593Smuzhiyun
1140*4882a593Smuzhiyun
1141*4882a593Smuzhiyun
1142*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM (boolean)``
1143*4882a593Smuzhiyun    Enable 8X8 transform for H264. Applicable to the H264 encoder.
1144*4882a593Smuzhiyun
1145*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION (boolean)``
1146*4882a593Smuzhiyun    Enable constrained intra prediction for H264. Applicable to the H264
1147*4882a593Smuzhiyun    encoder.
1148*4882a593Smuzhiyun
1149*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET (integer)``
1150*4882a593Smuzhiyun    Specify the offset that should be added to the luma quantization
1151*4882a593Smuzhiyun    parameter to determine the chroma quantization parameter. Applicable
1152*4882a593Smuzhiyun    to the H264 encoder.
1153*4882a593Smuzhiyun
1154*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (integer)``
1155*4882a593Smuzhiyun    Cyclic intra macroblock refresh. This is the number of continuous
1156*4882a593Smuzhiyun    macroblocks refreshed every frame. Each frame a successive set of
1157*4882a593Smuzhiyun    macroblocks is refreshed until the cycle completes and starts from
1158*4882a593Smuzhiyun    the top of the frame. Applicable to H264, H263 and MPEG4 encoder.
1159*4882a593Smuzhiyun
1160*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE (boolean)``
1161*4882a593Smuzhiyun    Frame level rate control enable. If this control is disabled then
1162*4882a593Smuzhiyun    the quantization parameter for each frame type is constant and set
1163*4882a593Smuzhiyun    with appropriate controls (e.g.
1164*4882a593Smuzhiyun    ``V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP``). If frame rate control is
1165*4882a593Smuzhiyun    enabled then quantization parameter is adjusted to meet the chosen
1166*4882a593Smuzhiyun    bitrate. Minimum and maximum value for the quantization parameter
1167*4882a593Smuzhiyun    can be set with appropriate controls (e.g.
1168*4882a593Smuzhiyun    ``V4L2_CID_MPEG_VIDEO_H263_MIN_QP``). Applicable to encoders.
1169*4882a593Smuzhiyun
1170*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE (boolean)``
1171*4882a593Smuzhiyun    Macroblock level rate control enable. Applicable to the MPEG4 and
1172*4882a593Smuzhiyun    H264 encoders.
1173*4882a593Smuzhiyun
1174*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG4_QPEL (boolean)``
1175*4882a593Smuzhiyun    Quarter pixel motion estimation for MPEG4. Applicable to the MPEG4
1176*4882a593Smuzhiyun    encoder.
1177*4882a593Smuzhiyun
1178*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (integer)``
1179*4882a593Smuzhiyun    Quantization parameter for an I frame for H263. Valid range: from 1
1180*4882a593Smuzhiyun    to 31.
1181*4882a593Smuzhiyun
1182*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H263_MIN_QP (integer)``
1183*4882a593Smuzhiyun    Minimum quantization parameter for H263. Valid range: from 1 to 31.
1184*4882a593Smuzhiyun
1185*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H263_MAX_QP (integer)``
1186*4882a593Smuzhiyun    Maximum quantization parameter for H263. Valid range: from 1 to 31.
1187*4882a593Smuzhiyun
1188*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (integer)``
1189*4882a593Smuzhiyun    Quantization parameter for an P frame for H263. Valid range: from 1
1190*4882a593Smuzhiyun    to 31.
1191*4882a593Smuzhiyun
1192*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (integer)``
1193*4882a593Smuzhiyun    Quantization parameter for an B frame for H263. Valid range: from 1
1194*4882a593Smuzhiyun    to 31.
1195*4882a593Smuzhiyun
1196*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP (integer)``
1197*4882a593Smuzhiyun    Quantization parameter for an I frame for H264. Valid range: from 0
1198*4882a593Smuzhiyun    to 51.
1199*4882a593Smuzhiyun
1200*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_MIN_QP (integer)``
1201*4882a593Smuzhiyun    Minimum quantization parameter for H264. Valid range: from 0 to 51.
1202*4882a593Smuzhiyun
1203*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_MAX_QP (integer)``
1204*4882a593Smuzhiyun    Maximum quantization parameter for H264. Valid range: from 0 to 51.
1205*4882a593Smuzhiyun
1206*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP (integer)``
1207*4882a593Smuzhiyun    Quantization parameter for an P frame for H264. Valid range: from 0
1208*4882a593Smuzhiyun    to 51.
1209*4882a593Smuzhiyun
1210*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP (integer)``
1211*4882a593Smuzhiyun    Quantization parameter for an B frame for H264. Valid range: from 0
1212*4882a593Smuzhiyun    to 51.
1213*4882a593Smuzhiyun
1214*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP (integer)``
1215*4882a593Smuzhiyun    Minimum quantization parameter for the H264 I frame to limit I frame
1216*4882a593Smuzhiyun    quality to a range. Valid range: from 0 to 51. If
1217*4882a593Smuzhiyun    V4L2_CID_MPEG_VIDEO_H264_MIN_QP is also set, the quantization parameter
1218*4882a593Smuzhiyun    should be chosen to meet both requirements.
1219*4882a593Smuzhiyun
1220*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP (integer)``
1221*4882a593Smuzhiyun    Maximum quantization parameter for the H264 I frame to limit I frame
1222*4882a593Smuzhiyun    quality to a range. Valid range: from 0 to 51. If
1223*4882a593Smuzhiyun    V4L2_CID_MPEG_VIDEO_H264_MAX_QP is also set, the quantization parameter
1224*4882a593Smuzhiyun    should be chosen to meet both requirements.
1225*4882a593Smuzhiyun
1226*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP (integer)``
1227*4882a593Smuzhiyun    Minimum quantization parameter for the H264 P frame to limit P frame
1228*4882a593Smuzhiyun    quality to a range. Valid range: from 0 to 51. If
1229*4882a593Smuzhiyun    V4L2_CID_MPEG_VIDEO_H264_MIN_QP is also set, the quantization parameter
1230*4882a593Smuzhiyun    should be chosen to meet both requirements.
1231*4882a593Smuzhiyun
1232*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP (integer)``
1233*4882a593Smuzhiyun    Maximum quantization parameter for the H264 P frame to limit P frame
1234*4882a593Smuzhiyun    quality to a range. Valid range: from 0 to 51. If
1235*4882a593Smuzhiyun    V4L2_CID_MPEG_VIDEO_H264_MAX_QP is also set, the quantization parameter
1236*4882a593Smuzhiyun    should be chosen to meet both requirements.
1237*4882a593Smuzhiyun
1238*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MIN_QP (integer)``
1239*4882a593Smuzhiyun    Minimum quantization parameter for the H264 B frame to limit B frame
1240*4882a593Smuzhiyun    quality to a range. Valid range: from 0 to 51. If
1241*4882a593Smuzhiyun    V4L2_CID_MPEG_VIDEO_H264_MIN_QP is also set, the quantization parameter
1242*4882a593Smuzhiyun    should be chosen to meet both requirements.
1243*4882a593Smuzhiyun
1244*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MAX_QP (integer)``
1245*4882a593Smuzhiyun    Maximum quantization parameter for the H264 B frame to limit B frame
1246*4882a593Smuzhiyun    quality to a range. Valid range: from 0 to 51. If
1247*4882a593Smuzhiyun    V4L2_CID_MPEG_VIDEO_H264_MAX_QP is also set, the quantization parameter
1248*4882a593Smuzhiyun    should be chosen to meet both requirements.
1249*4882a593Smuzhiyun
1250*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (integer)``
1251*4882a593Smuzhiyun    Quantization parameter for an I frame for MPEG4. Valid range: from 1
1252*4882a593Smuzhiyun    to 31.
1253*4882a593Smuzhiyun
1254*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP (integer)``
1255*4882a593Smuzhiyun    Minimum quantization parameter for MPEG4. Valid range: from 1 to 31.
1256*4882a593Smuzhiyun
1257*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP (integer)``
1258*4882a593Smuzhiyun    Maximum quantization parameter for MPEG4. Valid range: from 1 to 31.
1259*4882a593Smuzhiyun
1260*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (integer)``
1261*4882a593Smuzhiyun    Quantization parameter for an P frame for MPEG4. Valid range: from 1
1262*4882a593Smuzhiyun    to 31.
1263*4882a593Smuzhiyun
1264*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (integer)``
1265*4882a593Smuzhiyun    Quantization parameter for an B frame for MPEG4. Valid range: from 1
1266*4882a593Smuzhiyun    to 31.
1267*4882a593Smuzhiyun
1268*4882a593Smuzhiyun.. _v4l2-mpeg-video-vbv-size:
1269*4882a593Smuzhiyun
1270*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VBV_SIZE (integer)``
1271*4882a593Smuzhiyun    The Video Buffer Verifier size in kilobytes, it is used as a
1272*4882a593Smuzhiyun    limitation of frame skip. The VBV is defined in the standard as a
1273*4882a593Smuzhiyun    mean to verify that the produced stream will be successfully
1274*4882a593Smuzhiyun    decoded. The standard describes it as "Part of a hypothetical
1275*4882a593Smuzhiyun    decoder that is conceptually connected to the output of the encoder.
1276*4882a593Smuzhiyun    Its purpose is to provide a constraint on the variability of the
1277*4882a593Smuzhiyun    data rate that an encoder or editing process may produce.".
1278*4882a593Smuzhiyun    Applicable to the MPEG1, MPEG2, MPEG4 encoders.
1279*4882a593Smuzhiyun
1280*4882a593Smuzhiyun.. _v4l2-mpeg-video-vbv-delay:
1281*4882a593Smuzhiyun
1282*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VBV_DELAY (integer)``
1283*4882a593Smuzhiyun    Sets the initial delay in milliseconds for VBV buffer control.
1284*4882a593Smuzhiyun
1285*4882a593Smuzhiyun.. _v4l2-mpeg-video-hor-search-range:
1286*4882a593Smuzhiyun
1287*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (integer)``
1288*4882a593Smuzhiyun    Horizontal search range defines maximum horizontal search area in
1289*4882a593Smuzhiyun    pixels to search and match for the present Macroblock (MB) in the
1290*4882a593Smuzhiyun    reference picture. This V4L2 control macro is used to set horizontal
1291*4882a593Smuzhiyun    search range for motion estimation module in video encoder.
1292*4882a593Smuzhiyun
1293*4882a593Smuzhiyun.. _v4l2-mpeg-video-vert-search-range:
1294*4882a593Smuzhiyun
1295*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (integer)``
1296*4882a593Smuzhiyun    Vertical search range defines maximum vertical search area in pixels
1297*4882a593Smuzhiyun    to search and match for the present Macroblock (MB) in the reference
1298*4882a593Smuzhiyun    picture. This V4L2 control macro is used to set vertical search
1299*4882a593Smuzhiyun    range for motion estimation module in video encoder.
1300*4882a593Smuzhiyun
1301*4882a593Smuzhiyun.. _v4l2-mpeg-video-force-key-frame:
1302*4882a593Smuzhiyun
1303*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (button)``
1304*4882a593Smuzhiyun    Force a key frame for the next queued buffer. Applicable to
1305*4882a593Smuzhiyun    encoders. This is a general, codec-agnostic keyframe control.
1306*4882a593Smuzhiyun
1307*4882a593Smuzhiyun.. _v4l2-mpeg-video-h264-cpb-size:
1308*4882a593Smuzhiyun
1309*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE (integer)``
1310*4882a593Smuzhiyun    The Coded Picture Buffer size in kilobytes, it is used as a
1311*4882a593Smuzhiyun    limitation of frame skip. The CPB is defined in the H264 standard as
1312*4882a593Smuzhiyun    a mean to verify that the produced stream will be successfully
1313*4882a593Smuzhiyun    decoded. Applicable to the H264 encoder.
1314*4882a593Smuzhiyun
1315*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_I_PERIOD (integer)``
1316*4882a593Smuzhiyun    Period between I-frames in the open GOP for H264. In case of an open
1317*4882a593Smuzhiyun    GOP this is the period between two I-frames. The period between IDR
1318*4882a593Smuzhiyun    (Instantaneous Decoding Refresh) frames is taken from the GOP_SIZE
1319*4882a593Smuzhiyun    control. An IDR frame, which stands for Instantaneous Decoding
1320*4882a593Smuzhiyun    Refresh is an I-frame after which no prior frames are referenced.
1321*4882a593Smuzhiyun    This means that a stream can be restarted from an IDR frame without
1322*4882a593Smuzhiyun    the need to store or decode any previous frames. Applicable to the
1323*4882a593Smuzhiyun    H264 encoder.
1324*4882a593Smuzhiyun
1325*4882a593Smuzhiyun.. _v4l2-mpeg-video-header-mode:
1326*4882a593Smuzhiyun
1327*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEADER_MODE``
1328*4882a593Smuzhiyun    (enum)
1329*4882a593Smuzhiyun
1330*4882a593Smuzhiyunenum v4l2_mpeg_video_header_mode -
1331*4882a593Smuzhiyun    Determines whether the header is returned as the first buffer or is
1332*4882a593Smuzhiyun    it returned together with the first frame. Applicable to encoders.
1333*4882a593Smuzhiyun    Possible values are:
1334*4882a593Smuzhiyun
1335*4882a593Smuzhiyun.. raw:: latex
1336*4882a593Smuzhiyun
1337*4882a593Smuzhiyun    \small
1338*4882a593Smuzhiyun
1339*4882a593Smuzhiyun.. tabularcolumns:: |p{10.3cm}|p{7.2cm}|
1340*4882a593Smuzhiyun
1341*4882a593Smuzhiyun.. flat-table::
1342*4882a593Smuzhiyun    :header-rows:  0
1343*4882a593Smuzhiyun    :stub-columns: 0
1344*4882a593Smuzhiyun
1345*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE``
1346*4882a593Smuzhiyun      - The stream header is returned separately in the first buffer.
1347*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME``
1348*4882a593Smuzhiyun      - The stream header is returned together with the first encoded
1349*4882a593Smuzhiyun	frame.
1350*4882a593Smuzhiyun
1351*4882a593Smuzhiyun.. raw:: latex
1352*4882a593Smuzhiyun
1353*4882a593Smuzhiyun    \normalsize
1354*4882a593Smuzhiyun
1355*4882a593Smuzhiyun
1356*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (boolean)``
1357*4882a593Smuzhiyun    Repeat the video sequence headers. Repeating these headers makes
1358*4882a593Smuzhiyun    random access to the video stream easier. Applicable to the MPEG1, 2
1359*4882a593Smuzhiyun    and 4 encoder.
1360*4882a593Smuzhiyun
1361*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (boolean)``
1362*4882a593Smuzhiyun    Enabled the deblocking post processing filter for MPEG4 decoder.
1363*4882a593Smuzhiyun    Applicable to the MPEG4 decoder.
1364*4882a593Smuzhiyun
1365*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG4_VOP_TIME_RES (integer)``
1366*4882a593Smuzhiyun    vop_time_increment_resolution value for MPEG4. Applicable to the
1367*4882a593Smuzhiyun    MPEG4 encoder.
1368*4882a593Smuzhiyun
1369*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG4_VOP_TIME_INC (integer)``
1370*4882a593Smuzhiyun    vop_time_increment value for MPEG4. Applicable to the MPEG4
1371*4882a593Smuzhiyun    encoder.
1372*4882a593Smuzhiyun
1373*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING (boolean)``
1374*4882a593Smuzhiyun    Enable generation of frame packing supplemental enhancement
1375*4882a593Smuzhiyun    information in the encoded bitstream. The frame packing SEI message
1376*4882a593Smuzhiyun    contains the arrangement of L and R planes for 3D viewing.
1377*4882a593Smuzhiyun    Applicable to the H264 encoder.
1378*4882a593Smuzhiyun
1379*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 (boolean)``
1380*4882a593Smuzhiyun    Sets current frame as frame0 in frame packing SEI. Applicable to the
1381*4882a593Smuzhiyun    H264 encoder.
1382*4882a593Smuzhiyun
1383*4882a593Smuzhiyun.. _v4l2-mpeg-video-h264-sei-fp-arrangement-type:
1384*4882a593Smuzhiyun
1385*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE``
1386*4882a593Smuzhiyun    (enum)
1387*4882a593Smuzhiyun
1388*4882a593Smuzhiyunenum v4l2_mpeg_video_h264_sei_fp_arrangement_type -
1389*4882a593Smuzhiyun    Frame packing arrangement type for H264 SEI. Applicable to the H264
1390*4882a593Smuzhiyun    encoder. Possible values are:
1391*4882a593Smuzhiyun
1392*4882a593Smuzhiyun.. raw:: latex
1393*4882a593Smuzhiyun
1394*4882a593Smuzhiyun    \small
1395*4882a593Smuzhiyun
1396*4882a593Smuzhiyun.. tabularcolumns:: |p{12cm}|p{5.5cm}|
1397*4882a593Smuzhiyun
1398*4882a593Smuzhiyun.. flat-table::
1399*4882a593Smuzhiyun    :header-rows:  0
1400*4882a593Smuzhiyun    :stub-columns: 0
1401*4882a593Smuzhiyun
1402*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHEKERBOARD``
1403*4882a593Smuzhiyun      - Pixels are alternatively from L and R.
1404*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN``
1405*4882a593Smuzhiyun      - L and R are interlaced by column.
1406*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_ROW``
1407*4882a593Smuzhiyun      - L and R are interlaced by row.
1408*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_SIDE_BY_SIDE``
1409*4882a593Smuzhiyun      - L is on the left, R on the right.
1410*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM``
1411*4882a593Smuzhiyun      - L is on top, R on bottom.
1412*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL``
1413*4882a593Smuzhiyun      - One view per frame.
1414*4882a593Smuzhiyun
1415*4882a593Smuzhiyun.. raw:: latex
1416*4882a593Smuzhiyun
1417*4882a593Smuzhiyun    \normalsize
1418*4882a593Smuzhiyun
1419*4882a593Smuzhiyun
1420*4882a593Smuzhiyun
1421*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_FMO (boolean)``
1422*4882a593Smuzhiyun    Enables flexible macroblock ordering in the encoded bitstream. It is
1423*4882a593Smuzhiyun    a technique used for restructuring the ordering of macroblocks in
1424*4882a593Smuzhiyun    pictures. Applicable to the H264 encoder.
1425*4882a593Smuzhiyun
1426*4882a593Smuzhiyun.. _v4l2-mpeg-video-h264-fmo-map-type:
1427*4882a593Smuzhiyun
1428*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE``
1429*4882a593Smuzhiyun   (enum)
1430*4882a593Smuzhiyun
1431*4882a593Smuzhiyunenum v4l2_mpeg_video_h264_fmo_map_type -
1432*4882a593Smuzhiyun    When using FMO, the map type divides the image in different scan
1433*4882a593Smuzhiyun    patterns of macroblocks. Applicable to the H264 encoder. Possible
1434*4882a593Smuzhiyun    values are:
1435*4882a593Smuzhiyun
1436*4882a593Smuzhiyun.. raw:: latex
1437*4882a593Smuzhiyun
1438*4882a593Smuzhiyun    \small
1439*4882a593Smuzhiyun
1440*4882a593Smuzhiyun.. tabularcolumns:: |p{12.5cm}|p{5.0cm}|
1441*4882a593Smuzhiyun
1442*4882a593Smuzhiyun.. flat-table::
1443*4882a593Smuzhiyun    :header-rows:  0
1444*4882a593Smuzhiyun    :stub-columns: 0
1445*4882a593Smuzhiyun
1446*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES``
1447*4882a593Smuzhiyun      - Slices are interleaved one after other with macroblocks in run
1448*4882a593Smuzhiyun	length order.
1449*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES``
1450*4882a593Smuzhiyun      - Scatters the macroblocks based on a mathematical function known to
1451*4882a593Smuzhiyun	both encoder and decoder.
1452*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER``
1453*4882a593Smuzhiyun      - Macroblocks arranged in rectangular areas or regions of interest.
1454*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT``
1455*4882a593Smuzhiyun      - Slice groups grow in a cyclic way from centre to outwards.
1456*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN``
1457*4882a593Smuzhiyun      - Slice groups grow in raster scan pattern from left to right.
1458*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN``
1459*4882a593Smuzhiyun      - Slice groups grow in wipe scan pattern from top to bottom.
1460*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT``
1461*4882a593Smuzhiyun      - User defined map type.
1462*4882a593Smuzhiyun
1463*4882a593Smuzhiyun.. raw:: latex
1464*4882a593Smuzhiyun
1465*4882a593Smuzhiyun    \normalsize
1466*4882a593Smuzhiyun
1467*4882a593Smuzhiyun
1468*4882a593Smuzhiyun
1469*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP (integer)``
1470*4882a593Smuzhiyun    Number of slice groups in FMO. Applicable to the H264 encoder.
1471*4882a593Smuzhiyun
1472*4882a593Smuzhiyun.. _v4l2-mpeg-video-h264-fmo-change-direction:
1473*4882a593Smuzhiyun
1474*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION``
1475*4882a593Smuzhiyun    (enum)
1476*4882a593Smuzhiyun
1477*4882a593Smuzhiyunenum v4l2_mpeg_video_h264_fmo_change_dir -
1478*4882a593Smuzhiyun    Specifies a direction of the slice group change for raster and wipe
1479*4882a593Smuzhiyun    maps. Applicable to the H264 encoder. Possible values are:
1480*4882a593Smuzhiyun
1481*4882a593Smuzhiyun
1482*4882a593Smuzhiyun
1483*4882a593Smuzhiyun.. flat-table::
1484*4882a593Smuzhiyun    :header-rows:  0
1485*4882a593Smuzhiyun    :stub-columns: 0
1486*4882a593Smuzhiyun
1487*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT``
1488*4882a593Smuzhiyun      - Raster scan or wipe right.
1489*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT``
1490*4882a593Smuzhiyun      - Reverse raster scan or wipe left.
1491*4882a593Smuzhiyun
1492*4882a593Smuzhiyun
1493*4882a593Smuzhiyun
1494*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE (integer)``
1495*4882a593Smuzhiyun    Specifies the size of the first slice group for raster and wipe map.
1496*4882a593Smuzhiyun    Applicable to the H264 encoder.
1497*4882a593Smuzhiyun
1498*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH (integer)``
1499*4882a593Smuzhiyun    Specifies the number of consecutive macroblocks for the interleaved
1500*4882a593Smuzhiyun    map. Applicable to the H264 encoder.
1501*4882a593Smuzhiyun
1502*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_ASO (boolean)``
1503*4882a593Smuzhiyun    Enables arbitrary slice ordering in encoded bitstream. Applicable to
1504*4882a593Smuzhiyun    the H264 encoder.
1505*4882a593Smuzhiyun
1506*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER (integer)``
1507*4882a593Smuzhiyun    Specifies the slice order in ASO. Applicable to the H264 encoder.
1508*4882a593Smuzhiyun    The supplied 32-bit integer is interpreted as follows (bit 0 = least
1509*4882a593Smuzhiyun    significant bit):
1510*4882a593Smuzhiyun
1511*4882a593Smuzhiyun
1512*4882a593Smuzhiyun
1513*4882a593Smuzhiyun.. flat-table::
1514*4882a593Smuzhiyun    :header-rows:  0
1515*4882a593Smuzhiyun    :stub-columns: 0
1516*4882a593Smuzhiyun
1517*4882a593Smuzhiyun    * - Bit 0:15
1518*4882a593Smuzhiyun      - Slice ID
1519*4882a593Smuzhiyun    * - Bit 16:32
1520*4882a593Smuzhiyun      - Slice position or order
1521*4882a593Smuzhiyun
1522*4882a593Smuzhiyun
1523*4882a593Smuzhiyun
1524*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING (boolean)``
1525*4882a593Smuzhiyun    Enables H264 hierarchical coding. Applicable to the H264 encoder.
1526*4882a593Smuzhiyun
1527*4882a593Smuzhiyun.. _v4l2-mpeg-video-h264-hierarchical-coding-type:
1528*4882a593Smuzhiyun
1529*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE``
1530*4882a593Smuzhiyun    (enum)
1531*4882a593Smuzhiyun
1532*4882a593Smuzhiyunenum v4l2_mpeg_video_h264_hierarchical_coding_type -
1533*4882a593Smuzhiyun    Specifies the hierarchical coding type. Applicable to the H264
1534*4882a593Smuzhiyun    encoder. Possible values are:
1535*4882a593Smuzhiyun
1536*4882a593Smuzhiyun
1537*4882a593Smuzhiyun
1538*4882a593Smuzhiyun.. flat-table::
1539*4882a593Smuzhiyun    :header-rows:  0
1540*4882a593Smuzhiyun    :stub-columns: 0
1541*4882a593Smuzhiyun
1542*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B``
1543*4882a593Smuzhiyun      - Hierarchical B coding.
1544*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P``
1545*4882a593Smuzhiyun      - Hierarchical P coding.
1546*4882a593Smuzhiyun
1547*4882a593Smuzhiyun
1548*4882a593Smuzhiyun
1549*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (integer)``
1550*4882a593Smuzhiyun    Specifies the number of hierarchical coding layers. Applicable to
1551*4882a593Smuzhiyun    the H264 encoder.
1552*4882a593Smuzhiyun
1553*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (integer)``
1554*4882a593Smuzhiyun    Specifies a user defined QP for each layer. Applicable to the H264
1555*4882a593Smuzhiyun    encoder. The supplied 32-bit integer is interpreted as follows (bit
1556*4882a593Smuzhiyun    0 = least significant bit):
1557*4882a593Smuzhiyun
1558*4882a593Smuzhiyun
1559*4882a593Smuzhiyun
1560*4882a593Smuzhiyun.. flat-table::
1561*4882a593Smuzhiyun    :header-rows:  0
1562*4882a593Smuzhiyun    :stub-columns: 0
1563*4882a593Smuzhiyun
1564*4882a593Smuzhiyun    * - Bit 0:15
1565*4882a593Smuzhiyun      - QP value
1566*4882a593Smuzhiyun    * - Bit 16:32
1567*4882a593Smuzhiyun      - Layer number
1568*4882a593Smuzhiyun
1569*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L0_BR (integer)``
1570*4882a593Smuzhiyun    Indicates bit rate (bps) for hierarchical coding layer 0 for H264 encoder.
1571*4882a593Smuzhiyun
1572*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L1_BR (integer)``
1573*4882a593Smuzhiyun    Indicates bit rate (bps) for hierarchical coding layer 1 for H264 encoder.
1574*4882a593Smuzhiyun
1575*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L2_BR (integer)``
1576*4882a593Smuzhiyun    Indicates bit rate (bps) for hierarchical coding layer 2 for H264 encoder.
1577*4882a593Smuzhiyun
1578*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L3_BR (integer)``
1579*4882a593Smuzhiyun    Indicates bit rate (bps) for hierarchical coding layer 3 for H264 encoder.
1580*4882a593Smuzhiyun
1581*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L4_BR (integer)``
1582*4882a593Smuzhiyun    Indicates bit rate (bps) for hierarchical coding layer 4 for H264 encoder.
1583*4882a593Smuzhiyun
1584*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L5_BR (integer)``
1585*4882a593Smuzhiyun    Indicates bit rate (bps) for hierarchical coding layer 5 for H264 encoder.
1586*4882a593Smuzhiyun
1587*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L6_BR (integer)``
1588*4882a593Smuzhiyun    Indicates bit rate (bps) for hierarchical coding layer 6 for H264 encoder.
1589*4882a593Smuzhiyun
1590*4882a593Smuzhiyun.. _v4l2-mpeg-h264:
1591*4882a593Smuzhiyun
1592*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_SPS (struct)``
1593*4882a593Smuzhiyun    Specifies the sequence parameter set (as extracted from the
1594*4882a593Smuzhiyun    bitstream) for the associated H264 slice data. This includes the
1595*4882a593Smuzhiyun    necessary parameters for configuring a stateless hardware decoding
1596*4882a593Smuzhiyun    pipeline for H264. The bitstream parameters are defined according
1597*4882a593Smuzhiyun    to :ref:`h264`, section 7.4.2.1.1 "Sequence Parameter Set Data
1598*4882a593Smuzhiyun    Semantics". For further documentation, refer to the above
1599*4882a593Smuzhiyun    specification, unless there is an explicit comment stating
1600*4882a593Smuzhiyun    otherwise.
1601*4882a593Smuzhiyun
1602*4882a593Smuzhiyun    .. note::
1603*4882a593Smuzhiyun
1604*4882a593Smuzhiyun       This compound control is not yet part of the public kernel API and
1605*4882a593Smuzhiyun       it is expected to change.
1606*4882a593Smuzhiyun
1607*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_h264_sps
1608*4882a593Smuzhiyun
1609*4882a593Smuzhiyun.. cssclass:: longtable
1610*4882a593Smuzhiyun
1611*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_h264_sps
1612*4882a593Smuzhiyun    :header-rows:  0
1613*4882a593Smuzhiyun    :stub-columns: 0
1614*4882a593Smuzhiyun    :widths:       1 1 2
1615*4882a593Smuzhiyun
1616*4882a593Smuzhiyun    * - __u8
1617*4882a593Smuzhiyun      - ``profile_idc``
1618*4882a593Smuzhiyun      -
1619*4882a593Smuzhiyun    * - __u8
1620*4882a593Smuzhiyun      - ``constraint_set_flags``
1621*4882a593Smuzhiyun      - See :ref:`Sequence Parameter Set Constraints Set Flags <h264_sps_constraints_set_flags>`
1622*4882a593Smuzhiyun    * - __u8
1623*4882a593Smuzhiyun      - ``level_idc``
1624*4882a593Smuzhiyun      -
1625*4882a593Smuzhiyun    * - __u8
1626*4882a593Smuzhiyun      - ``seq_parameter_set_id``
1627*4882a593Smuzhiyun      -
1628*4882a593Smuzhiyun    * - __u8
1629*4882a593Smuzhiyun      - ``chroma_format_idc``
1630*4882a593Smuzhiyun      -
1631*4882a593Smuzhiyun    * - __u8
1632*4882a593Smuzhiyun      - ``bit_depth_luma_minus8``
1633*4882a593Smuzhiyun      -
1634*4882a593Smuzhiyun    * - __u8
1635*4882a593Smuzhiyun      - ``bit_depth_chroma_minus8``
1636*4882a593Smuzhiyun      -
1637*4882a593Smuzhiyun    * - __u8
1638*4882a593Smuzhiyun      - ``log2_max_frame_num_minus4``
1639*4882a593Smuzhiyun      -
1640*4882a593Smuzhiyun    * - __u8
1641*4882a593Smuzhiyun      - ``pic_order_cnt_type``
1642*4882a593Smuzhiyun      -
1643*4882a593Smuzhiyun    * - __u8
1644*4882a593Smuzhiyun      - ``log2_max_pic_order_cnt_lsb_minus4``
1645*4882a593Smuzhiyun      -
1646*4882a593Smuzhiyun    * - __u8
1647*4882a593Smuzhiyun      - ``max_num_ref_frames``
1648*4882a593Smuzhiyun      -
1649*4882a593Smuzhiyun    * - __u8
1650*4882a593Smuzhiyun      - ``num_ref_frames_in_pic_order_cnt_cycle``
1651*4882a593Smuzhiyun      -
1652*4882a593Smuzhiyun    * - __s32
1653*4882a593Smuzhiyun      - ``offset_for_ref_frame[255]``
1654*4882a593Smuzhiyun      -
1655*4882a593Smuzhiyun    * - __s32
1656*4882a593Smuzhiyun      - ``offset_for_non_ref_pic``
1657*4882a593Smuzhiyun      -
1658*4882a593Smuzhiyun    * - __s32
1659*4882a593Smuzhiyun      - ``offset_for_top_to_bottom_field``
1660*4882a593Smuzhiyun      -
1661*4882a593Smuzhiyun    * - __u16
1662*4882a593Smuzhiyun      - ``pic_width_in_mbs_minus1``
1663*4882a593Smuzhiyun      -
1664*4882a593Smuzhiyun    * - __u16
1665*4882a593Smuzhiyun      - ``pic_height_in_map_units_minus1``
1666*4882a593Smuzhiyun      -
1667*4882a593Smuzhiyun    * - __u32
1668*4882a593Smuzhiyun      - ``flags``
1669*4882a593Smuzhiyun      - See :ref:`Sequence Parameter Set Flags <h264_sps_flags>`
1670*4882a593Smuzhiyun
1671*4882a593Smuzhiyun.. _h264_sps_constraints_set_flags:
1672*4882a593Smuzhiyun
1673*4882a593Smuzhiyun``Sequence Parameter Set Constraints Set Flags``
1674*4882a593Smuzhiyun
1675*4882a593Smuzhiyun.. cssclass:: longtable
1676*4882a593Smuzhiyun
1677*4882a593Smuzhiyun.. flat-table::
1678*4882a593Smuzhiyun    :header-rows:  0
1679*4882a593Smuzhiyun    :stub-columns: 0
1680*4882a593Smuzhiyun    :widths:       1 1 2
1681*4882a593Smuzhiyun
1682*4882a593Smuzhiyun    * - ``V4L2_H264_SPS_CONSTRAINT_SET0_FLAG``
1683*4882a593Smuzhiyun      - 0x00000001
1684*4882a593Smuzhiyun      -
1685*4882a593Smuzhiyun    * - ``V4L2_H264_SPS_CONSTRAINT_SET1_FLAG``
1686*4882a593Smuzhiyun      - 0x00000002
1687*4882a593Smuzhiyun      -
1688*4882a593Smuzhiyun    * - ``V4L2_H264_SPS_CONSTRAINT_SET2_FLAG``
1689*4882a593Smuzhiyun      - 0x00000004
1690*4882a593Smuzhiyun      -
1691*4882a593Smuzhiyun    * - ``V4L2_H264_SPS_CONSTRAINT_SET3_FLAG``
1692*4882a593Smuzhiyun      - 0x00000008
1693*4882a593Smuzhiyun      -
1694*4882a593Smuzhiyun    * - ``V4L2_H264_SPS_CONSTRAINT_SET4_FLAG``
1695*4882a593Smuzhiyun      - 0x00000010
1696*4882a593Smuzhiyun      -
1697*4882a593Smuzhiyun    * - ``V4L2_H264_SPS_CONSTRAINT_SET5_FLAG``
1698*4882a593Smuzhiyun      - 0x00000020
1699*4882a593Smuzhiyun      -
1700*4882a593Smuzhiyun
1701*4882a593Smuzhiyun.. _h264_sps_flags:
1702*4882a593Smuzhiyun
1703*4882a593Smuzhiyun``Sequence Parameter Set Flags``
1704*4882a593Smuzhiyun
1705*4882a593Smuzhiyun.. cssclass:: longtable
1706*4882a593Smuzhiyun
1707*4882a593Smuzhiyun.. flat-table::
1708*4882a593Smuzhiyun    :header-rows:  0
1709*4882a593Smuzhiyun    :stub-columns: 0
1710*4882a593Smuzhiyun    :widths:       1 1 2
1711*4882a593Smuzhiyun
1712*4882a593Smuzhiyun    * - ``V4L2_H264_SPS_FLAG_SEPARATE_COLOUR_PLANE``
1713*4882a593Smuzhiyun      - 0x00000001
1714*4882a593Smuzhiyun      -
1715*4882a593Smuzhiyun    * - ``V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TRANSFORM_BYPASS``
1716*4882a593Smuzhiyun      - 0x00000002
1717*4882a593Smuzhiyun      -
1718*4882a593Smuzhiyun    * - ``V4L2_H264_SPS_FLAG_DELTA_PIC_ORDER_ALWAYS_ZERO``
1719*4882a593Smuzhiyun      - 0x00000004
1720*4882a593Smuzhiyun      -
1721*4882a593Smuzhiyun    * - ``V4L2_H264_SPS_FLAG_GAPS_IN_FRAME_NUM_VALUE_ALLOWED``
1722*4882a593Smuzhiyun      - 0x00000008
1723*4882a593Smuzhiyun      -
1724*4882a593Smuzhiyun    * - ``V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY``
1725*4882a593Smuzhiyun      - 0x00000010
1726*4882a593Smuzhiyun      -
1727*4882a593Smuzhiyun    * - ``V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD``
1728*4882a593Smuzhiyun      - 0x00000020
1729*4882a593Smuzhiyun      -
1730*4882a593Smuzhiyun    * - ``V4L2_H264_SPS_FLAG_DIRECT_8X8_INFERENCE``
1731*4882a593Smuzhiyun      - 0x00000040
1732*4882a593Smuzhiyun      -
1733*4882a593Smuzhiyun
1734*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_PPS (struct)``
1735*4882a593Smuzhiyun    Specifies the picture parameter set (as extracted from the
1736*4882a593Smuzhiyun    bitstream) for the associated H264 slice data. This includes the
1737*4882a593Smuzhiyun    necessary parameters for configuring a stateless hardware decoding
1738*4882a593Smuzhiyun    pipeline for H264.  The bitstream parameters are defined according
1739*4882a593Smuzhiyun    to :ref:`h264`, section 7.4.2.2 "Picture Parameter Set RBSP
1740*4882a593Smuzhiyun    Semantics". For further documentation, refer to the above
1741*4882a593Smuzhiyun    specification, unless there is an explicit comment stating
1742*4882a593Smuzhiyun    otherwise.
1743*4882a593Smuzhiyun
1744*4882a593Smuzhiyun    .. note::
1745*4882a593Smuzhiyun
1746*4882a593Smuzhiyun       This compound control is not yet part of the public kernel API and
1747*4882a593Smuzhiyun       it is expected to change.
1748*4882a593Smuzhiyun
1749*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_h264_pps
1750*4882a593Smuzhiyun
1751*4882a593Smuzhiyun.. cssclass:: longtable
1752*4882a593Smuzhiyun
1753*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_h264_pps
1754*4882a593Smuzhiyun    :header-rows:  0
1755*4882a593Smuzhiyun    :stub-columns: 0
1756*4882a593Smuzhiyun    :widths:       1 1 2
1757*4882a593Smuzhiyun
1758*4882a593Smuzhiyun    * - __u8
1759*4882a593Smuzhiyun      - ``pic_parameter_set_id``
1760*4882a593Smuzhiyun      -
1761*4882a593Smuzhiyun    * - __u8
1762*4882a593Smuzhiyun      - ``seq_parameter_set_id``
1763*4882a593Smuzhiyun      -
1764*4882a593Smuzhiyun    * - __u8
1765*4882a593Smuzhiyun      - ``num_slice_groups_minus1``
1766*4882a593Smuzhiyun      -
1767*4882a593Smuzhiyun    * - __u8
1768*4882a593Smuzhiyun      - ``num_ref_idx_l0_default_active_minus1``
1769*4882a593Smuzhiyun      -
1770*4882a593Smuzhiyun    * - __u8
1771*4882a593Smuzhiyun      - ``num_ref_idx_l1_default_active_minus1``
1772*4882a593Smuzhiyun      -
1773*4882a593Smuzhiyun    * - __u8
1774*4882a593Smuzhiyun      - ``weighted_bipred_idc``
1775*4882a593Smuzhiyun      -
1776*4882a593Smuzhiyun    * - __s8
1777*4882a593Smuzhiyun      - ``pic_init_qp_minus26``
1778*4882a593Smuzhiyun      -
1779*4882a593Smuzhiyun    * - __s8
1780*4882a593Smuzhiyun      - ``pic_init_qs_minus26``
1781*4882a593Smuzhiyun      -
1782*4882a593Smuzhiyun    * - __s8
1783*4882a593Smuzhiyun      - ``chroma_qp_index_offset``
1784*4882a593Smuzhiyun      -
1785*4882a593Smuzhiyun    * - __s8
1786*4882a593Smuzhiyun      - ``second_chroma_qp_index_offset``
1787*4882a593Smuzhiyun      -
1788*4882a593Smuzhiyun    * - __u16
1789*4882a593Smuzhiyun      - ``flags``
1790*4882a593Smuzhiyun      - See :ref:`Picture Parameter Set Flags <h264_pps_flags>`
1791*4882a593Smuzhiyun
1792*4882a593Smuzhiyun.. _h264_pps_flags:
1793*4882a593Smuzhiyun
1794*4882a593Smuzhiyun``Picture Parameter Set Flags``
1795*4882a593Smuzhiyun
1796*4882a593Smuzhiyun.. cssclass:: longtable
1797*4882a593Smuzhiyun
1798*4882a593Smuzhiyun.. flat-table::
1799*4882a593Smuzhiyun    :header-rows:  0
1800*4882a593Smuzhiyun    :stub-columns: 0
1801*4882a593Smuzhiyun    :widths:       1 1 2
1802*4882a593Smuzhiyun
1803*4882a593Smuzhiyun    * - ``V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE``
1804*4882a593Smuzhiyun      - 0x00000001
1805*4882a593Smuzhiyun      -
1806*4882a593Smuzhiyun    * - ``V4L2_H264_PPS_FLAG_BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT``
1807*4882a593Smuzhiyun      - 0x00000002
1808*4882a593Smuzhiyun      -
1809*4882a593Smuzhiyun    * - ``V4L2_H264_PPS_FLAG_WEIGHTED_PRED``
1810*4882a593Smuzhiyun      - 0x00000004
1811*4882a593Smuzhiyun      -
1812*4882a593Smuzhiyun    * - ``V4L2_H264_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT``
1813*4882a593Smuzhiyun      - 0x00000008
1814*4882a593Smuzhiyun      -
1815*4882a593Smuzhiyun    * - ``V4L2_H264_PPS_FLAG_CONSTRAINED_INTRA_PRED``
1816*4882a593Smuzhiyun      - 0x00000010
1817*4882a593Smuzhiyun      -
1818*4882a593Smuzhiyun    * - ``V4L2_H264_PPS_FLAG_REDUNDANT_PIC_CNT_PRESENT``
1819*4882a593Smuzhiyun      - 0x00000020
1820*4882a593Smuzhiyun      -
1821*4882a593Smuzhiyun    * - ``V4L2_H264_PPS_FLAG_TRANSFORM_8X8_MODE``
1822*4882a593Smuzhiyun      - 0x00000040
1823*4882a593Smuzhiyun      -
1824*4882a593Smuzhiyun    * - ``V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT``
1825*4882a593Smuzhiyun      - 0x00000080
1826*4882a593Smuzhiyun      - Indicates that ``V4L2_CID_MPEG_VIDEO_H264_SCALING_MATRIX``
1827*4882a593Smuzhiyun        must be used for this picture.
1828*4882a593Smuzhiyun
1829*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_SCALING_MATRIX (struct)``
1830*4882a593Smuzhiyun    Specifies the scaling matrix (as extracted from the bitstream) for
1831*4882a593Smuzhiyun    the associated H264 slice data. The bitstream parameters are
1832*4882a593Smuzhiyun    defined according to :ref:`h264`, section 7.4.2.1.1.1 "Scaling
1833*4882a593Smuzhiyun    List Semantics". For further documentation, refer to the above
1834*4882a593Smuzhiyun    specification, unless there is an explicit comment stating
1835*4882a593Smuzhiyun    otherwise.
1836*4882a593Smuzhiyun
1837*4882a593Smuzhiyun    .. note::
1838*4882a593Smuzhiyun
1839*4882a593Smuzhiyun       This compound control is not yet part of the public kernel API and
1840*4882a593Smuzhiyun       it is expected to change.
1841*4882a593Smuzhiyun
1842*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_h264_scaling_matrix
1843*4882a593Smuzhiyun
1844*4882a593Smuzhiyun.. cssclass:: longtable
1845*4882a593Smuzhiyun
1846*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_h264_scaling_matrix
1847*4882a593Smuzhiyun    :header-rows:  0
1848*4882a593Smuzhiyun    :stub-columns: 0
1849*4882a593Smuzhiyun    :widths:       1 1 2
1850*4882a593Smuzhiyun
1851*4882a593Smuzhiyun    * - __u8
1852*4882a593Smuzhiyun      - ``scaling_list_4x4[6][16]``
1853*4882a593Smuzhiyun      - Scaling matrix after applying the inverse scanning process.
1854*4882a593Smuzhiyun        Expected list order is Intra Y, Intra Cb, Intra Cr, Inter Y,
1855*4882a593Smuzhiyun        Inter Cb, Inter Cr. The values on each scaling list are
1856*4882a593Smuzhiyun        expected in raster scan order.
1857*4882a593Smuzhiyun    * - __u8
1858*4882a593Smuzhiyun      - ``scaling_list_8x8[6][64]``
1859*4882a593Smuzhiyun      - Scaling matrix after applying the inverse scanning process.
1860*4882a593Smuzhiyun        Expected list order is Intra Y, Inter Y, Intra Cb, Inter Cb,
1861*4882a593Smuzhiyun        Intra Cr, Inter Cr. The values on each scaling list are
1862*4882a593Smuzhiyun        expected in raster scan order.
1863*4882a593Smuzhiyun
1864*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_SLICE_PARAMS (struct)``
1865*4882a593Smuzhiyun    Specifies the slice parameters (as extracted from the bitstream)
1866*4882a593Smuzhiyun    for the associated H264 slice data. This includes the necessary
1867*4882a593Smuzhiyun    parameters for configuring a stateless hardware decoding pipeline
1868*4882a593Smuzhiyun    for H264.  The bitstream parameters are defined according to
1869*4882a593Smuzhiyun    :ref:`h264`, section 7.4.3 "Slice Header Semantics". For further
1870*4882a593Smuzhiyun    documentation, refer to the above specification, unless there is
1871*4882a593Smuzhiyun    an explicit comment stating otherwise.
1872*4882a593Smuzhiyun
1873*4882a593Smuzhiyun    .. note::
1874*4882a593Smuzhiyun
1875*4882a593Smuzhiyun       This compound control is not yet part of the public kernel API
1876*4882a593Smuzhiyun       and it is expected to change.
1877*4882a593Smuzhiyun
1878*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_h264_slice_params
1879*4882a593Smuzhiyun
1880*4882a593Smuzhiyun.. cssclass:: longtable
1881*4882a593Smuzhiyun
1882*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_h264_slice_params
1883*4882a593Smuzhiyun    :header-rows:  0
1884*4882a593Smuzhiyun    :stub-columns: 0
1885*4882a593Smuzhiyun    :widths:       1 1 2
1886*4882a593Smuzhiyun
1887*4882a593Smuzhiyun    * - __u32
1888*4882a593Smuzhiyun      - ``header_bit_size``
1889*4882a593Smuzhiyun      - Offset in bits to slice_data() from the beginning of this slice.
1890*4882a593Smuzhiyun    * - __u32
1891*4882a593Smuzhiyun      - ``first_mb_in_slice``
1892*4882a593Smuzhiyun      -
1893*4882a593Smuzhiyun    * - __u8
1894*4882a593Smuzhiyun      - ``slice_type``
1895*4882a593Smuzhiyun      -
1896*4882a593Smuzhiyun    * - __u8
1897*4882a593Smuzhiyun      - ``colour_plane_id``
1898*4882a593Smuzhiyun      -
1899*4882a593Smuzhiyun    * - __u8
1900*4882a593Smuzhiyun      - ``redundant_pic_cnt``
1901*4882a593Smuzhiyun      -
1902*4882a593Smuzhiyun    * - __u8
1903*4882a593Smuzhiyun      - ``cabac_init_idc``
1904*4882a593Smuzhiyun      -
1905*4882a593Smuzhiyun    * - __s8
1906*4882a593Smuzhiyun      - ``slice_qp_delta``
1907*4882a593Smuzhiyun      -
1908*4882a593Smuzhiyun    * - __s8
1909*4882a593Smuzhiyun      - ``slice_qs_delta``
1910*4882a593Smuzhiyun      -
1911*4882a593Smuzhiyun    * - __u8
1912*4882a593Smuzhiyun      - ``disable_deblocking_filter_idc``
1913*4882a593Smuzhiyun      -
1914*4882a593Smuzhiyun    * - __s8
1915*4882a593Smuzhiyun      - ``slice_alpha_c0_offset_div2``
1916*4882a593Smuzhiyun      -
1917*4882a593Smuzhiyun    * - __s8
1918*4882a593Smuzhiyun      - ``slice_beta_offset_div2``
1919*4882a593Smuzhiyun      -
1920*4882a593Smuzhiyun    * - __u8
1921*4882a593Smuzhiyun      - ``num_ref_idx_l0_active_minus1``
1922*4882a593Smuzhiyun      - If num_ref_idx_active_override_flag is not set, this field must be
1923*4882a593Smuzhiyun        set to the value of num_ref_idx_l0_default_active_minus1.
1924*4882a593Smuzhiyun    * - __u8
1925*4882a593Smuzhiyun      - ``num_ref_idx_l1_active_minus1``
1926*4882a593Smuzhiyun      - If num_ref_idx_active_override_flag is not set, this field must be
1927*4882a593Smuzhiyun        set to the value of num_ref_idx_l1_default_active_minus1.
1928*4882a593Smuzhiyun    * - __u8
1929*4882a593Smuzhiyun      - ``reserved``
1930*4882a593Smuzhiyun      - Applications and drivers must set this to zero.
1931*4882a593Smuzhiyun    * - struct :c:type:`v4l2_h264_reference`
1932*4882a593Smuzhiyun      - ``ref_pic_list0[32]``
1933*4882a593Smuzhiyun      - Reference picture list after applying the per-slice modifications
1934*4882a593Smuzhiyun    * - struct :c:type:`v4l2_h264_reference`
1935*4882a593Smuzhiyun      - ``ref_pic_list1[32]``
1936*4882a593Smuzhiyun      - Reference picture list after applying the per-slice modifications
1937*4882a593Smuzhiyun    * - __u32
1938*4882a593Smuzhiyun      - ``flags``
1939*4882a593Smuzhiyun      - See :ref:`Slice Parameter Flags <h264_slice_flags>`
1940*4882a593Smuzhiyun
1941*4882a593Smuzhiyun.. _h264_slice_flags:
1942*4882a593Smuzhiyun
1943*4882a593Smuzhiyun``Slice Parameter Set Flags``
1944*4882a593Smuzhiyun
1945*4882a593Smuzhiyun.. cssclass:: longtable
1946*4882a593Smuzhiyun
1947*4882a593Smuzhiyun.. flat-table::
1948*4882a593Smuzhiyun    :header-rows:  0
1949*4882a593Smuzhiyun    :stub-columns: 0
1950*4882a593Smuzhiyun    :widths:       1 1 2
1951*4882a593Smuzhiyun
1952*4882a593Smuzhiyun    * - ``V4L2_H264_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED``
1953*4882a593Smuzhiyun      - 0x00000001
1954*4882a593Smuzhiyun      -
1955*4882a593Smuzhiyun    * - ``V4L2_H264_SLICE_FLAG_SP_FOR_SWITCH``
1956*4882a593Smuzhiyun      - 0x00000002
1957*4882a593Smuzhiyun      -
1958*4882a593Smuzhiyun
1959*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_PRED_WEIGHTS (struct)``
1960*4882a593Smuzhiyun    Prediction weight table defined according to :ref:`h264`,
1961*4882a593Smuzhiyun    section 7.4.3.2 "Prediction Weight Table Semantics".
1962*4882a593Smuzhiyun    The prediction weight table must be passed by applications
1963*4882a593Smuzhiyun    under the conditions explained in section 7.3.3 "Slice header
1964*4882a593Smuzhiyun    syntax".
1965*4882a593Smuzhiyun
1966*4882a593Smuzhiyun    .. note::
1967*4882a593Smuzhiyun
1968*4882a593Smuzhiyun       This compound control is not yet part of the public kernel API and
1969*4882a593Smuzhiyun       it is expected to change.
1970*4882a593Smuzhiyun
1971*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_h264_pred_weights
1972*4882a593Smuzhiyun
1973*4882a593Smuzhiyun.. cssclass:: longtable
1974*4882a593Smuzhiyun
1975*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_h264_pred_weights
1976*4882a593Smuzhiyun    :header-rows:  0
1977*4882a593Smuzhiyun    :stub-columns: 0
1978*4882a593Smuzhiyun    :widths:       1 1 2
1979*4882a593Smuzhiyun
1980*4882a593Smuzhiyun    * - __u16
1981*4882a593Smuzhiyun      - ``luma_log2_weight_denom``
1982*4882a593Smuzhiyun      -
1983*4882a593Smuzhiyun    * - __u16
1984*4882a593Smuzhiyun      - ``chroma_log2_weight_denom``
1985*4882a593Smuzhiyun      -
1986*4882a593Smuzhiyun    * - struct :c:type:`v4l2_h264_weight_factors`
1987*4882a593Smuzhiyun      - ``weight_factors[2]``
1988*4882a593Smuzhiyun      - The weight factors at index 0 are the weight factors for the reference
1989*4882a593Smuzhiyun        list 0, the one at index 1 for the reference list 1.
1990*4882a593Smuzhiyun
1991*4882a593Smuzhiyun.. c:type:: v4l2_h264_weight_factors
1992*4882a593Smuzhiyun
1993*4882a593Smuzhiyun.. cssclass:: longtable
1994*4882a593Smuzhiyun
1995*4882a593Smuzhiyun.. flat-table:: struct v4l2_h264_weight_factors
1996*4882a593Smuzhiyun    :header-rows:  0
1997*4882a593Smuzhiyun    :stub-columns: 0
1998*4882a593Smuzhiyun    :widths:       1 1 2
1999*4882a593Smuzhiyun
2000*4882a593Smuzhiyun    * - __s16
2001*4882a593Smuzhiyun      - ``luma_weight[32]``
2002*4882a593Smuzhiyun      -
2003*4882a593Smuzhiyun    * - __s16
2004*4882a593Smuzhiyun      - ``luma_offset[32]``
2005*4882a593Smuzhiyun      -
2006*4882a593Smuzhiyun    * - __s16
2007*4882a593Smuzhiyun      - ``chroma_weight[32][2]``
2008*4882a593Smuzhiyun      -
2009*4882a593Smuzhiyun    * - __s16
2010*4882a593Smuzhiyun      - ``chroma_offset[32][2]``
2011*4882a593Smuzhiyun      -
2012*4882a593Smuzhiyun
2013*4882a593Smuzhiyun``Picture Reference``
2014*4882a593Smuzhiyun
2015*4882a593Smuzhiyun.. c:type:: v4l2_h264_reference
2016*4882a593Smuzhiyun
2017*4882a593Smuzhiyun.. cssclass:: longtable
2018*4882a593Smuzhiyun
2019*4882a593Smuzhiyun.. flat-table:: struct v4l2_h264_reference
2020*4882a593Smuzhiyun    :header-rows:  0
2021*4882a593Smuzhiyun    :stub-columns: 0
2022*4882a593Smuzhiyun    :widths:       1 1 2
2023*4882a593Smuzhiyun
2024*4882a593Smuzhiyun    * - __u8
2025*4882a593Smuzhiyun      - ``fields``
2026*4882a593Smuzhiyun      - Specifies how the picture is referenced. See :ref:`Reference Fields <h264_ref_fields>`
2027*4882a593Smuzhiyun    * - __u8
2028*4882a593Smuzhiyun      - ``index``
2029*4882a593Smuzhiyun      - Index into the :c:type:`v4l2_ctrl_h264_decode_params`.dpb array.
2030*4882a593Smuzhiyun
2031*4882a593Smuzhiyun.. _h264_ref_fields:
2032*4882a593Smuzhiyun
2033*4882a593Smuzhiyun``Reference Fields``
2034*4882a593Smuzhiyun
2035*4882a593Smuzhiyun.. cssclass:: longtable
2036*4882a593Smuzhiyun
2037*4882a593Smuzhiyun.. flat-table::
2038*4882a593Smuzhiyun    :header-rows:  0
2039*4882a593Smuzhiyun    :stub-columns: 0
2040*4882a593Smuzhiyun    :widths:       1 1 2
2041*4882a593Smuzhiyun
2042*4882a593Smuzhiyun    * - ``V4L2_H264_TOP_FIELD_REF``
2043*4882a593Smuzhiyun      - 0x1
2044*4882a593Smuzhiyun      - The top field in field pair is used for short-term reference.
2045*4882a593Smuzhiyun    * - ``V4L2_H264_BOTTOM_FIELD_REF``
2046*4882a593Smuzhiyun      - 0x2
2047*4882a593Smuzhiyun      - The bottom field in field pair is used for short-term reference.
2048*4882a593Smuzhiyun    * - ``V4L2_H264_FRAME_REF``
2049*4882a593Smuzhiyun      - 0x3
2050*4882a593Smuzhiyun      - The frame (or the top/bottom fields, if it's a field pair)
2051*4882a593Smuzhiyun        is used for short-term reference.
2052*4882a593Smuzhiyun
2053*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_DECODE_PARAMS (struct)``
2054*4882a593Smuzhiyun    Specifies the decode parameters (as extracted from the bitstream)
2055*4882a593Smuzhiyun    for the associated H264 slice data. This includes the necessary
2056*4882a593Smuzhiyun    parameters for configuring a stateless hardware decoding pipeline
2057*4882a593Smuzhiyun    for H264. The bitstream parameters are defined according to
2058*4882a593Smuzhiyun    :ref:`h264`. For further documentation, refer to the above
2059*4882a593Smuzhiyun    specification, unless there is an explicit comment stating
2060*4882a593Smuzhiyun    otherwise.
2061*4882a593Smuzhiyun
2062*4882a593Smuzhiyun    .. note::
2063*4882a593Smuzhiyun
2064*4882a593Smuzhiyun       This compound control is not yet part of the public kernel API and
2065*4882a593Smuzhiyun       it is expected to change.
2066*4882a593Smuzhiyun
2067*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_h264_decode_params
2068*4882a593Smuzhiyun
2069*4882a593Smuzhiyun.. cssclass:: longtable
2070*4882a593Smuzhiyun
2071*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_h264_decode_params
2072*4882a593Smuzhiyun    :header-rows:  0
2073*4882a593Smuzhiyun    :stub-columns: 0
2074*4882a593Smuzhiyun    :widths:       1 1 2
2075*4882a593Smuzhiyun
2076*4882a593Smuzhiyun    * - struct :c:type:`v4l2_h264_dpb_entry`
2077*4882a593Smuzhiyun      - ``dpb[16]``
2078*4882a593Smuzhiyun      -
2079*4882a593Smuzhiyun    * - __u16
2080*4882a593Smuzhiyun      - ``nal_ref_idc``
2081*4882a593Smuzhiyun      - NAL reference ID value coming from the NAL Unit header
2082*4882a593Smuzhiyun    * - __u16
2083*4882a593Smuzhiyun      - ``frame_num``
2084*4882a593Smuzhiyun      -
2085*4882a593Smuzhiyun    * - __s32
2086*4882a593Smuzhiyun      - ``top_field_order_cnt``
2087*4882a593Smuzhiyun      - Picture Order Count for the coded top field
2088*4882a593Smuzhiyun    * - __s32
2089*4882a593Smuzhiyun      - ``bottom_field_order_cnt``
2090*4882a593Smuzhiyun      - Picture Order Count for the coded bottom field
2091*4882a593Smuzhiyun    * - __u16
2092*4882a593Smuzhiyun      - ``idr_pic_id``
2093*4882a593Smuzhiyun      -
2094*4882a593Smuzhiyun    * - __u16
2095*4882a593Smuzhiyun      - ``pic_order_cnt_lsb``
2096*4882a593Smuzhiyun      -
2097*4882a593Smuzhiyun    * - __s32
2098*4882a593Smuzhiyun      - ``delta_pic_order_cnt_bottom``
2099*4882a593Smuzhiyun      -
2100*4882a593Smuzhiyun    * - __s32
2101*4882a593Smuzhiyun      - ``delta_pic_order_cnt0``
2102*4882a593Smuzhiyun      -
2103*4882a593Smuzhiyun    * - __s32
2104*4882a593Smuzhiyun      - ``delta_pic_order_cnt1``
2105*4882a593Smuzhiyun      -
2106*4882a593Smuzhiyun    * - __u32
2107*4882a593Smuzhiyun      - ``dec_ref_pic_marking_bit_size``
2108*4882a593Smuzhiyun      - Size in bits of the dec_ref_pic_marking() syntax element.
2109*4882a593Smuzhiyun    * - __u32
2110*4882a593Smuzhiyun      - ``pic_order_cnt_bit_size``
2111*4882a593Smuzhiyun      - Combined size in bits of the picture order count related syntax
2112*4882a593Smuzhiyun        elements: pic_order_cnt_lsb, delta_pic_order_cnt_bottom,
2113*4882a593Smuzhiyun        delta_pic_order_cnt0, and delta_pic_order_cnt1.
2114*4882a593Smuzhiyun    * - __u32
2115*4882a593Smuzhiyun      - ``slice_group_change_cycle``
2116*4882a593Smuzhiyun      -
2117*4882a593Smuzhiyun    * - __u32
2118*4882a593Smuzhiyun      - ``reserved``
2119*4882a593Smuzhiyun      - Applications and drivers must set this to zero.
2120*4882a593Smuzhiyun    * - __u32
2121*4882a593Smuzhiyun      - ``flags``
2122*4882a593Smuzhiyun      - See :ref:`Decode Parameters Flags <h264_decode_params_flags>`
2123*4882a593Smuzhiyun
2124*4882a593Smuzhiyun.. _h264_decode_params_flags:
2125*4882a593Smuzhiyun
2126*4882a593Smuzhiyun``Decode Parameters Flags``
2127*4882a593Smuzhiyun
2128*4882a593Smuzhiyun.. cssclass:: longtable
2129*4882a593Smuzhiyun
2130*4882a593Smuzhiyun.. flat-table::
2131*4882a593Smuzhiyun    :header-rows:  0
2132*4882a593Smuzhiyun    :stub-columns: 0
2133*4882a593Smuzhiyun    :widths:       1 1 2
2134*4882a593Smuzhiyun
2135*4882a593Smuzhiyun    * - ``V4L2_H264_DECODE_PARAM_FLAG_IDR_PIC``
2136*4882a593Smuzhiyun      - 0x00000001
2137*4882a593Smuzhiyun      - That picture is an IDR picture
2138*4882a593Smuzhiyun    * - ``V4L2_H264_DECODE_PARAM_FLAG_FIELD_PIC``
2139*4882a593Smuzhiyun      - 0x00000002
2140*4882a593Smuzhiyun      -
2141*4882a593Smuzhiyun    * - ``V4L2_H264_DECODE_PARAM_FLAG_BOTTOM_FIELD``
2142*4882a593Smuzhiyun      - 0x00000004
2143*4882a593Smuzhiyun      -
2144*4882a593Smuzhiyun
2145*4882a593Smuzhiyun.. c:type:: v4l2_h264_dpb_entry
2146*4882a593Smuzhiyun
2147*4882a593Smuzhiyun.. cssclass:: longtable
2148*4882a593Smuzhiyun
2149*4882a593Smuzhiyun.. flat-table:: struct v4l2_h264_dpb_entry
2150*4882a593Smuzhiyun    :header-rows:  0
2151*4882a593Smuzhiyun    :stub-columns: 0
2152*4882a593Smuzhiyun    :widths:       1 1 2
2153*4882a593Smuzhiyun
2154*4882a593Smuzhiyun    * - __u64
2155*4882a593Smuzhiyun      - ``reference_ts``
2156*4882a593Smuzhiyun      - Timestamp of the V4L2 capture buffer to use as reference, used
2157*4882a593Smuzhiyun        with B-coded and P-coded frames. The timestamp refers to the
2158*4882a593Smuzhiyun        ``timestamp`` field in struct :c:type:`v4l2_buffer`. Use the
2159*4882a593Smuzhiyun        :c:func:`v4l2_timeval_to_ns()` function to convert the struct
2160*4882a593Smuzhiyun        :c:type:`timeval` in struct :c:type:`v4l2_buffer` to a __u64.
2161*4882a593Smuzhiyun    * - __u32
2162*4882a593Smuzhiyun      - ``pic_num``
2163*4882a593Smuzhiyun      -
2164*4882a593Smuzhiyun    * - __u16
2165*4882a593Smuzhiyun      - ``frame_num``
2166*4882a593Smuzhiyun      -
2167*4882a593Smuzhiyun    * - __u8
2168*4882a593Smuzhiyun      - ``fields``
2169*4882a593Smuzhiyun      - Specifies how the DPB entry is referenced. See :ref:`Reference Fields <h264_ref_fields>`
2170*4882a593Smuzhiyun    * - __u8
2171*4882a593Smuzhiyun      - ``reserved[5]``
2172*4882a593Smuzhiyun      - Applications and drivers must set this to zero.
2173*4882a593Smuzhiyun    * - __s32
2174*4882a593Smuzhiyun      - ``top_field_order_cnt``
2175*4882a593Smuzhiyun      -
2176*4882a593Smuzhiyun    * - __s32
2177*4882a593Smuzhiyun      - ``bottom_field_order_cnt``
2178*4882a593Smuzhiyun      -
2179*4882a593Smuzhiyun    * - __u32
2180*4882a593Smuzhiyun      - ``flags``
2181*4882a593Smuzhiyun      - See :ref:`DPB Entry Flags <h264_dpb_flags>`
2182*4882a593Smuzhiyun
2183*4882a593Smuzhiyun.. _h264_dpb_flags:
2184*4882a593Smuzhiyun
2185*4882a593Smuzhiyun``DPB Entries Flags``
2186*4882a593Smuzhiyun
2187*4882a593Smuzhiyun.. cssclass:: longtable
2188*4882a593Smuzhiyun
2189*4882a593Smuzhiyun.. flat-table::
2190*4882a593Smuzhiyun    :header-rows:  0
2191*4882a593Smuzhiyun    :stub-columns: 0
2192*4882a593Smuzhiyun    :widths:       1 1 2
2193*4882a593Smuzhiyun
2194*4882a593Smuzhiyun    * - ``V4L2_H264_DPB_ENTRY_FLAG_VALID``
2195*4882a593Smuzhiyun      - 0x00000001
2196*4882a593Smuzhiyun      - The DPB entry is valid (non-empty) and should be considered.
2197*4882a593Smuzhiyun    * - ``V4L2_H264_DPB_ENTRY_FLAG_ACTIVE``
2198*4882a593Smuzhiyun      - 0x00000002
2199*4882a593Smuzhiyun      - The DPB entry is used for reference.
2200*4882a593Smuzhiyun    * - ``V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM``
2201*4882a593Smuzhiyun      - 0x00000004
2202*4882a593Smuzhiyun      - The DPB entry is used for long-term reference.
2203*4882a593Smuzhiyun    * - ``V4L2_H264_DPB_ENTRY_FLAG_FIELD``
2204*4882a593Smuzhiyun      - 0x00000008
2205*4882a593Smuzhiyun      - The DPB entry is a single field or a complementary field pair.
2206*4882a593Smuzhiyun
2207*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_DECODE_MODE (enum)``
2208*4882a593Smuzhiyun    Specifies the decoding mode to use. Currently exposes slice-based and
2209*4882a593Smuzhiyun    frame-based decoding but new modes might be added later on.
2210*4882a593Smuzhiyun    This control is used as a modifier for V4L2_PIX_FMT_H264_SLICE
2211*4882a593Smuzhiyun    pixel format. Applications that support V4L2_PIX_FMT_H264_SLICE
2212*4882a593Smuzhiyun    are required to set this control in order to specify the decoding mode
2213*4882a593Smuzhiyun    that is expected for the buffer.
2214*4882a593Smuzhiyun    Drivers may expose a single or multiple decoding modes, depending
2215*4882a593Smuzhiyun    on what they can support.
2216*4882a593Smuzhiyun
2217*4882a593Smuzhiyun    .. note::
2218*4882a593Smuzhiyun
2219*4882a593Smuzhiyun       This menu control is not yet part of the public kernel API and
2220*4882a593Smuzhiyun       it is expected to change.
2221*4882a593Smuzhiyun
2222*4882a593Smuzhiyun.. c:type:: v4l2_mpeg_video_h264_decode_mode
2223*4882a593Smuzhiyun
2224*4882a593Smuzhiyun.. cssclass:: longtable
2225*4882a593Smuzhiyun
2226*4882a593Smuzhiyun.. flat-table::
2227*4882a593Smuzhiyun    :header-rows:  0
2228*4882a593Smuzhiyun    :stub-columns: 0
2229*4882a593Smuzhiyun    :widths:       1 1 2
2230*4882a593Smuzhiyun
2231*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_DECODE_MODE_SLICE_BASED``
2232*4882a593Smuzhiyun      - 0
2233*4882a593Smuzhiyun      - Decoding is done at the slice granularity.
2234*4882a593Smuzhiyun        The OUTPUT buffer must contain a single slice.
2235*4882a593Smuzhiyun        When this mode is selected, the ``V4L2_CID_MPEG_VIDEO_H264_SLICE_PARAMS``
2236*4882a593Smuzhiyun        control shall be set. When multiple slices compose a frame,
2237*4882a593Smuzhiyun        use of ``V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF`` flag
2238*4882a593Smuzhiyun        is required.
2239*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_DECODE_MODE_FRAME_BASED``
2240*4882a593Smuzhiyun      - 1
2241*4882a593Smuzhiyun      - Decoding is done at the frame granularity,
2242*4882a593Smuzhiyun        The OUTPUT buffer must contain all slices needed to decode the
2243*4882a593Smuzhiyun        frame. The OUTPUT buffer must also contain both fields.
2244*4882a593Smuzhiyun        This mode will be supported by devices that
2245*4882a593Smuzhiyun        parse the slice(s) header(s) in hardware. When this mode is
2246*4882a593Smuzhiyun        selected, the ``V4L2_CID_MPEG_VIDEO_H264_SLICE_PARAMS``
2247*4882a593Smuzhiyun        control shall not be set.
2248*4882a593Smuzhiyun
2249*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_START_CODE (enum)``
2250*4882a593Smuzhiyun    Specifies the H264 slice start code expected for each slice.
2251*4882a593Smuzhiyun    This control is used as a modifier for V4L2_PIX_FMT_H264_SLICE
2252*4882a593Smuzhiyun    pixel format. Applications that support V4L2_PIX_FMT_H264_SLICE
2253*4882a593Smuzhiyun    are required to set this control in order to specify the start code
2254*4882a593Smuzhiyun    that is expected for the buffer.
2255*4882a593Smuzhiyun    Drivers may expose a single or multiple start codes, depending
2256*4882a593Smuzhiyun    on what they can support.
2257*4882a593Smuzhiyun
2258*4882a593Smuzhiyun    .. note::
2259*4882a593Smuzhiyun
2260*4882a593Smuzhiyun       This menu control is not yet part of the public kernel API and
2261*4882a593Smuzhiyun       it is expected to change.
2262*4882a593Smuzhiyun
2263*4882a593Smuzhiyun.. c:type:: v4l2_mpeg_video_h264_start_code
2264*4882a593Smuzhiyun
2265*4882a593Smuzhiyun.. cssclass:: longtable
2266*4882a593Smuzhiyun
2267*4882a593Smuzhiyun.. flat-table::
2268*4882a593Smuzhiyun    :header-rows:  0
2269*4882a593Smuzhiyun    :stub-columns: 0
2270*4882a593Smuzhiyun    :widths:       1 1 2
2271*4882a593Smuzhiyun
2272*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_START_CODE_NONE``
2273*4882a593Smuzhiyun      - 0
2274*4882a593Smuzhiyun      - Selecting this value specifies that H264 slices are passed
2275*4882a593Smuzhiyun        to the driver without any start code.
2276*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_H264_START_CODE_ANNEX_B``
2277*4882a593Smuzhiyun      - 1
2278*4882a593Smuzhiyun      - Selecting this value specifies that H264 slices are expected
2279*4882a593Smuzhiyun        to be prefixed by Annex B start codes. According to :ref:`h264`
2280*4882a593Smuzhiyun        valid start codes can be 3-bytes 0x000001 or 4-bytes 0x00000001.
2281*4882a593Smuzhiyun
2282*4882a593Smuzhiyun.. _v4l2-mpeg-mpeg2:
2283*4882a593Smuzhiyun
2284*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_PARAMS (struct)``
2285*4882a593Smuzhiyun    Specifies the slice parameters (as extracted from the bitstream) for the
2286*4882a593Smuzhiyun    associated MPEG-2 slice data. This includes the necessary parameters for
2287*4882a593Smuzhiyun    configuring a stateless hardware decoding pipeline for MPEG-2.
2288*4882a593Smuzhiyun    The bitstream parameters are defined according to :ref:`mpeg2part2`.
2289*4882a593Smuzhiyun
2290*4882a593Smuzhiyun    .. note::
2291*4882a593Smuzhiyun
2292*4882a593Smuzhiyun       This compound control is not yet part of the public kernel API and
2293*4882a593Smuzhiyun       it is expected to change.
2294*4882a593Smuzhiyun
2295*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_mpeg2_slice_params
2296*4882a593Smuzhiyun
2297*4882a593Smuzhiyun.. cssclass:: longtable
2298*4882a593Smuzhiyun
2299*4882a593Smuzhiyun.. tabularcolumns:: |p{5.8cm}|p{4.8cm}|p{6.6cm}|
2300*4882a593Smuzhiyun
2301*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_mpeg2_slice_params
2302*4882a593Smuzhiyun    :header-rows:  0
2303*4882a593Smuzhiyun    :stub-columns: 0
2304*4882a593Smuzhiyun    :widths:       1 1 2
2305*4882a593Smuzhiyun
2306*4882a593Smuzhiyun    * - __u32
2307*4882a593Smuzhiyun      - ``bit_size``
2308*4882a593Smuzhiyun      - Size (in bits) of the current slice data.
2309*4882a593Smuzhiyun    * - __u32
2310*4882a593Smuzhiyun      - ``data_bit_offset``
2311*4882a593Smuzhiyun      - Offset (in bits) to the video data in the current slice data.
2312*4882a593Smuzhiyun    * - struct :c:type:`v4l2_mpeg2_sequence`
2313*4882a593Smuzhiyun      - ``sequence``
2314*4882a593Smuzhiyun      - Structure with MPEG-2 sequence metadata, merging relevant fields from
2315*4882a593Smuzhiyun	the sequence header and sequence extension parts of the bitstream.
2316*4882a593Smuzhiyun    * - struct :c:type:`v4l2_mpeg2_picture`
2317*4882a593Smuzhiyun      - ``picture``
2318*4882a593Smuzhiyun      - Structure with MPEG-2 picture metadata, merging relevant fields from
2319*4882a593Smuzhiyun	the picture header and picture coding extension parts of the bitstream.
2320*4882a593Smuzhiyun    * - __u64
2321*4882a593Smuzhiyun      - ``backward_ref_ts``
2322*4882a593Smuzhiyun      - Timestamp of the V4L2 capture buffer to use as backward reference, used
2323*4882a593Smuzhiyun        with B-coded and P-coded frames. The timestamp refers to the
2324*4882a593Smuzhiyun	``timestamp`` field in struct :c:type:`v4l2_buffer`. Use the
2325*4882a593Smuzhiyun	:c:func:`v4l2_timeval_to_ns()` function to convert the struct
2326*4882a593Smuzhiyun	:c:type:`timeval` in struct :c:type:`v4l2_buffer` to a __u64.
2327*4882a593Smuzhiyun    * - __u64
2328*4882a593Smuzhiyun      - ``forward_ref_ts``
2329*4882a593Smuzhiyun      - Timestamp for the V4L2 capture buffer to use as forward reference, used
2330*4882a593Smuzhiyun        with B-coded frames. The timestamp refers to the ``timestamp`` field in
2331*4882a593Smuzhiyun	struct :c:type:`v4l2_buffer`. Use the :c:func:`v4l2_timeval_to_ns()`
2332*4882a593Smuzhiyun	function to convert the struct :c:type:`timeval` in struct
2333*4882a593Smuzhiyun	:c:type:`v4l2_buffer` to a __u64.
2334*4882a593Smuzhiyun    * - __u32
2335*4882a593Smuzhiyun      - ``quantiser_scale_code``
2336*4882a593Smuzhiyun      - Code used to determine the quantization scale to use for the IDCT.
2337*4882a593Smuzhiyun
2338*4882a593Smuzhiyun.. c:type:: v4l2_mpeg2_sequence
2339*4882a593Smuzhiyun
2340*4882a593Smuzhiyun.. cssclass:: longtable
2341*4882a593Smuzhiyun
2342*4882a593Smuzhiyun.. tabularcolumns:: |p{1.5cm}|p{6.3cm}|p{9.4cm}|
2343*4882a593Smuzhiyun
2344*4882a593Smuzhiyun.. flat-table:: struct v4l2_mpeg2_sequence
2345*4882a593Smuzhiyun    :header-rows:  0
2346*4882a593Smuzhiyun    :stub-columns: 0
2347*4882a593Smuzhiyun    :widths:       1 1 2
2348*4882a593Smuzhiyun
2349*4882a593Smuzhiyun    * - __u16
2350*4882a593Smuzhiyun      - ``horizontal_size``
2351*4882a593Smuzhiyun      - The width of the displayable part of the frame's luminance component.
2352*4882a593Smuzhiyun    * - __u16
2353*4882a593Smuzhiyun      - ``vertical_size``
2354*4882a593Smuzhiyun      - The height of the displayable part of the frame's luminance component.
2355*4882a593Smuzhiyun    * - __u32
2356*4882a593Smuzhiyun      - ``vbv_buffer_size``
2357*4882a593Smuzhiyun      - Used to calculate the required size of the video buffering verifier,
2358*4882a593Smuzhiyun	defined (in bits) as: 16 * 1024 * vbv_buffer_size.
2359*4882a593Smuzhiyun    * - __u16
2360*4882a593Smuzhiyun      - ``profile_and_level_indication``
2361*4882a593Smuzhiyun      - The current profile and level indication as extracted from the
2362*4882a593Smuzhiyun	bitstream.
2363*4882a593Smuzhiyun    * - __u8
2364*4882a593Smuzhiyun      - ``progressive_sequence``
2365*4882a593Smuzhiyun      - Indication that all the frames for the sequence are progressive instead
2366*4882a593Smuzhiyun	of interlaced.
2367*4882a593Smuzhiyun    * - __u8
2368*4882a593Smuzhiyun      - ``chroma_format``
2369*4882a593Smuzhiyun      - The chrominance sub-sampling format (1: 4:2:0, 2: 4:2:2, 3: 4:4:4).
2370*4882a593Smuzhiyun
2371*4882a593Smuzhiyun.. c:type:: v4l2_mpeg2_picture
2372*4882a593Smuzhiyun
2373*4882a593Smuzhiyun.. cssclass:: longtable
2374*4882a593Smuzhiyun
2375*4882a593Smuzhiyun.. tabularcolumns:: |p{1.5cm}|p{6.3cm}|p{9.4cm}|
2376*4882a593Smuzhiyun
2377*4882a593Smuzhiyun.. flat-table:: struct v4l2_mpeg2_picture
2378*4882a593Smuzhiyun    :header-rows:  0
2379*4882a593Smuzhiyun    :stub-columns: 0
2380*4882a593Smuzhiyun    :widths:       1 1 2
2381*4882a593Smuzhiyun
2382*4882a593Smuzhiyun    * - __u8
2383*4882a593Smuzhiyun      - ``picture_coding_type``
2384*4882a593Smuzhiyun      - Picture coding type for the frame covered by the current slice
2385*4882a593Smuzhiyun	(V4L2_MPEG2_PICTURE_CODING_TYPE_I, V4L2_MPEG2_PICTURE_CODING_TYPE_P or
2386*4882a593Smuzhiyun	V4L2_MPEG2_PICTURE_CODING_TYPE_B).
2387*4882a593Smuzhiyun    * - __u8
2388*4882a593Smuzhiyun      - ``f_code[2][2]``
2389*4882a593Smuzhiyun      - Motion vector codes.
2390*4882a593Smuzhiyun    * - __u8
2391*4882a593Smuzhiyun      - ``intra_dc_precision``
2392*4882a593Smuzhiyun      - Precision of Discrete Cosine transform (0: 8 bits precision,
2393*4882a593Smuzhiyun	1: 9 bits precision, 2: 10 bits precision, 3: 11 bits precision).
2394*4882a593Smuzhiyun    * - __u8
2395*4882a593Smuzhiyun      - ``picture_structure``
2396*4882a593Smuzhiyun      - Picture structure (1: interlaced top field, 2: interlaced bottom field,
2397*4882a593Smuzhiyun	3: progressive frame).
2398*4882a593Smuzhiyun    * - __u8
2399*4882a593Smuzhiyun      - ``top_field_first``
2400*4882a593Smuzhiyun      - If set to 1 and interlaced stream, top field is output first.
2401*4882a593Smuzhiyun    * - __u8
2402*4882a593Smuzhiyun      - ``frame_pred_frame_dct``
2403*4882a593Smuzhiyun      - If set to 1, only frame-DCT and frame prediction are used.
2404*4882a593Smuzhiyun    * - __u8
2405*4882a593Smuzhiyun      - ``concealment_motion_vectors``
2406*4882a593Smuzhiyun      -  If set to 1, motion vectors are coded for intra macroblocks.
2407*4882a593Smuzhiyun    * - __u8
2408*4882a593Smuzhiyun      - ``q_scale_type``
2409*4882a593Smuzhiyun      - This flag affects the inverse quantization process.
2410*4882a593Smuzhiyun    * - __u8
2411*4882a593Smuzhiyun      - ``intra_vlc_format``
2412*4882a593Smuzhiyun      - This flag affects the decoding of transform coefficient data.
2413*4882a593Smuzhiyun    * - __u8
2414*4882a593Smuzhiyun      - ``alternate_scan``
2415*4882a593Smuzhiyun      - This flag affects the decoding of transform coefficient data.
2416*4882a593Smuzhiyun    * - __u8
2417*4882a593Smuzhiyun      - ``repeat_first_field``
2418*4882a593Smuzhiyun      - This flag affects the decoding process of progressive frames.
2419*4882a593Smuzhiyun    * - __u16
2420*4882a593Smuzhiyun      - ``progressive_frame``
2421*4882a593Smuzhiyun      - Indicates whether the current frame is progressive.
2422*4882a593Smuzhiyun
2423*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG2_QUANTIZATION (struct)``
2424*4882a593Smuzhiyun    Specifies quantization matrices (as extracted from the bitstream) for the
2425*4882a593Smuzhiyun    associated MPEG-2 slice data.
2426*4882a593Smuzhiyun
2427*4882a593Smuzhiyun    .. note::
2428*4882a593Smuzhiyun
2429*4882a593Smuzhiyun       This compound control is not yet part of the public kernel API and
2430*4882a593Smuzhiyun       it is expected to change.
2431*4882a593Smuzhiyun
2432*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_mpeg2_quantization
2433*4882a593Smuzhiyun
2434*4882a593Smuzhiyun.. cssclass:: longtable
2435*4882a593Smuzhiyun
2436*4882a593Smuzhiyun.. tabularcolumns:: |p{1.2cm}|p{8.0cm}|p{7.4cm}|
2437*4882a593Smuzhiyun
2438*4882a593Smuzhiyun.. raw:: latex
2439*4882a593Smuzhiyun
2440*4882a593Smuzhiyun    \small
2441*4882a593Smuzhiyun
2442*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_mpeg2_quantization
2443*4882a593Smuzhiyun    :header-rows:  0
2444*4882a593Smuzhiyun    :stub-columns: 0
2445*4882a593Smuzhiyun    :widths:       1 1 2
2446*4882a593Smuzhiyun
2447*4882a593Smuzhiyun    * - __u8
2448*4882a593Smuzhiyun      - ``load_intra_quantiser_matrix``
2449*4882a593Smuzhiyun      - One bit to indicate whether to load the ``intra_quantiser_matrix`` data.
2450*4882a593Smuzhiyun    * - __u8
2451*4882a593Smuzhiyun      - ``load_non_intra_quantiser_matrix``
2452*4882a593Smuzhiyun      - One bit to indicate whether to load the ``non_intra_quantiser_matrix``
2453*4882a593Smuzhiyun	data.
2454*4882a593Smuzhiyun    * - __u8
2455*4882a593Smuzhiyun      - ``load_chroma_intra_quantiser_matrix``
2456*4882a593Smuzhiyun      - One bit to indicate whether to load the
2457*4882a593Smuzhiyun	``chroma_intra_quantiser_matrix`` data, only relevant for non-4:2:0 YUV
2458*4882a593Smuzhiyun	formats.
2459*4882a593Smuzhiyun    * - __u8
2460*4882a593Smuzhiyun      - ``load_chroma_non_intra_quantiser_matrix``
2461*4882a593Smuzhiyun      - One bit to indicate whether to load the
2462*4882a593Smuzhiyun	``chroma_non_intra_quantiser_matrix`` data, only relevant for non-4:2:0
2463*4882a593Smuzhiyun	YUV formats.
2464*4882a593Smuzhiyun    * - __u8
2465*4882a593Smuzhiyun      - ``intra_quantiser_matrix[64]``
2466*4882a593Smuzhiyun      - The quantization matrix coefficients for intra-coded frames, in zigzag
2467*4882a593Smuzhiyun	scanning order. It is relevant for both luma and chroma components,
2468*4882a593Smuzhiyun	although it can be superseded by the chroma-specific matrix for
2469*4882a593Smuzhiyun	non-4:2:0 YUV formats.
2470*4882a593Smuzhiyun    * - __u8
2471*4882a593Smuzhiyun      - ``non_intra_quantiser_matrix[64]``
2472*4882a593Smuzhiyun      - The quantization matrix coefficients for non-intra-coded frames, in
2473*4882a593Smuzhiyun	zigzag scanning order. It is relevant for both luma and chroma
2474*4882a593Smuzhiyun	components, although it can be superseded by the chroma-specific matrix
2475*4882a593Smuzhiyun	for non-4:2:0 YUV formats.
2476*4882a593Smuzhiyun    * - __u8
2477*4882a593Smuzhiyun      - ``chroma_intra_quantiser_matrix[64]``
2478*4882a593Smuzhiyun      - The quantization matrix coefficients for the chominance component of
2479*4882a593Smuzhiyun	intra-coded frames, in zigzag scanning order. Only relevant for
2480*4882a593Smuzhiyun	non-4:2:0 YUV formats.
2481*4882a593Smuzhiyun    * - __u8
2482*4882a593Smuzhiyun      - ``chroma_non_intra_quantiser_matrix[64]``
2483*4882a593Smuzhiyun      - The quantization matrix coefficients for the chrominance component of
2484*4882a593Smuzhiyun	non-intra-coded frames, in zigzag scanning order. Only relevant for
2485*4882a593Smuzhiyun	non-4:2:0 YUV formats.
2486*4882a593Smuzhiyun
2487*4882a593Smuzhiyun``V4L2_CID_FWHT_I_FRAME_QP (integer)``
2488*4882a593Smuzhiyun    Quantization parameter for an I frame for FWHT. Valid range: from 1
2489*4882a593Smuzhiyun    to 31.
2490*4882a593Smuzhiyun
2491*4882a593Smuzhiyun``V4L2_CID_FWHT_P_FRAME_QP (integer)``
2492*4882a593Smuzhiyun    Quantization parameter for a P frame for FWHT. Valid range: from 1
2493*4882a593Smuzhiyun    to 31.
2494*4882a593Smuzhiyun
2495*4882a593Smuzhiyun.. _v4l2-mpeg-vp8:
2496*4882a593Smuzhiyun
2497*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VP8_FRAME_HEADER (struct)``
2498*4882a593Smuzhiyun    Specifies the frame parameters for the associated VP8 parsed frame data.
2499*4882a593Smuzhiyun    This includes the necessary parameters for
2500*4882a593Smuzhiyun    configuring a stateless hardware decoding pipeline for VP8.
2501*4882a593Smuzhiyun    The bitstream parameters are defined according to :ref:`vp8`.
2502*4882a593Smuzhiyun
2503*4882a593Smuzhiyun    .. note::
2504*4882a593Smuzhiyun
2505*4882a593Smuzhiyun       This compound control is not yet part of the public kernel API and
2506*4882a593Smuzhiyun       it is expected to change.
2507*4882a593Smuzhiyun
2508*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_vp8_frame_header
2509*4882a593Smuzhiyun
2510*4882a593Smuzhiyun.. cssclass:: longtable
2511*4882a593Smuzhiyun
2512*4882a593Smuzhiyun.. tabularcolumns:: |p{5.8cm}|p{4.8cm}|p{6.6cm}|
2513*4882a593Smuzhiyun
2514*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_vp8_frame_header
2515*4882a593Smuzhiyun    :header-rows:  0
2516*4882a593Smuzhiyun    :stub-columns: 0
2517*4882a593Smuzhiyun    :widths:       1 1 2
2518*4882a593Smuzhiyun
2519*4882a593Smuzhiyun    * - struct :c:type:`v4l2_vp8_segment_header`
2520*4882a593Smuzhiyun      - ``segment_header``
2521*4882a593Smuzhiyun      - Structure with segment-based adjustments metadata.
2522*4882a593Smuzhiyun    * - struct :c:type:`v4l2_vp8_loopfilter_header`
2523*4882a593Smuzhiyun      - ``loopfilter_header``
2524*4882a593Smuzhiyun      - Structure with loop filter level adjustments metadata.
2525*4882a593Smuzhiyun    * - struct :c:type:`v4l2_vp8_quantization_header`
2526*4882a593Smuzhiyun      - ``quant_header``
2527*4882a593Smuzhiyun      - Structure with VP8 dequantization indices metadata.
2528*4882a593Smuzhiyun    * - struct :c:type:`v4l2_vp8_entropy_header`
2529*4882a593Smuzhiyun      - ``entropy_header``
2530*4882a593Smuzhiyun      - Structure with VP8 entropy coder probabilities metadata.
2531*4882a593Smuzhiyun    * - struct :c:type:`v4l2_vp8_entropy_coder_state`
2532*4882a593Smuzhiyun      - ``coder_state``
2533*4882a593Smuzhiyun      - Structure with VP8 entropy coder state.
2534*4882a593Smuzhiyun    * - __u16
2535*4882a593Smuzhiyun      - ``width``
2536*4882a593Smuzhiyun      - The width of the frame. Must be set for all frames.
2537*4882a593Smuzhiyun    * - __u16
2538*4882a593Smuzhiyun      - ``height``
2539*4882a593Smuzhiyun      - The height of the frame. Must be set for all frames.
2540*4882a593Smuzhiyun    * - __u8
2541*4882a593Smuzhiyun      - ``horizontal_scale``
2542*4882a593Smuzhiyun      - Horizontal scaling factor.
2543*4882a593Smuzhiyun    * - __u8
2544*4882a593Smuzhiyun      - ``vertical_scaling factor``
2545*4882a593Smuzhiyun      - Vertical scale.
2546*4882a593Smuzhiyun    * - __u8
2547*4882a593Smuzhiyun      - ``version``
2548*4882a593Smuzhiyun      - Bitstream version.
2549*4882a593Smuzhiyun    * - __u8
2550*4882a593Smuzhiyun      - ``prob_skip_false``
2551*4882a593Smuzhiyun      - Indicates the probability that the macroblock is not skipped.
2552*4882a593Smuzhiyun    * - __u8
2553*4882a593Smuzhiyun      - ``prob_intra``
2554*4882a593Smuzhiyun      - Indicates the probability that a macroblock is intra-predicted.
2555*4882a593Smuzhiyun    * - __u8
2556*4882a593Smuzhiyun      - ``prob_last``
2557*4882a593Smuzhiyun      - Indicates the probability that the last reference frame is used
2558*4882a593Smuzhiyun        for inter-prediction
2559*4882a593Smuzhiyun    * - __u8
2560*4882a593Smuzhiyun      - ``prob_gf``
2561*4882a593Smuzhiyun      - Indicates the probability that the golden reference frame is used
2562*4882a593Smuzhiyun        for inter-prediction
2563*4882a593Smuzhiyun    * - __u8
2564*4882a593Smuzhiyun      - ``num_dct_parts``
2565*4882a593Smuzhiyun      - Number of DCT coefficients partitions. Must be one of: 1, 2, 4, or 8.
2566*4882a593Smuzhiyun    * - __u32
2567*4882a593Smuzhiyun      - ``first_part_size``
2568*4882a593Smuzhiyun      - Size of the first partition, i.e. the control partition.
2569*4882a593Smuzhiyun    * - __u32
2570*4882a593Smuzhiyun      - ``first_part_header_bits``
2571*4882a593Smuzhiyun      - Size in bits of the first partition header portion.
2572*4882a593Smuzhiyun    * - __u32
2573*4882a593Smuzhiyun      - ``dct_part_sizes[8]``
2574*4882a593Smuzhiyun      - DCT coefficients sizes.
2575*4882a593Smuzhiyun    * - __u64
2576*4882a593Smuzhiyun      - ``last_frame_ts``
2577*4882a593Smuzhiyun      - Timestamp for the V4L2 capture buffer to use as last reference frame, used
2578*4882a593Smuzhiyun        with inter-coded frames. The timestamp refers to the ``timestamp`` field in
2579*4882a593Smuzhiyun	struct :c:type:`v4l2_buffer`. Use the :c:func:`v4l2_timeval_to_ns()`
2580*4882a593Smuzhiyun	function to convert the struct :c:type:`timeval` in struct
2581*4882a593Smuzhiyun	:c:type:`v4l2_buffer` to a __u64.
2582*4882a593Smuzhiyun    * - __u64
2583*4882a593Smuzhiyun      - ``golden_frame_ts``
2584*4882a593Smuzhiyun      - Timestamp for the V4L2 capture buffer to use as last reference frame, used
2585*4882a593Smuzhiyun        with inter-coded frames. The timestamp refers to the ``timestamp`` field in
2586*4882a593Smuzhiyun	struct :c:type:`v4l2_buffer`. Use the :c:func:`v4l2_timeval_to_ns()`
2587*4882a593Smuzhiyun	function to convert the struct :c:type:`timeval` in struct
2588*4882a593Smuzhiyun	:c:type:`v4l2_buffer` to a __u64.
2589*4882a593Smuzhiyun    * - __u64
2590*4882a593Smuzhiyun      - ``alt_frame_ts``
2591*4882a593Smuzhiyun      - Timestamp for the V4L2 capture buffer to use as alternate reference frame, used
2592*4882a593Smuzhiyun        with inter-coded frames. The timestamp refers to the ``timestamp`` field in
2593*4882a593Smuzhiyun	struct :c:type:`v4l2_buffer`. Use the :c:func:`v4l2_timeval_to_ns()`
2594*4882a593Smuzhiyun	function to convert the struct :c:type:`timeval` in struct
2595*4882a593Smuzhiyun	:c:type:`v4l2_buffer` to a __u64.
2596*4882a593Smuzhiyun    * - __u64
2597*4882a593Smuzhiyun      - ``flags``
2598*4882a593Smuzhiyun      - See :ref:`Frame Header Flags <vp8_frame_header_flags>`
2599*4882a593Smuzhiyun
2600*4882a593Smuzhiyun.. _vp8_frame_header_flags:
2601*4882a593Smuzhiyun
2602*4882a593Smuzhiyun``Frame Header Flags``
2603*4882a593Smuzhiyun
2604*4882a593Smuzhiyun.. cssclass:: longtable
2605*4882a593Smuzhiyun
2606*4882a593Smuzhiyun.. flat-table::
2607*4882a593Smuzhiyun    :header-rows:  0
2608*4882a593Smuzhiyun    :stub-columns: 0
2609*4882a593Smuzhiyun    :widths:       1 1 2
2610*4882a593Smuzhiyun
2611*4882a593Smuzhiyun    * - ``V4L2_VP8_FRAME_HEADER_FLAG_KEY_FRAME``
2612*4882a593Smuzhiyun      - 0x01
2613*4882a593Smuzhiyun      - Indicates if the frame is a key frame.
2614*4882a593Smuzhiyun    * - ``V4L2_VP8_FRAME_HEADER_FLAG_EXPERIMENTAL``
2615*4882a593Smuzhiyun      - 0x02
2616*4882a593Smuzhiyun      - Experimental bitstream.
2617*4882a593Smuzhiyun    * - ``V4L2_VP8_FRAME_HEADER_FLAG_SHOW_FRAME``
2618*4882a593Smuzhiyun      - 0x04
2619*4882a593Smuzhiyun      - Show frame flag, indicates if the frame is for display.
2620*4882a593Smuzhiyun    * - ``V4L2_VP8_FRAME_HEADER_FLAG_MB_NO_SKIP_COEFF``
2621*4882a593Smuzhiyun      - 0x08
2622*4882a593Smuzhiyun      - Enable/disable skipping of macroblocks with no non-zero coefficients.
2623*4882a593Smuzhiyun    * - ``V4L2_VP8_FRAME_HEADER_FLAG_SIGN_BIAS_GOLDEN``
2624*4882a593Smuzhiyun      - 0x10
2625*4882a593Smuzhiyun      - Sign of motion vectors when the golden frame is referenced.
2626*4882a593Smuzhiyun    * - ``V4L2_VP8_FRAME_HEADER_FLAG_SIGN_BIAS_ALT``
2627*4882a593Smuzhiyun      - 0x20
2628*4882a593Smuzhiyun      - Sign of motion vectors when the alt frame is referenced.
2629*4882a593Smuzhiyun
2630*4882a593Smuzhiyun.. c:type:: v4l2_vp8_entropy_coder_state
2631*4882a593Smuzhiyun
2632*4882a593Smuzhiyun.. cssclass:: longtable
2633*4882a593Smuzhiyun
2634*4882a593Smuzhiyun.. tabularcolumns:: |p{1.5cm}|p{6.3cm}|p{9.4cm}|
2635*4882a593Smuzhiyun
2636*4882a593Smuzhiyun.. flat-table:: struct v4l2_vp8_entropy_coder_state
2637*4882a593Smuzhiyun    :header-rows:  0
2638*4882a593Smuzhiyun    :stub-columns: 0
2639*4882a593Smuzhiyun    :widths:       1 1 2
2640*4882a593Smuzhiyun
2641*4882a593Smuzhiyun    * - __u8
2642*4882a593Smuzhiyun      - ``range``
2643*4882a593Smuzhiyun      -
2644*4882a593Smuzhiyun    * - __u8
2645*4882a593Smuzhiyun      - ``value``
2646*4882a593Smuzhiyun      -
2647*4882a593Smuzhiyun    * - __u8
2648*4882a593Smuzhiyun      - ``bit_count``
2649*4882a593Smuzhiyun      -
2650*4882a593Smuzhiyun    * - __u8
2651*4882a593Smuzhiyun      - ``padding``
2652*4882a593Smuzhiyun      - Applications and drivers must set this to zero.
2653*4882a593Smuzhiyun
2654*4882a593Smuzhiyun.. c:type:: v4l2_vp8_segment_header
2655*4882a593Smuzhiyun
2656*4882a593Smuzhiyun.. cssclass:: longtable
2657*4882a593Smuzhiyun
2658*4882a593Smuzhiyun.. tabularcolumns:: |p{1.5cm}|p{6.3cm}|p{9.4cm}|
2659*4882a593Smuzhiyun
2660*4882a593Smuzhiyun.. flat-table:: struct v4l2_vp8_segment_header
2661*4882a593Smuzhiyun    :header-rows:  0
2662*4882a593Smuzhiyun    :stub-columns: 0
2663*4882a593Smuzhiyun    :widths:       1 1 2
2664*4882a593Smuzhiyun
2665*4882a593Smuzhiyun    * - __s8
2666*4882a593Smuzhiyun      - ``quant_update[4]``
2667*4882a593Smuzhiyun      - Signed quantizer value update.
2668*4882a593Smuzhiyun    * - __s8
2669*4882a593Smuzhiyun      - ``lf_update[4]``
2670*4882a593Smuzhiyun      - Signed loop filter level value update.
2671*4882a593Smuzhiyun    * - __u8
2672*4882a593Smuzhiyun      - ``segment_probs[3]``
2673*4882a593Smuzhiyun      - Segment probabilities.
2674*4882a593Smuzhiyun    * - __u8
2675*4882a593Smuzhiyun      - ``padding``
2676*4882a593Smuzhiyun      - Applications and drivers must set this to zero.
2677*4882a593Smuzhiyun    * - __u32
2678*4882a593Smuzhiyun      - ``flags``
2679*4882a593Smuzhiyun      - See :ref:`Segment Header Flags <vp8_segment_header_flags>`
2680*4882a593Smuzhiyun
2681*4882a593Smuzhiyun.. _vp8_segment_header_flags:
2682*4882a593Smuzhiyun
2683*4882a593Smuzhiyun``Segment Header Flags``
2684*4882a593Smuzhiyun
2685*4882a593Smuzhiyun.. cssclass:: longtable
2686*4882a593Smuzhiyun
2687*4882a593Smuzhiyun.. flat-table::
2688*4882a593Smuzhiyun    :header-rows:  0
2689*4882a593Smuzhiyun    :stub-columns: 0
2690*4882a593Smuzhiyun    :widths:       1 1 2
2691*4882a593Smuzhiyun
2692*4882a593Smuzhiyun    * - ``V4L2_VP8_SEGMENT_HEADER_FLAG_ENABLED``
2693*4882a593Smuzhiyun      - 0x01
2694*4882a593Smuzhiyun      - Enable/disable segment-based adjustments.
2695*4882a593Smuzhiyun    * - ``V4L2_VP8_SEGMENT_HEADER_FLAG_UPDATE_MAP``
2696*4882a593Smuzhiyun      - 0x02
2697*4882a593Smuzhiyun      - Indicates if the macroblock segmentation map is updated in this frame.
2698*4882a593Smuzhiyun    * - ``V4L2_VP8_SEGMENT_HEADER_FLAG_UPDATE_FEATURE_DATA``
2699*4882a593Smuzhiyun      - 0x04
2700*4882a593Smuzhiyun      - Indicates if the segment feature data is updated in this frame.
2701*4882a593Smuzhiyun    * - ``V4L2_VP8_SEGMENT_HEADER_FLAG_DELTA_VALUE_MODE``
2702*4882a593Smuzhiyun      - 0x08
2703*4882a593Smuzhiyun      - If is set, the segment feature data mode is delta-value.
2704*4882a593Smuzhiyun        If cleared, it's absolute-value.
2705*4882a593Smuzhiyun
2706*4882a593Smuzhiyun.. c:type:: v4l2_vp8_loopfilter_header
2707*4882a593Smuzhiyun
2708*4882a593Smuzhiyun.. cssclass:: longtable
2709*4882a593Smuzhiyun
2710*4882a593Smuzhiyun.. tabularcolumns:: |p{1.5cm}|p{6.3cm}|p{9.4cm}|
2711*4882a593Smuzhiyun
2712*4882a593Smuzhiyun.. flat-table:: struct v4l2_vp8_loopfilter_header
2713*4882a593Smuzhiyun    :header-rows:  0
2714*4882a593Smuzhiyun    :stub-columns: 0
2715*4882a593Smuzhiyun    :widths:       1 1 2
2716*4882a593Smuzhiyun
2717*4882a593Smuzhiyun    * - __s8
2718*4882a593Smuzhiyun      - ``ref_frm_delta[4]``
2719*4882a593Smuzhiyun      - Reference adjustment (signed) delta value.
2720*4882a593Smuzhiyun    * - __s8
2721*4882a593Smuzhiyun      - ``mb_mode_delta[4]``
2722*4882a593Smuzhiyun      - Macroblock prediction mode adjustment (signed) delta value.
2723*4882a593Smuzhiyun    * - __u8
2724*4882a593Smuzhiyun      - ``sharpness_level``
2725*4882a593Smuzhiyun      - Sharpness level
2726*4882a593Smuzhiyun    * - __u8
2727*4882a593Smuzhiyun      - ``level``
2728*4882a593Smuzhiyun      - Filter level
2729*4882a593Smuzhiyun    * - __u16
2730*4882a593Smuzhiyun      - ``padding``
2731*4882a593Smuzhiyun      - Applications and drivers must set this to zero.
2732*4882a593Smuzhiyun    * - __u32
2733*4882a593Smuzhiyun      - ``flags``
2734*4882a593Smuzhiyun      - See :ref:`Loopfilter Header Flags <vp8_loopfilter_header_flags>`
2735*4882a593Smuzhiyun
2736*4882a593Smuzhiyun.. _vp8_loopfilter_header_flags:
2737*4882a593Smuzhiyun
2738*4882a593Smuzhiyun``Loopfilter Header Flags``
2739*4882a593Smuzhiyun
2740*4882a593Smuzhiyun.. cssclass:: longtable
2741*4882a593Smuzhiyun
2742*4882a593Smuzhiyun.. flat-table::
2743*4882a593Smuzhiyun    :header-rows:  0
2744*4882a593Smuzhiyun    :stub-columns: 0
2745*4882a593Smuzhiyun    :widths:       1 1 2
2746*4882a593Smuzhiyun
2747*4882a593Smuzhiyun    * - ``V4L2_VP8_LF_HEADER_ADJ_ENABLE``
2748*4882a593Smuzhiyun      - 0x01
2749*4882a593Smuzhiyun      - Enable/disable macroblock-level loop filter adjustment.
2750*4882a593Smuzhiyun    * - ``V4L2_VP8_LF_HEADER_DELTA_UPDATE``
2751*4882a593Smuzhiyun      - 0x02
2752*4882a593Smuzhiyun      - Indicates if the delta values used in an adjustment are updated.
2753*4882a593Smuzhiyun    * - ``V4L2_VP8_LF_FILTER_TYPE_SIMPLE``
2754*4882a593Smuzhiyun      - 0x04
2755*4882a593Smuzhiyun      - If set, indicates the filter type is simple.
2756*4882a593Smuzhiyun        If cleared, the filter type is normal.
2757*4882a593Smuzhiyun
2758*4882a593Smuzhiyun.. c:type:: v4l2_vp8_quantization_header
2759*4882a593Smuzhiyun
2760*4882a593Smuzhiyun.. cssclass:: longtable
2761*4882a593Smuzhiyun
2762*4882a593Smuzhiyun.. tabularcolumns:: |p{1.5cm}|p{6.3cm}|p{9.4cm}|
2763*4882a593Smuzhiyun
2764*4882a593Smuzhiyun.. flat-table:: struct v4l2_vp8_quantization_header
2765*4882a593Smuzhiyun    :header-rows:  0
2766*4882a593Smuzhiyun    :stub-columns: 0
2767*4882a593Smuzhiyun    :widths:       1 1 2
2768*4882a593Smuzhiyun
2769*4882a593Smuzhiyun    * - __u8
2770*4882a593Smuzhiyun      - ``y_ac_qi``
2771*4882a593Smuzhiyun      - Luma AC coefficient table index.
2772*4882a593Smuzhiyun    * - __s8
2773*4882a593Smuzhiyun      - ``y_dc_delta``
2774*4882a593Smuzhiyun      - Luma DC delta vaue.
2775*4882a593Smuzhiyun    * - __s8
2776*4882a593Smuzhiyun      - ``y2_dc_delta``
2777*4882a593Smuzhiyun      - Y2 block DC delta value.
2778*4882a593Smuzhiyun    * - __s8
2779*4882a593Smuzhiyun      - ``y2_ac_delta``
2780*4882a593Smuzhiyun      - Y2 block AC delta value.
2781*4882a593Smuzhiyun    * - __s8
2782*4882a593Smuzhiyun      - ``uv_dc_delta``
2783*4882a593Smuzhiyun      - Chroma DC delta value.
2784*4882a593Smuzhiyun    * - __s8
2785*4882a593Smuzhiyun      - ``uv_ac_delta``
2786*4882a593Smuzhiyun      - Chroma AC delta value.
2787*4882a593Smuzhiyun    * - __u16
2788*4882a593Smuzhiyun      - ``padding``
2789*4882a593Smuzhiyun      - Applications and drivers must set this to zero.
2790*4882a593Smuzhiyun
2791*4882a593Smuzhiyun.. c:type:: v4l2_vp8_entropy_header
2792*4882a593Smuzhiyun
2793*4882a593Smuzhiyun.. cssclass:: longtable
2794*4882a593Smuzhiyun
2795*4882a593Smuzhiyun.. tabularcolumns:: |p{1.5cm}|p{6.3cm}|p{9.4cm}|
2796*4882a593Smuzhiyun
2797*4882a593Smuzhiyun.. flat-table:: struct v4l2_vp8_entropy_header
2798*4882a593Smuzhiyun    :header-rows:  0
2799*4882a593Smuzhiyun    :stub-columns: 0
2800*4882a593Smuzhiyun    :widths:       1 1 2
2801*4882a593Smuzhiyun
2802*4882a593Smuzhiyun    * - __u8
2803*4882a593Smuzhiyun      - ``coeff_probs[4][8][3][11]``
2804*4882a593Smuzhiyun      - Coefficient update probabilities.
2805*4882a593Smuzhiyun    * - __u8
2806*4882a593Smuzhiyun      - ``y_mode_probs[4]``
2807*4882a593Smuzhiyun      - Luma mode update probabilities.
2808*4882a593Smuzhiyun    * - __u8
2809*4882a593Smuzhiyun      - ``uv_mode_probs[3]``
2810*4882a593Smuzhiyun      - Chroma mode update probabilities.
2811*4882a593Smuzhiyun    * - __u8
2812*4882a593Smuzhiyun      - ``mv_probs[2][19]``
2813*4882a593Smuzhiyun      - MV decoding update probabilities.
2814*4882a593Smuzhiyun    * - __u8
2815*4882a593Smuzhiyun      - ``padding[3]``
2816*4882a593Smuzhiyun      - Applications and drivers must set this to zero.
2817*4882a593Smuzhiyun
2818*4882a593Smuzhiyun.. raw:: latex
2819*4882a593Smuzhiyun
2820*4882a593Smuzhiyun    \normalsize
2821*4882a593Smuzhiyun
2822*4882a593Smuzhiyun
2823*4882a593SmuzhiyunMFC 5.1 MPEG Controls
2824*4882a593Smuzhiyun=====================
2825*4882a593Smuzhiyun
2826*4882a593SmuzhiyunThe following MPEG class controls deal with MPEG decoding and encoding
2827*4882a593Smuzhiyunsettings that are specific to the Multi Format Codec 5.1 device present
2828*4882a593Smuzhiyunin the S5P family of SoCs by Samsung.
2829*4882a593Smuzhiyun
2830*4882a593Smuzhiyun
2831*4882a593Smuzhiyun.. _mfc51-control-id:
2832*4882a593Smuzhiyun
2833*4882a593SmuzhiyunMFC 5.1 Control IDs
2834*4882a593Smuzhiyun-------------------
2835*4882a593Smuzhiyun
2836*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE (boolean)``
2837*4882a593Smuzhiyun    If the display delay is enabled then the decoder is forced to return
2838*4882a593Smuzhiyun    a CAPTURE buffer (decoded frame) after processing a certain number
2839*4882a593Smuzhiyun    of OUTPUT buffers. The delay can be set through
2840*4882a593Smuzhiyun    ``V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY``. This
2841*4882a593Smuzhiyun    feature can be used for example for generating thumbnails of videos.
2842*4882a593Smuzhiyun    Applicable to the H264 decoder.
2843*4882a593Smuzhiyun
2844*4882a593Smuzhiyun    .. note::
2845*4882a593Smuzhiyun
2846*4882a593Smuzhiyun       This control is deprecated. Use the standard
2847*4882a593Smuzhiyun       ``V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE`` control instead.
2848*4882a593Smuzhiyun
2849*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY (integer)``
2850*4882a593Smuzhiyun    Display delay value for H264 decoder. The decoder is forced to
2851*4882a593Smuzhiyun    return a decoded frame after the set 'display delay' number of
2852*4882a593Smuzhiyun    frames. If this number is low it may result in frames returned out
2853*4882a593Smuzhiyun    of display order, in addition the hardware may still be using the
2854*4882a593Smuzhiyun    returned buffer as a reference picture for subsequent frames.
2855*4882a593Smuzhiyun
2856*4882a593Smuzhiyun    .. note::
2857*4882a593Smuzhiyun
2858*4882a593Smuzhiyun       This control is deprecated. Use the standard
2859*4882a593Smuzhiyun       ``V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY`` control instead.
2860*4882a593Smuzhiyun
2861*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (integer)``
2862*4882a593Smuzhiyun    The number of reference pictures used for encoding a P picture.
2863*4882a593Smuzhiyun    Applicable to the H264 encoder.
2864*4882a593Smuzhiyun
2865*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_PADDING (boolean)``
2866*4882a593Smuzhiyun    Padding enable in the encoder - use a color instead of repeating
2867*4882a593Smuzhiyun    border pixels. Applicable to encoders.
2868*4882a593Smuzhiyun
2869*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV (integer)``
2870*4882a593Smuzhiyun    Padding color in the encoder. Applicable to encoders. The supplied
2871*4882a593Smuzhiyun    32-bit integer is interpreted as follows (bit 0 = least significant
2872*4882a593Smuzhiyun    bit):
2873*4882a593Smuzhiyun
2874*4882a593Smuzhiyun
2875*4882a593Smuzhiyun
2876*4882a593Smuzhiyun.. flat-table::
2877*4882a593Smuzhiyun    :header-rows:  0
2878*4882a593Smuzhiyun    :stub-columns: 0
2879*4882a593Smuzhiyun
2880*4882a593Smuzhiyun    * - Bit 0:7
2881*4882a593Smuzhiyun      - V chrominance information
2882*4882a593Smuzhiyun    * - Bit 8:15
2883*4882a593Smuzhiyun      - U chrominance information
2884*4882a593Smuzhiyun    * - Bit 16:23
2885*4882a593Smuzhiyun      - Y luminance information
2886*4882a593Smuzhiyun    * - Bit 24:31
2887*4882a593Smuzhiyun      - Must be zero.
2888*4882a593Smuzhiyun
2889*4882a593Smuzhiyun
2890*4882a593Smuzhiyun
2891*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF (integer)``
2892*4882a593Smuzhiyun    Reaction coefficient for MFC rate control. Applicable to encoders.
2893*4882a593Smuzhiyun
2894*4882a593Smuzhiyun    .. note::
2895*4882a593Smuzhiyun
2896*4882a593Smuzhiyun       #. Valid only when the frame level RC is enabled.
2897*4882a593Smuzhiyun
2898*4882a593Smuzhiyun       #. For tight CBR, this field must be small (ex. 2 ~ 10). For
2899*4882a593Smuzhiyun	  VBR, this field must be large (ex. 100 ~ 1000).
2900*4882a593Smuzhiyun
2901*4882a593Smuzhiyun       #. It is not recommended to use the greater number than
2902*4882a593Smuzhiyun	  FRAME_RATE * (10^9 / BIT_RATE).
2903*4882a593Smuzhiyun
2904*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK (boolean)``
2905*4882a593Smuzhiyun    Adaptive rate control for dark region. Valid only when H.264 and
2906*4882a593Smuzhiyun    macroblock level RC is enabled
2907*4882a593Smuzhiyun    (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264
2908*4882a593Smuzhiyun    encoder.
2909*4882a593Smuzhiyun
2910*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH (boolean)``
2911*4882a593Smuzhiyun    Adaptive rate control for smooth region. Valid only when H.264 and
2912*4882a593Smuzhiyun    macroblock level RC is enabled
2913*4882a593Smuzhiyun    (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264
2914*4882a593Smuzhiyun    encoder.
2915*4882a593Smuzhiyun
2916*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (boolean)``
2917*4882a593Smuzhiyun    Adaptive rate control for static region. Valid only when H.264 and
2918*4882a593Smuzhiyun    macroblock level RC is enabled
2919*4882a593Smuzhiyun    (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264
2920*4882a593Smuzhiyun    encoder.
2921*4882a593Smuzhiyun
2922*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY (boolean)``
2923*4882a593Smuzhiyun    Adaptive rate control for activity region. Valid only when H.264 and
2924*4882a593Smuzhiyun    macroblock level RC is enabled
2925*4882a593Smuzhiyun    (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264
2926*4882a593Smuzhiyun    encoder.
2927*4882a593Smuzhiyun
2928*4882a593Smuzhiyun.. _v4l2-mpeg-mfc51-video-frame-skip-mode:
2929*4882a593Smuzhiyun
2930*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE``
2931*4882a593Smuzhiyun    (enum)
2932*4882a593Smuzhiyun
2933*4882a593Smuzhiyun    .. note::
2934*4882a593Smuzhiyun
2935*4882a593Smuzhiyun       This control is deprecated. Use the standard
2936*4882a593Smuzhiyun       ``V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE`` control instead.
2937*4882a593Smuzhiyun
2938*4882a593Smuzhiyunenum v4l2_mpeg_mfc51_video_frame_skip_mode -
2939*4882a593Smuzhiyun    Indicates in what conditions the encoder should skip frames. If
2940*4882a593Smuzhiyun    encoding a frame would cause the encoded stream to be larger then a
2941*4882a593Smuzhiyun    chosen data limit then the frame will be skipped. Possible values
2942*4882a593Smuzhiyun    are:
2943*4882a593Smuzhiyun
2944*4882a593Smuzhiyun
2945*4882a593Smuzhiyun.. tabularcolumns:: |p{9.2cm}|p{8.3cm}|
2946*4882a593Smuzhiyun
2947*4882a593Smuzhiyun.. raw:: latex
2948*4882a593Smuzhiyun
2949*4882a593Smuzhiyun    \small
2950*4882a593Smuzhiyun
2951*4882a593Smuzhiyun.. flat-table::
2952*4882a593Smuzhiyun    :header-rows:  0
2953*4882a593Smuzhiyun    :stub-columns: 0
2954*4882a593Smuzhiyun
2955*4882a593Smuzhiyun    * - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_DISABLED``
2956*4882a593Smuzhiyun      - Frame skip mode is disabled.
2957*4882a593Smuzhiyun    * - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_LEVEL_LIMIT``
2958*4882a593Smuzhiyun      - Frame skip mode enabled and buffer limit is set by the chosen
2959*4882a593Smuzhiyun	level and is defined by the standard.
2960*4882a593Smuzhiyun    * - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_BUF_LIMIT``
2961*4882a593Smuzhiyun      - Frame skip mode enabled and buffer limit is set by the VBV
2962*4882a593Smuzhiyun	(MPEG1/2/4) or CPB (H264) buffer size control.
2963*4882a593Smuzhiyun
2964*4882a593Smuzhiyun.. raw:: latex
2965*4882a593Smuzhiyun
2966*4882a593Smuzhiyun    \normalsize
2967*4882a593Smuzhiyun
2968*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT (integer)``
2969*4882a593Smuzhiyun    Enable rate-control with fixed target bit. If this setting is
2970*4882a593Smuzhiyun    enabled, then the rate control logic of the encoder will calculate
2971*4882a593Smuzhiyun    the average bitrate for a GOP and keep it below or equal the set
2972*4882a593Smuzhiyun    bitrate target. Otherwise the rate control logic calculates the
2973*4882a593Smuzhiyun    overall average bitrate for the stream and keeps it below or equal
2974*4882a593Smuzhiyun    to the set bitrate. In the first case the average bitrate for the
2975*4882a593Smuzhiyun    whole stream will be smaller then the set bitrate. This is caused
2976*4882a593Smuzhiyun    because the average is calculated for smaller number of frames, on
2977*4882a593Smuzhiyun    the other hand enabling this setting will ensure that the stream
2978*4882a593Smuzhiyun    will meet tight bandwidth constraints. Applicable to encoders.
2979*4882a593Smuzhiyun
2980*4882a593Smuzhiyun.. _v4l2-mpeg-mfc51-video-force-frame-type:
2981*4882a593Smuzhiyun
2982*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE``
2983*4882a593Smuzhiyun    (enum)
2984*4882a593Smuzhiyun
2985*4882a593Smuzhiyunenum v4l2_mpeg_mfc51_video_force_frame_type -
2986*4882a593Smuzhiyun    Force a frame type for the next queued buffer. Applicable to
2987*4882a593Smuzhiyun    encoders. Possible values are:
2988*4882a593Smuzhiyun
2989*4882a593Smuzhiyun.. tabularcolumns:: |p{9.5cm}|p{8.0cm}|
2990*4882a593Smuzhiyun
2991*4882a593Smuzhiyun.. flat-table::
2992*4882a593Smuzhiyun    :header-rows:  0
2993*4882a593Smuzhiyun    :stub-columns: 0
2994*4882a593Smuzhiyun
2995*4882a593Smuzhiyun    * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_DISABLED``
2996*4882a593Smuzhiyun      - Forcing a specific frame type disabled.
2997*4882a593Smuzhiyun    * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_I_FRAME``
2998*4882a593Smuzhiyun      - Force an I-frame.
2999*4882a593Smuzhiyun    * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_NOT_CODED``
3000*4882a593Smuzhiyun      - Force a non-coded frame.
3001*4882a593Smuzhiyun
3002*4882a593Smuzhiyun
3003*4882a593Smuzhiyun.. _v4l2-mpeg-fwht:
3004*4882a593Smuzhiyun
3005*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_FWHT_PARAMS (struct)``
3006*4882a593Smuzhiyun    Specifies the fwht parameters (as extracted from the bitstream) for the
3007*4882a593Smuzhiyun    associated FWHT data. This includes the necessary parameters for
3008*4882a593Smuzhiyun    configuring a stateless hardware decoding pipeline for FWHT.
3009*4882a593Smuzhiyun
3010*4882a593Smuzhiyun    .. note::
3011*4882a593Smuzhiyun
3012*4882a593Smuzhiyun       This compound control is not yet part of the public kernel API and
3013*4882a593Smuzhiyun       it is expected to change.
3014*4882a593Smuzhiyun
3015*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_fwht_params
3016*4882a593Smuzhiyun
3017*4882a593Smuzhiyun.. cssclass:: longtable
3018*4882a593Smuzhiyun
3019*4882a593Smuzhiyun.. tabularcolumns:: |p{1.4cm}|p{4.3cm}|p{11.8cm}|
3020*4882a593Smuzhiyun
3021*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_fwht_params
3022*4882a593Smuzhiyun    :header-rows:  0
3023*4882a593Smuzhiyun    :stub-columns: 0
3024*4882a593Smuzhiyun    :widths:       1 1 2
3025*4882a593Smuzhiyun
3026*4882a593Smuzhiyun    * - __u64
3027*4882a593Smuzhiyun      - ``backward_ref_ts``
3028*4882a593Smuzhiyun      - Timestamp of the V4L2 capture buffer to use as backward reference, used
3029*4882a593Smuzhiyun        with P-coded frames. The timestamp refers to the
3030*4882a593Smuzhiyun	``timestamp`` field in struct :c:type:`v4l2_buffer`. Use the
3031*4882a593Smuzhiyun	:c:func:`v4l2_timeval_to_ns()` function to convert the struct
3032*4882a593Smuzhiyun	:c:type:`timeval` in struct :c:type:`v4l2_buffer` to a __u64.
3033*4882a593Smuzhiyun    * - __u32
3034*4882a593Smuzhiyun      - ``version``
3035*4882a593Smuzhiyun      - The version of the codec
3036*4882a593Smuzhiyun    * - __u32
3037*4882a593Smuzhiyun      - ``width``
3038*4882a593Smuzhiyun      - The width of the frame
3039*4882a593Smuzhiyun    * - __u32
3040*4882a593Smuzhiyun      - ``height``
3041*4882a593Smuzhiyun      - The height of the frame
3042*4882a593Smuzhiyun    * - __u32
3043*4882a593Smuzhiyun      - ``flags``
3044*4882a593Smuzhiyun      - The flags of the frame, see :ref:`fwht-flags`.
3045*4882a593Smuzhiyun    * - __u32
3046*4882a593Smuzhiyun      - ``colorspace``
3047*4882a593Smuzhiyun      - The colorspace of the frame, from enum :c:type:`v4l2_colorspace`.
3048*4882a593Smuzhiyun    * - __u32
3049*4882a593Smuzhiyun      - ``xfer_func``
3050*4882a593Smuzhiyun      - The transfer function, from enum :c:type:`v4l2_xfer_func`.
3051*4882a593Smuzhiyun    * - __u32
3052*4882a593Smuzhiyun      - ``ycbcr_enc``
3053*4882a593Smuzhiyun      - The Y'CbCr encoding, from enum :c:type:`v4l2_ycbcr_encoding`.
3054*4882a593Smuzhiyun    * - __u32
3055*4882a593Smuzhiyun      - ``quantization``
3056*4882a593Smuzhiyun      - The quantization range, from enum :c:type:`v4l2_quantization`.
3057*4882a593Smuzhiyun
3058*4882a593Smuzhiyun
3059*4882a593Smuzhiyun
3060*4882a593Smuzhiyun.. _fwht-flags:
3061*4882a593Smuzhiyun
3062*4882a593SmuzhiyunFWHT Flags
3063*4882a593Smuzhiyun============
3064*4882a593Smuzhiyun
3065*4882a593Smuzhiyun.. cssclass:: longtable
3066*4882a593Smuzhiyun
3067*4882a593Smuzhiyun.. tabularcolumns:: |p{6.8cm}|p{2.4cm}|p{8.3cm}|
3068*4882a593Smuzhiyun
3069*4882a593Smuzhiyun.. flat-table::
3070*4882a593Smuzhiyun    :header-rows:  0
3071*4882a593Smuzhiyun    :stub-columns: 0
3072*4882a593Smuzhiyun    :widths:       3 1 4
3073*4882a593Smuzhiyun
3074*4882a593Smuzhiyun    * - ``FWHT_FL_IS_INTERLACED``
3075*4882a593Smuzhiyun      - 0x00000001
3076*4882a593Smuzhiyun      - Set if this is an interlaced format
3077*4882a593Smuzhiyun    * - ``FWHT_FL_IS_BOTTOM_FIRST``
3078*4882a593Smuzhiyun      - 0x00000002
3079*4882a593Smuzhiyun      - Set if this is a bottom-first (NTSC) interlaced format
3080*4882a593Smuzhiyun    * - ``FWHT_FL_IS_ALTERNATE``
3081*4882a593Smuzhiyun      - 0x00000004
3082*4882a593Smuzhiyun      - Set if each 'frame' contains just one field
3083*4882a593Smuzhiyun    * - ``FWHT_FL_IS_BOTTOM_FIELD``
3084*4882a593Smuzhiyun      - 0x00000008
3085*4882a593Smuzhiyun      - If FWHT_FL_IS_ALTERNATE was set, then this is set if this 'frame' is the
3086*4882a593Smuzhiyun	bottom field, else it is the top field.
3087*4882a593Smuzhiyun    * - ``FWHT_FL_LUMA_IS_UNCOMPRESSED``
3088*4882a593Smuzhiyun      - 0x00000010
3089*4882a593Smuzhiyun      - Set if the luma plane is uncompressed
3090*4882a593Smuzhiyun    * - ``FWHT_FL_CB_IS_UNCOMPRESSED``
3091*4882a593Smuzhiyun      - 0x00000020
3092*4882a593Smuzhiyun      - Set if the cb plane is uncompressed
3093*4882a593Smuzhiyun    * - ``FWHT_FL_CR_IS_UNCOMPRESSED``
3094*4882a593Smuzhiyun      - 0x00000040
3095*4882a593Smuzhiyun      - Set if the cr plane is uncompressed
3096*4882a593Smuzhiyun    * - ``FWHT_FL_CHROMA_FULL_HEIGHT``
3097*4882a593Smuzhiyun      - 0x00000080
3098*4882a593Smuzhiyun      - Set if the chroma plane has the same height as the luma plane,
3099*4882a593Smuzhiyun	else the chroma plane is half the height of the luma plane
3100*4882a593Smuzhiyun    * - ``FWHT_FL_CHROMA_FULL_WIDTH``
3101*4882a593Smuzhiyun      - 0x00000100
3102*4882a593Smuzhiyun      - Set if the chroma plane has the same width as the luma plane,
3103*4882a593Smuzhiyun	else the chroma plane is half the width of the luma plane
3104*4882a593Smuzhiyun    * - ``FWHT_FL_ALPHA_IS_UNCOMPRESSED``
3105*4882a593Smuzhiyun      - 0x00000200
3106*4882a593Smuzhiyun      - Set if the alpha plane is uncompressed
3107*4882a593Smuzhiyun    * - ``FWHT_FL_I_FRAME``
3108*4882a593Smuzhiyun      - 0x00000400
3109*4882a593Smuzhiyun      - Set if this is an I-frame
3110*4882a593Smuzhiyun    * - ``FWHT_FL_COMPONENTS_NUM_MSK``
3111*4882a593Smuzhiyun      - 0x00070000
3112*4882a593Smuzhiyun      - A 4-values flag - the number of components - 1
3113*4882a593Smuzhiyun    * - ``FWHT_FL_PIXENC_YUV``
3114*4882a593Smuzhiyun      - 0x00080000
3115*4882a593Smuzhiyun      - Set if the pixel encoding is YUV
3116*4882a593Smuzhiyun    * - ``FWHT_FL_PIXENC_RGB``
3117*4882a593Smuzhiyun      - 0x00100000
3118*4882a593Smuzhiyun      - Set if the pixel encoding is RGB
3119*4882a593Smuzhiyun    * - ``FWHT_FL_PIXENC_HSV``
3120*4882a593Smuzhiyun      - 0x00180000
3121*4882a593Smuzhiyun      - Set if the pixel encoding is HSV
3122*4882a593Smuzhiyun
3123*4882a593Smuzhiyun
3124*4882a593SmuzhiyunCX2341x MPEG Controls
3125*4882a593Smuzhiyun=====================
3126*4882a593Smuzhiyun
3127*4882a593SmuzhiyunThe following MPEG class controls deal with MPEG encoding settings that
3128*4882a593Smuzhiyunare specific to the Conexant CX23415 and CX23416 MPEG encoding chips.
3129*4882a593Smuzhiyun
3130*4882a593Smuzhiyun
3131*4882a593Smuzhiyun.. _cx2341x-control-id:
3132*4882a593Smuzhiyun
3133*4882a593SmuzhiyunCX2341x Control IDs
3134*4882a593Smuzhiyun-------------------
3135*4882a593Smuzhiyun
3136*4882a593Smuzhiyun.. _v4l2-mpeg-cx2341x-video-spatial-filter-mode:
3137*4882a593Smuzhiyun
3138*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE``
3139*4882a593Smuzhiyun    (enum)
3140*4882a593Smuzhiyun
3141*4882a593Smuzhiyunenum v4l2_mpeg_cx2341x_video_spatial_filter_mode -
3142*4882a593Smuzhiyun    Sets the Spatial Filter mode (default ``MANUAL``). Possible values
3143*4882a593Smuzhiyun    are:
3144*4882a593Smuzhiyun
3145*4882a593Smuzhiyun
3146*4882a593Smuzhiyun
3147*4882a593Smuzhiyun.. flat-table::
3148*4882a593Smuzhiyun    :header-rows:  0
3149*4882a593Smuzhiyun    :stub-columns: 0
3150*4882a593Smuzhiyun
3151*4882a593Smuzhiyun    * - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL``
3152*4882a593Smuzhiyun      - Choose the filter manually
3153*4882a593Smuzhiyun    * - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO``
3154*4882a593Smuzhiyun      - Choose the filter automatically
3155*4882a593Smuzhiyun
3156*4882a593Smuzhiyun
3157*4882a593Smuzhiyun
3158*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (integer (0-15))``
3159*4882a593Smuzhiyun    The setting for the Spatial Filter. 0 = off, 15 = maximum. (Default
3160*4882a593Smuzhiyun    is 0.)
3161*4882a593Smuzhiyun
3162*4882a593Smuzhiyun.. _luma-spatial-filter-type:
3163*4882a593Smuzhiyun
3164*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE``
3165*4882a593Smuzhiyun    (enum)
3166*4882a593Smuzhiyun
3167*4882a593Smuzhiyunenum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type -
3168*4882a593Smuzhiyun    Select the algorithm to use for the Luma Spatial Filter (default
3169*4882a593Smuzhiyun    ``1D_HOR``). Possible values:
3170*4882a593Smuzhiyun
3171*4882a593Smuzhiyun.. tabularcolumns:: |p{14.5cm}|p{3.0cm}|
3172*4882a593Smuzhiyun
3173*4882a593Smuzhiyun.. raw:: latex
3174*4882a593Smuzhiyun
3175*4882a593Smuzhiyun    \small
3176*4882a593Smuzhiyun
3177*4882a593Smuzhiyun.. flat-table::
3178*4882a593Smuzhiyun    :header-rows:  0
3179*4882a593Smuzhiyun    :stub-columns: 0
3180*4882a593Smuzhiyun
3181*4882a593Smuzhiyun    * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF``
3182*4882a593Smuzhiyun      - No filter
3183*4882a593Smuzhiyun    * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR``
3184*4882a593Smuzhiyun      - One-dimensional horizontal
3185*4882a593Smuzhiyun    * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT``
3186*4882a593Smuzhiyun      - One-dimensional vertical
3187*4882a593Smuzhiyun    * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE``
3188*4882a593Smuzhiyun      - Two-dimensional separable
3189*4882a593Smuzhiyun    * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE``
3190*4882a593Smuzhiyun      - Two-dimensional symmetrical non-separable
3191*4882a593Smuzhiyun
3192*4882a593Smuzhiyun.. raw:: latex
3193*4882a593Smuzhiyun
3194*4882a593Smuzhiyun    \normalsize
3195*4882a593Smuzhiyun
3196*4882a593Smuzhiyun
3197*4882a593Smuzhiyun
3198*4882a593Smuzhiyun.. _chroma-spatial-filter-type:
3199*4882a593Smuzhiyun
3200*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE``
3201*4882a593Smuzhiyun    (enum)
3202*4882a593Smuzhiyun
3203*4882a593Smuzhiyunenum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type -
3204*4882a593Smuzhiyun    Select the algorithm for the Chroma Spatial Filter (default
3205*4882a593Smuzhiyun    ``1D_HOR``). Possible values are:
3206*4882a593Smuzhiyun
3207*4882a593Smuzhiyun
3208*4882a593Smuzhiyun.. tabularcolumns:: |p{14.0cm}|p{3.5cm}|
3209*4882a593Smuzhiyun
3210*4882a593Smuzhiyun.. flat-table::
3211*4882a593Smuzhiyun    :header-rows:  0
3212*4882a593Smuzhiyun    :stub-columns: 0
3213*4882a593Smuzhiyun
3214*4882a593Smuzhiyun    * - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF``
3215*4882a593Smuzhiyun      - No filter
3216*4882a593Smuzhiyun    * - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR``
3217*4882a593Smuzhiyun      - One-dimensional horizontal
3218*4882a593Smuzhiyun
3219*4882a593Smuzhiyun
3220*4882a593Smuzhiyun
3221*4882a593Smuzhiyun.. _v4l2-mpeg-cx2341x-video-temporal-filter-mode:
3222*4882a593Smuzhiyun
3223*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE``
3224*4882a593Smuzhiyun    (enum)
3225*4882a593Smuzhiyun
3226*4882a593Smuzhiyunenum v4l2_mpeg_cx2341x_video_temporal_filter_mode -
3227*4882a593Smuzhiyun    Sets the Temporal Filter mode (default ``MANUAL``). Possible values
3228*4882a593Smuzhiyun    are:
3229*4882a593Smuzhiyun
3230*4882a593Smuzhiyun
3231*4882a593Smuzhiyun
3232*4882a593Smuzhiyun.. flat-table::
3233*4882a593Smuzhiyun    :header-rows:  0
3234*4882a593Smuzhiyun    :stub-columns: 0
3235*4882a593Smuzhiyun
3236*4882a593Smuzhiyun    * - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL``
3237*4882a593Smuzhiyun      - Choose the filter manually
3238*4882a593Smuzhiyun    * - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO``
3239*4882a593Smuzhiyun      - Choose the filter automatically
3240*4882a593Smuzhiyun
3241*4882a593Smuzhiyun
3242*4882a593Smuzhiyun
3243*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (integer (0-31))``
3244*4882a593Smuzhiyun    The setting for the Temporal Filter. 0 = off, 31 = maximum. (Default
3245*4882a593Smuzhiyun    is 8 for full-scale capturing and 0 for scaled capturing.)
3246*4882a593Smuzhiyun
3247*4882a593Smuzhiyun.. _v4l2-mpeg-cx2341x-video-median-filter-type:
3248*4882a593Smuzhiyun
3249*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE``
3250*4882a593Smuzhiyun    (enum)
3251*4882a593Smuzhiyun
3252*4882a593Smuzhiyunenum v4l2_mpeg_cx2341x_video_median_filter_type -
3253*4882a593Smuzhiyun    Median Filter Type (default ``OFF``). Possible values are:
3254*4882a593Smuzhiyun
3255*4882a593Smuzhiyun
3256*4882a593Smuzhiyun
3257*4882a593Smuzhiyun.. flat-table::
3258*4882a593Smuzhiyun    :header-rows:  0
3259*4882a593Smuzhiyun    :stub-columns: 0
3260*4882a593Smuzhiyun
3261*4882a593Smuzhiyun    * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF``
3262*4882a593Smuzhiyun      - No filter
3263*4882a593Smuzhiyun    * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR``
3264*4882a593Smuzhiyun      - Horizontal filter
3265*4882a593Smuzhiyun    * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT``
3266*4882a593Smuzhiyun      - Vertical filter
3267*4882a593Smuzhiyun    * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT``
3268*4882a593Smuzhiyun      - Horizontal and vertical filter
3269*4882a593Smuzhiyun    * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG``
3270*4882a593Smuzhiyun      - Diagonal filter
3271*4882a593Smuzhiyun
3272*4882a593Smuzhiyun
3273*4882a593Smuzhiyun
3274*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (integer (0-255))``
3275*4882a593Smuzhiyun    Threshold above which the luminance median filter is enabled
3276*4882a593Smuzhiyun    (default 0)
3277*4882a593Smuzhiyun
3278*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (integer (0-255))``
3279*4882a593Smuzhiyun    Threshold below which the luminance median filter is enabled
3280*4882a593Smuzhiyun    (default 255)
3281*4882a593Smuzhiyun
3282*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (integer (0-255))``
3283*4882a593Smuzhiyun    Threshold above which the chroma median filter is enabled (default
3284*4882a593Smuzhiyun    0)
3285*4882a593Smuzhiyun
3286*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (integer (0-255))``
3287*4882a593Smuzhiyun    Threshold below which the chroma median filter is enabled (default
3288*4882a593Smuzhiyun    255)
3289*4882a593Smuzhiyun
3290*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (boolean)``
3291*4882a593Smuzhiyun    The CX2341X MPEG encoder can insert one empty MPEG-2 PES packet into
3292*4882a593Smuzhiyun    the stream between every four video frames. The packet size is 2048
3293*4882a593Smuzhiyun    bytes, including the packet_start_code_prefix and stream_id
3294*4882a593Smuzhiyun    fields. The stream_id is 0xBF (private stream 2). The payload
3295*4882a593Smuzhiyun    consists of 0x00 bytes, to be filled in by the application. 0 = do
3296*4882a593Smuzhiyun    not insert, 1 = insert packets.
3297*4882a593Smuzhiyun
3298*4882a593Smuzhiyun
3299*4882a593SmuzhiyunVPX Control Reference
3300*4882a593Smuzhiyun=====================
3301*4882a593Smuzhiyun
3302*4882a593SmuzhiyunThe VPX controls include controls for encoding parameters of VPx video
3303*4882a593Smuzhiyuncodec.
3304*4882a593Smuzhiyun
3305*4882a593Smuzhiyun
3306*4882a593Smuzhiyun.. _vpx-control-id:
3307*4882a593Smuzhiyun
3308*4882a593SmuzhiyunVPX Control IDs
3309*4882a593Smuzhiyun---------------
3310*4882a593Smuzhiyun
3311*4882a593Smuzhiyun.. _v4l2-vpx-num-partitions:
3312*4882a593Smuzhiyun
3313*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS``
3314*4882a593Smuzhiyun    (enum)
3315*4882a593Smuzhiyun
3316*4882a593Smuzhiyunenum v4l2_vp8_num_partitions -
3317*4882a593Smuzhiyun    The number of token partitions to use in VP8 encoder. Possible
3318*4882a593Smuzhiyun    values are:
3319*4882a593Smuzhiyun
3320*4882a593Smuzhiyun
3321*4882a593Smuzhiyun
3322*4882a593Smuzhiyun.. flat-table::
3323*4882a593Smuzhiyun    :header-rows:  0
3324*4882a593Smuzhiyun    :stub-columns: 0
3325*4882a593Smuzhiyun
3326*4882a593Smuzhiyun    * - ``V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION``
3327*4882a593Smuzhiyun      - 1 coefficient partition
3328*4882a593Smuzhiyun    * - ``V4L2_CID_MPEG_VIDEO_VPX_2_PARTITIONS``
3329*4882a593Smuzhiyun      - 2 coefficient partitions
3330*4882a593Smuzhiyun    * - ``V4L2_CID_MPEG_VIDEO_VPX_4_PARTITIONS``
3331*4882a593Smuzhiyun      - 4 coefficient partitions
3332*4882a593Smuzhiyun    * - ``V4L2_CID_MPEG_VIDEO_VPX_8_PARTITIONS``
3333*4882a593Smuzhiyun      - 8 coefficient partitions
3334*4882a593Smuzhiyun
3335*4882a593Smuzhiyun
3336*4882a593Smuzhiyun
3337*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4 (boolean)``
3338*4882a593Smuzhiyun    Setting this prevents intra 4x4 mode in the intra mode decision.
3339*4882a593Smuzhiyun
3340*4882a593Smuzhiyun.. _v4l2-vpx-num-ref-frames:
3341*4882a593Smuzhiyun
3342*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES``
3343*4882a593Smuzhiyun    (enum)
3344*4882a593Smuzhiyun
3345*4882a593Smuzhiyunenum v4l2_vp8_num_ref_frames -
3346*4882a593Smuzhiyun    The number of reference pictures for encoding P frames. Possible
3347*4882a593Smuzhiyun    values are:
3348*4882a593Smuzhiyun
3349*4882a593Smuzhiyun.. tabularcolumns:: |p{7.9cm}|p{9.6cm}|
3350*4882a593Smuzhiyun
3351*4882a593Smuzhiyun.. raw:: latex
3352*4882a593Smuzhiyun
3353*4882a593Smuzhiyun    \small
3354*4882a593Smuzhiyun
3355*4882a593Smuzhiyun.. flat-table::
3356*4882a593Smuzhiyun    :header-rows:  0
3357*4882a593Smuzhiyun    :stub-columns: 0
3358*4882a593Smuzhiyun
3359*4882a593Smuzhiyun    * - ``V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME``
3360*4882a593Smuzhiyun      - Last encoded frame will be searched
3361*4882a593Smuzhiyun    * - ``V4L2_CID_MPEG_VIDEO_VPX_2_REF_FRAME``
3362*4882a593Smuzhiyun      - Two frames will be searched among the last encoded frame, the
3363*4882a593Smuzhiyun	golden frame and the alternate reference (altref) frame. The
3364*4882a593Smuzhiyun	encoder implementation will decide which two are chosen.
3365*4882a593Smuzhiyun    * - ``V4L2_CID_MPEG_VIDEO_VPX_3_REF_FRAME``
3366*4882a593Smuzhiyun      - The last encoded frame, the golden frame and the altref frame will
3367*4882a593Smuzhiyun	be searched.
3368*4882a593Smuzhiyun
3369*4882a593Smuzhiyun.. raw:: latex
3370*4882a593Smuzhiyun
3371*4882a593Smuzhiyun    \normalsize
3372*4882a593Smuzhiyun
3373*4882a593Smuzhiyun
3374*4882a593Smuzhiyun
3375*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL (integer)``
3376*4882a593Smuzhiyun    Indicates the loop filter level. The adjustment of the loop filter
3377*4882a593Smuzhiyun    level is done via a delta value against a baseline loop filter
3378*4882a593Smuzhiyun    value.
3379*4882a593Smuzhiyun
3380*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS (integer)``
3381*4882a593Smuzhiyun    This parameter affects the loop filter. Anything above zero weakens
3382*4882a593Smuzhiyun    the deblocking effect on the loop filter.
3383*4882a593Smuzhiyun
3384*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD (integer)``
3385*4882a593Smuzhiyun    Sets the refresh period for the golden frame. The period is defined
3386*4882a593Smuzhiyun    in number of frames. For a value of 'n', every nth frame starting
3387*4882a593Smuzhiyun    from the first key frame will be taken as a golden frame. For eg.
3388*4882a593Smuzhiyun    for encoding sequence of 0, 1, 2, 3, 4, 5, 6, 7 where the golden
3389*4882a593Smuzhiyun    frame refresh period is set as 4, the frames 0, 4, 8 etc will be
3390*4882a593Smuzhiyun    taken as the golden frames as frame 0 is always a key frame.
3391*4882a593Smuzhiyun
3392*4882a593Smuzhiyun.. _v4l2-vpx-golden-frame-sel:
3393*4882a593Smuzhiyun
3394*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL``
3395*4882a593Smuzhiyun    (enum)
3396*4882a593Smuzhiyun
3397*4882a593Smuzhiyunenum v4l2_vp8_golden_frame_sel -
3398*4882a593Smuzhiyun    Selects the golden frame for encoding. Possible values are:
3399*4882a593Smuzhiyun
3400*4882a593Smuzhiyun.. raw:: latex
3401*4882a593Smuzhiyun
3402*4882a593Smuzhiyun    \scriptsize
3403*4882a593Smuzhiyun
3404*4882a593Smuzhiyun.. tabularcolumns:: |p{9.0cm}|p{8.0cm}|
3405*4882a593Smuzhiyun
3406*4882a593Smuzhiyun.. flat-table::
3407*4882a593Smuzhiyun    :header-rows:  0
3408*4882a593Smuzhiyun    :stub-columns: 0
3409*4882a593Smuzhiyun
3410*4882a593Smuzhiyun    * - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV``
3411*4882a593Smuzhiyun      - Use the (n-2)th frame as a golden frame, current frame index being
3412*4882a593Smuzhiyun	'n'.
3413*4882a593Smuzhiyun    * - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD``
3414*4882a593Smuzhiyun      - Use the previous specific frame indicated by
3415*4882a593Smuzhiyun	``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD`` as a
3416*4882a593Smuzhiyun	golden frame.
3417*4882a593Smuzhiyun
3418*4882a593Smuzhiyun.. raw:: latex
3419*4882a593Smuzhiyun
3420*4882a593Smuzhiyun    \normalsize
3421*4882a593Smuzhiyun
3422*4882a593Smuzhiyun
3423*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (integer)``
3424*4882a593Smuzhiyun    Minimum quantization parameter for VP8.
3425*4882a593Smuzhiyun
3426*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (integer)``
3427*4882a593Smuzhiyun    Maximum quantization parameter for VP8.
3428*4882a593Smuzhiyun
3429*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (integer)``
3430*4882a593Smuzhiyun    Quantization parameter for an I frame for VP8.
3431*4882a593Smuzhiyun
3432*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (integer)``
3433*4882a593Smuzhiyun    Quantization parameter for a P frame for VP8.
3434*4882a593Smuzhiyun
3435*4882a593Smuzhiyun.. _v4l2-mpeg-video-vp8-profile:
3436*4882a593Smuzhiyun
3437*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VP8_PROFILE``
3438*4882a593Smuzhiyun    (enum)
3439*4882a593Smuzhiyun
3440*4882a593Smuzhiyunenum v4l2_mpeg_video_vp8_profile -
3441*4882a593Smuzhiyun    This control allows selecting the profile for VP8 encoder.
3442*4882a593Smuzhiyun    This is also used to enumerate supported profiles by VP8 encoder or decoder.
3443*4882a593Smuzhiyun    Possible values are:
3444*4882a593Smuzhiyun
3445*4882a593Smuzhiyun.. flat-table::
3446*4882a593Smuzhiyun    :header-rows:  0
3447*4882a593Smuzhiyun    :stub-columns: 0
3448*4882a593Smuzhiyun
3449*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_VP8_PROFILE_0``
3450*4882a593Smuzhiyun      - Profile 0
3451*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_VP8_PROFILE_1``
3452*4882a593Smuzhiyun      - Profile 1
3453*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_VP8_PROFILE_2``
3454*4882a593Smuzhiyun      - Profile 2
3455*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_VP8_PROFILE_3``
3456*4882a593Smuzhiyun      - Profile 3
3457*4882a593Smuzhiyun
3458*4882a593Smuzhiyun.. _v4l2-mpeg-video-vp9-profile:
3459*4882a593Smuzhiyun
3460*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VP9_PROFILE``
3461*4882a593Smuzhiyun    (enum)
3462*4882a593Smuzhiyun
3463*4882a593Smuzhiyunenum v4l2_mpeg_video_vp9_profile -
3464*4882a593Smuzhiyun    This control allows selecting the profile for VP9 encoder.
3465*4882a593Smuzhiyun    This is also used to enumerate supported profiles by VP9 encoder or decoder.
3466*4882a593Smuzhiyun    Possible values are:
3467*4882a593Smuzhiyun
3468*4882a593Smuzhiyun.. flat-table::
3469*4882a593Smuzhiyun    :header-rows:  0
3470*4882a593Smuzhiyun    :stub-columns: 0
3471*4882a593Smuzhiyun
3472*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_VP9_PROFILE_0``
3473*4882a593Smuzhiyun      - Profile 0
3474*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_VP9_PROFILE_1``
3475*4882a593Smuzhiyun      - Profile 1
3476*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_VP9_PROFILE_2``
3477*4882a593Smuzhiyun      - Profile 2
3478*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_VP9_PROFILE_3``
3479*4882a593Smuzhiyun      - Profile 3
3480*4882a593Smuzhiyun
3481*4882a593Smuzhiyun.. _v4l2-mpeg-video-vp9-level:
3482*4882a593Smuzhiyun
3483*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VP9_LEVEL (enum)``
3484*4882a593Smuzhiyun
3485*4882a593Smuzhiyunenum v4l2_mpeg_video_vp9_level -
3486*4882a593Smuzhiyun    This control allows selecting the level for VP9 encoder.
3487*4882a593Smuzhiyun    This is also used to enumerate supported levels by VP9 encoder or decoder.
3488*4882a593Smuzhiyun    More information can be found at
3489*4882a593Smuzhiyun    `webmproject <https://www.webmproject.org/vp9/levels/>`__. Possible values are:
3490*4882a593Smuzhiyun
3491*4882a593Smuzhiyun.. flat-table::
3492*4882a593Smuzhiyun    :header-rows:  0
3493*4882a593Smuzhiyun    :stub-columns: 0
3494*4882a593Smuzhiyun
3495*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_1_0``
3496*4882a593Smuzhiyun      - Level 1
3497*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_1_1``
3498*4882a593Smuzhiyun      - Level 1.1
3499*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_2_0``
3500*4882a593Smuzhiyun      - Level 2
3501*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_2_1``
3502*4882a593Smuzhiyun      - Level 2.1
3503*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_3_0``
3504*4882a593Smuzhiyun      - Level 3
3505*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_3_1``
3506*4882a593Smuzhiyun      - Level 3.1
3507*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_4_0``
3508*4882a593Smuzhiyun      - Level 4
3509*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_4_1``
3510*4882a593Smuzhiyun      - Level 4.1
3511*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_5_0``
3512*4882a593Smuzhiyun      - Level 5
3513*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_5_1``
3514*4882a593Smuzhiyun      - Level 5.1
3515*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_5_2``
3516*4882a593Smuzhiyun      - Level 5.2
3517*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_6_0``
3518*4882a593Smuzhiyun      - Level 6
3519*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_6_1``
3520*4882a593Smuzhiyun      - Level 6.1
3521*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_6_2``
3522*4882a593Smuzhiyun      - Level 6.2
3523*4882a593Smuzhiyun
3524*4882a593Smuzhiyun
3525*4882a593SmuzhiyunHigh Efficiency Video Coding (HEVC/H.265) Control Reference
3526*4882a593Smuzhiyun===========================================================
3527*4882a593Smuzhiyun
3528*4882a593SmuzhiyunThe HEVC/H.265 controls include controls for encoding parameters of HEVC/H.265
3529*4882a593Smuzhiyunvideo codec.
3530*4882a593Smuzhiyun
3531*4882a593Smuzhiyun
3532*4882a593Smuzhiyun.. _hevc-control-id:
3533*4882a593Smuzhiyun
3534*4882a593SmuzhiyunHEVC/H.265 Control IDs
3535*4882a593Smuzhiyun----------------------
3536*4882a593Smuzhiyun
3537*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (integer)``
3538*4882a593Smuzhiyun    Minimum quantization parameter for HEVC.
3539*4882a593Smuzhiyun    Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit.
3540*4882a593Smuzhiyun
3541*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (integer)``
3542*4882a593Smuzhiyun    Maximum quantization parameter for HEVC.
3543*4882a593Smuzhiyun    Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit.
3544*4882a593Smuzhiyun
3545*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (integer)``
3546*4882a593Smuzhiyun    Quantization parameter for an I frame for HEVC.
3547*4882a593Smuzhiyun    Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
3548*4882a593Smuzhiyun    V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP].
3549*4882a593Smuzhiyun
3550*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (integer)``
3551*4882a593Smuzhiyun    Quantization parameter for a P frame for HEVC.
3552*4882a593Smuzhiyun    Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
3553*4882a593Smuzhiyun    V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP].
3554*4882a593Smuzhiyun
3555*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (integer)``
3556*4882a593Smuzhiyun    Quantization parameter for a B frame for HEVC.
3557*4882a593Smuzhiyun    Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
3558*4882a593Smuzhiyun    V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP].
3559*4882a593Smuzhiyun
3560*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MIN_QP (integer)``
3561*4882a593Smuzhiyun    Minimum quantization parameter for the HEVC I frame to limit I frame
3562*4882a593Smuzhiyun    quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit.
3563*4882a593Smuzhiyun    If V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP is also set, the quantization parameter
3564*4882a593Smuzhiyun    should be chosen to meet both requirements.
3565*4882a593Smuzhiyun
3566*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MAX_QP (integer)``
3567*4882a593Smuzhiyun    Maximum quantization parameter for the HEVC I frame to limit I frame
3568*4882a593Smuzhiyun    quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit.
3569*4882a593Smuzhiyun    If V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP is also set, the quantization parameter
3570*4882a593Smuzhiyun    should be chosen to meet both requirements.
3571*4882a593Smuzhiyun
3572*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MIN_QP (integer)``
3573*4882a593Smuzhiyun    Minimum quantization parameter for the HEVC P frame to limit P frame
3574*4882a593Smuzhiyun    quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit.
3575*4882a593Smuzhiyun    If V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP is also set, the quantization parameter
3576*4882a593Smuzhiyun    should be chosen to meet both requirements.
3577*4882a593Smuzhiyun
3578*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP (integer)``
3579*4882a593Smuzhiyun    Maximum quantization parameter for the HEVC P frame to limit P frame
3580*4882a593Smuzhiyun    quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit.
3581*4882a593Smuzhiyun    If V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP is also set, the quantization parameter
3582*4882a593Smuzhiyun    should be chosen to meet both requirements.
3583*4882a593Smuzhiyun
3584*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP (integer)``
3585*4882a593Smuzhiyun    Minimum quantization parameter for the HEVC B frame to limit B frame
3586*4882a593Smuzhiyun    quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit.
3587*4882a593Smuzhiyun    If V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP is also set, the quantization parameter
3588*4882a593Smuzhiyun    should be chosen to meet both requirements.
3589*4882a593Smuzhiyun
3590*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP (integer)``
3591*4882a593Smuzhiyun    Maximum quantization parameter for the HEVC B frame to limit B frame
3592*4882a593Smuzhiyun    quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit.
3593*4882a593Smuzhiyun    If V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP is also set, the quantization parameter
3594*4882a593Smuzhiyun    should be chosen to meet both requirements.
3595*4882a593Smuzhiyun
3596*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (boolean)``
3597*4882a593Smuzhiyun    HIERARCHICAL_QP allows the host to specify the quantization parameter
3598*4882a593Smuzhiyun    values for each temporal layer through HIERARCHICAL_QP_LAYER. This is
3599*4882a593Smuzhiyun    valid only if HIERARCHICAL_CODING_LAYER is greater than 1. Setting the
3600*4882a593Smuzhiyun    control value to 1 enables setting of the QP values for the layers.
3601*4882a593Smuzhiyun
3602*4882a593Smuzhiyun.. _v4l2-hevc-hier-coding-type:
3603*4882a593Smuzhiyun
3604*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE``
3605*4882a593Smuzhiyun    (enum)
3606*4882a593Smuzhiyun
3607*4882a593Smuzhiyunenum v4l2_mpeg_video_hevc_hier_coding_type -
3608*4882a593Smuzhiyun    Selects the hierarchical coding type for encoding. Possible values are:
3609*4882a593Smuzhiyun
3610*4882a593Smuzhiyun.. raw:: latex
3611*4882a593Smuzhiyun
3612*4882a593Smuzhiyun    \footnotesize
3613*4882a593Smuzhiyun
3614*4882a593Smuzhiyun.. tabularcolumns:: |p{9.0cm}|p{8.0cm}|
3615*4882a593Smuzhiyun
3616*4882a593Smuzhiyun.. flat-table::
3617*4882a593Smuzhiyun    :header-rows:  0
3618*4882a593Smuzhiyun    :stub-columns: 0
3619*4882a593Smuzhiyun
3620*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B``
3621*4882a593Smuzhiyun      - Use the B frame for hierarchical coding.
3622*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P``
3623*4882a593Smuzhiyun      - Use the P frame for hierarchical coding.
3624*4882a593Smuzhiyun
3625*4882a593Smuzhiyun.. raw:: latex
3626*4882a593Smuzhiyun
3627*4882a593Smuzhiyun    \normalsize
3628*4882a593Smuzhiyun
3629*4882a593Smuzhiyun
3630*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (integer)``
3631*4882a593Smuzhiyun    Selects the hierarchical coding layer. In normal encoding
3632*4882a593Smuzhiyun    (non-hierarchial coding), it should be zero. Possible values are [0, 6].
3633*4882a593Smuzhiyun    0 indicates HIERARCHICAL CODING LAYER 0, 1 indicates HIERARCHICAL CODING
3634*4882a593Smuzhiyun    LAYER 1 and so on.
3635*4882a593Smuzhiyun
3636*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (integer)``
3637*4882a593Smuzhiyun    Indicates quantization parameter for hierarchical coding layer 0.
3638*4882a593Smuzhiyun    Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
3639*4882a593Smuzhiyun    V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP].
3640*4882a593Smuzhiyun
3641*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (integer)``
3642*4882a593Smuzhiyun    Indicates quantization parameter for hierarchical coding layer 1.
3643*4882a593Smuzhiyun    Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
3644*4882a593Smuzhiyun    V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP].
3645*4882a593Smuzhiyun
3646*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (integer)``
3647*4882a593Smuzhiyun    Indicates quantization parameter for hierarchical coding layer 2.
3648*4882a593Smuzhiyun    Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
3649*4882a593Smuzhiyun    V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP].
3650*4882a593Smuzhiyun
3651*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (integer)``
3652*4882a593Smuzhiyun    Indicates quantization parameter for hierarchical coding layer 3.
3653*4882a593Smuzhiyun    Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
3654*4882a593Smuzhiyun    V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP].
3655*4882a593Smuzhiyun
3656*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (integer)``
3657*4882a593Smuzhiyun    Indicates quantization parameter for hierarchical coding layer 4.
3658*4882a593Smuzhiyun    Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
3659*4882a593Smuzhiyun    V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP].
3660*4882a593Smuzhiyun
3661*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (integer)``
3662*4882a593Smuzhiyun    Indicates quantization parameter for hierarchical coding layer 5.
3663*4882a593Smuzhiyun    Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
3664*4882a593Smuzhiyun    V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP].
3665*4882a593Smuzhiyun
3666*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (integer)``
3667*4882a593Smuzhiyun    Indicates quantization parameter for hierarchical coding layer 6.
3668*4882a593Smuzhiyun    Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
3669*4882a593Smuzhiyun    V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP].
3670*4882a593Smuzhiyun
3671*4882a593Smuzhiyun.. _v4l2-hevc-profile:
3672*4882a593Smuzhiyun
3673*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_PROFILE``
3674*4882a593Smuzhiyun    (enum)
3675*4882a593Smuzhiyun
3676*4882a593Smuzhiyunenum v4l2_mpeg_video_hevc_profile -
3677*4882a593Smuzhiyun    Select the desired profile for HEVC encoder.
3678*4882a593Smuzhiyun
3679*4882a593Smuzhiyun.. raw:: latex
3680*4882a593Smuzhiyun
3681*4882a593Smuzhiyun    \footnotesize
3682*4882a593Smuzhiyun
3683*4882a593Smuzhiyun.. tabularcolumns:: |p{9.0cm}|p{8.0cm}|
3684*4882a593Smuzhiyun
3685*4882a593Smuzhiyun.. flat-table::
3686*4882a593Smuzhiyun    :header-rows:  0
3687*4882a593Smuzhiyun    :stub-columns: 0
3688*4882a593Smuzhiyun
3689*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN``
3690*4882a593Smuzhiyun      - Main profile.
3691*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE``
3692*4882a593Smuzhiyun      - Main still picture profile.
3693*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10``
3694*4882a593Smuzhiyun      - Main 10 profile.
3695*4882a593Smuzhiyun
3696*4882a593Smuzhiyun.. raw:: latex
3697*4882a593Smuzhiyun
3698*4882a593Smuzhiyun    \normalsize
3699*4882a593Smuzhiyun
3700*4882a593Smuzhiyun
3701*4882a593Smuzhiyun.. _v4l2-hevc-level:
3702*4882a593Smuzhiyun
3703*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_LEVEL``
3704*4882a593Smuzhiyun    (enum)
3705*4882a593Smuzhiyun
3706*4882a593Smuzhiyunenum v4l2_mpeg_video_hevc_level -
3707*4882a593Smuzhiyun    Selects the desired level for HEVC encoder.
3708*4882a593Smuzhiyun
3709*4882a593Smuzhiyun.. raw:: latex
3710*4882a593Smuzhiyun
3711*4882a593Smuzhiyun    \footnotesize
3712*4882a593Smuzhiyun
3713*4882a593Smuzhiyun.. tabularcolumns:: |p{9.0cm}|p{8.0cm}|
3714*4882a593Smuzhiyun
3715*4882a593Smuzhiyun.. flat-table::
3716*4882a593Smuzhiyun    :header-rows:  0
3717*4882a593Smuzhiyun    :stub-columns: 0
3718*4882a593Smuzhiyun
3719*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_1``
3720*4882a593Smuzhiyun      - Level 1.0
3721*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_2``
3722*4882a593Smuzhiyun      - Level 2.0
3723*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1``
3724*4882a593Smuzhiyun      - Level 2.1
3725*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_3``
3726*4882a593Smuzhiyun      - Level 3.0
3727*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1``
3728*4882a593Smuzhiyun      - Level 3.1
3729*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_4``
3730*4882a593Smuzhiyun      - Level 4.0
3731*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1``
3732*4882a593Smuzhiyun      - Level 4.1
3733*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_5``
3734*4882a593Smuzhiyun      - Level 5.0
3735*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1``
3736*4882a593Smuzhiyun      - Level 5.1
3737*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2``
3738*4882a593Smuzhiyun      - Level 5.2
3739*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_6``
3740*4882a593Smuzhiyun      - Level 6.0
3741*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1``
3742*4882a593Smuzhiyun      - Level 6.1
3743*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2``
3744*4882a593Smuzhiyun      - Level 6.2
3745*4882a593Smuzhiyun
3746*4882a593Smuzhiyun.. raw:: latex
3747*4882a593Smuzhiyun
3748*4882a593Smuzhiyun    \normalsize
3749*4882a593Smuzhiyun
3750*4882a593Smuzhiyun
3751*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (integer)``
3752*4882a593Smuzhiyun    Indicates the number of evenly spaced subintervals, called ticks, within
3753*4882a593Smuzhiyun    one second. This is a 16 bit unsigned integer and has a maximum value up to
3754*4882a593Smuzhiyun    0xffff and a minimum value of 1.
3755*4882a593Smuzhiyun
3756*4882a593Smuzhiyun.. _v4l2-hevc-tier:
3757*4882a593Smuzhiyun
3758*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_TIER``
3759*4882a593Smuzhiyun    (enum)
3760*4882a593Smuzhiyun
3761*4882a593Smuzhiyunenum v4l2_mpeg_video_hevc_tier -
3762*4882a593Smuzhiyun    TIER_FLAG specifies tiers information of the HEVC encoded picture. Tier
3763*4882a593Smuzhiyun    were made to deal with applications that differ in terms of maximum bit
3764*4882a593Smuzhiyun    rate. Setting the flag to 0 selects HEVC tier as Main tier and setting
3765*4882a593Smuzhiyun    this flag to 1 indicates High tier. High tier is for applications requiring
3766*4882a593Smuzhiyun    high bit rates.
3767*4882a593Smuzhiyun
3768*4882a593Smuzhiyun.. raw:: latex
3769*4882a593Smuzhiyun
3770*4882a593Smuzhiyun    \footnotesize
3771*4882a593Smuzhiyun
3772*4882a593Smuzhiyun.. tabularcolumns:: |p{9.0cm}|p{8.0cm}|
3773*4882a593Smuzhiyun
3774*4882a593Smuzhiyun.. flat-table::
3775*4882a593Smuzhiyun    :header-rows:  0
3776*4882a593Smuzhiyun    :stub-columns: 0
3777*4882a593Smuzhiyun
3778*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_TIER_MAIN``
3779*4882a593Smuzhiyun      - Main tier.
3780*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_TIER_HIGH``
3781*4882a593Smuzhiyun      - High tier.
3782*4882a593Smuzhiyun
3783*4882a593Smuzhiyun.. raw:: latex
3784*4882a593Smuzhiyun
3785*4882a593Smuzhiyun    \normalsize
3786*4882a593Smuzhiyun
3787*4882a593Smuzhiyun
3788*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (integer)``
3789*4882a593Smuzhiyun    Selects HEVC maximum coding unit depth.
3790*4882a593Smuzhiyun
3791*4882a593Smuzhiyun.. _v4l2-hevc-loop-filter-mode:
3792*4882a593Smuzhiyun
3793*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE``
3794*4882a593Smuzhiyun    (enum)
3795*4882a593Smuzhiyun
3796*4882a593Smuzhiyunenum v4l2_mpeg_video_hevc_loop_filter_mode -
3797*4882a593Smuzhiyun    Loop filter mode for HEVC encoder. Possible values are:
3798*4882a593Smuzhiyun
3799*4882a593Smuzhiyun.. raw:: latex
3800*4882a593Smuzhiyun
3801*4882a593Smuzhiyun    \footnotesize
3802*4882a593Smuzhiyun
3803*4882a593Smuzhiyun.. tabularcolumns:: |p{12.1cm}|p{5.4cm}|
3804*4882a593Smuzhiyun
3805*4882a593Smuzhiyun.. flat-table::
3806*4882a593Smuzhiyun    :header-rows:  0
3807*4882a593Smuzhiyun    :stub-columns: 0
3808*4882a593Smuzhiyun
3809*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED``
3810*4882a593Smuzhiyun      - Loop filter is disabled.
3811*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED``
3812*4882a593Smuzhiyun      - Loop filter is enabled.
3813*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY``
3814*4882a593Smuzhiyun      - Loop filter is disabled at the slice boundary.
3815*4882a593Smuzhiyun
3816*4882a593Smuzhiyun.. raw:: latex
3817*4882a593Smuzhiyun
3818*4882a593Smuzhiyun    \normalsize
3819*4882a593Smuzhiyun
3820*4882a593Smuzhiyun
3821*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (integer)``
3822*4882a593Smuzhiyun    Selects HEVC loop filter beta offset. The valid range is [-6, +6].
3823*4882a593Smuzhiyun
3824*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (integer)``
3825*4882a593Smuzhiyun    Selects HEVC loop filter tc offset. The valid range is [-6, +6].
3826*4882a593Smuzhiyun
3827*4882a593Smuzhiyun.. _v4l2-hevc-refresh-type:
3828*4882a593Smuzhiyun
3829*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE``
3830*4882a593Smuzhiyun    (enum)
3831*4882a593Smuzhiyun
3832*4882a593Smuzhiyunenum v4l2_mpeg_video_hevc_hier_refresh_type -
3833*4882a593Smuzhiyun    Selects refresh type for HEVC encoder.
3834*4882a593Smuzhiyun    Host has to specify the period into
3835*4882a593Smuzhiyun    V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD.
3836*4882a593Smuzhiyun
3837*4882a593Smuzhiyun.. raw:: latex
3838*4882a593Smuzhiyun
3839*4882a593Smuzhiyun    \footnotesize
3840*4882a593Smuzhiyun
3841*4882a593Smuzhiyun.. tabularcolumns:: |p{8.0cm}|p{9.0cm}|
3842*4882a593Smuzhiyun
3843*4882a593Smuzhiyun.. flat-table::
3844*4882a593Smuzhiyun    :header-rows:  0
3845*4882a593Smuzhiyun    :stub-columns: 0
3846*4882a593Smuzhiyun
3847*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_REFRESH_NONE``
3848*4882a593Smuzhiyun      - Use the B frame for hierarchical coding.
3849*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_REFRESH_CRA``
3850*4882a593Smuzhiyun      - Use CRA (Clean Random Access Unit) picture encoding.
3851*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_REFRESH_IDR``
3852*4882a593Smuzhiyun      - Use IDR (Instantaneous Decoding Refresh) picture encoding.
3853*4882a593Smuzhiyun
3854*4882a593Smuzhiyun.. raw:: latex
3855*4882a593Smuzhiyun
3856*4882a593Smuzhiyun    \normalsize
3857*4882a593Smuzhiyun
3858*4882a593Smuzhiyun
3859*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (integer)``
3860*4882a593Smuzhiyun    Selects the refresh period for HEVC encoder.
3861*4882a593Smuzhiyun    This specifies the number of I pictures between two CRA/IDR pictures.
3862*4882a593Smuzhiyun    This is valid only if REFRESH_TYPE is not 0.
3863*4882a593Smuzhiyun
3864*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (boolean)``
3865*4882a593Smuzhiyun    Indicates HEVC lossless encoding. Setting it to 0 disables lossless
3866*4882a593Smuzhiyun    encoding. Setting it to 1 enables lossless encoding.
3867*4882a593Smuzhiyun
3868*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (boolean)``
3869*4882a593Smuzhiyun    Indicates constant intra prediction for HEVC encoder. Specifies the
3870*4882a593Smuzhiyun    constrained intra prediction in which intra largest coding unit (LCU)
3871*4882a593Smuzhiyun    prediction is performed by using residual data and decoded samples of
3872*4882a593Smuzhiyun    neighboring intra LCU only. Setting the value to 1 enables constant intra
3873*4882a593Smuzhiyun    prediction and setting the value to 0 disables constant intra prediction.
3874*4882a593Smuzhiyun
3875*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (boolean)``
3876*4882a593Smuzhiyun    Indicates wavefront parallel processing for HEVC encoder. Setting it to 0
3877*4882a593Smuzhiyun    disables the feature and setting it to 1 enables the wavefront parallel
3878*4882a593Smuzhiyun    processing.
3879*4882a593Smuzhiyun
3880*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (boolean)``
3881*4882a593Smuzhiyun    Setting the value to 1 enables combination of P and B frame for HEVC
3882*4882a593Smuzhiyun    encoder.
3883*4882a593Smuzhiyun
3884*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (boolean)``
3885*4882a593Smuzhiyun    Indicates temporal identifier for HEVC encoder which is enabled by
3886*4882a593Smuzhiyun    setting the value to 1.
3887*4882a593Smuzhiyun
3888*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (boolean)``
3889*4882a593Smuzhiyun    Indicates bi-linear interpolation is conditionally used in the intra
3890*4882a593Smuzhiyun    prediction filtering process in the CVS when set to 1. Indicates bi-linear
3891*4882a593Smuzhiyun    interpolation is not used in the CVS when set to 0.
3892*4882a593Smuzhiyun
3893*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (integer)``
3894*4882a593Smuzhiyun    Indicates maximum number of merge candidate motion vectors.
3895*4882a593Smuzhiyun    Values are from 0 to 4.
3896*4882a593Smuzhiyun
3897*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (boolean)``
3898*4882a593Smuzhiyun    Indicates temporal motion vector prediction for HEVC encoder. Setting it to
3899*4882a593Smuzhiyun    1 enables the prediction. Setting it to 0 disables the prediction.
3900*4882a593Smuzhiyun
3901*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (boolean)``
3902*4882a593Smuzhiyun    Specifies if HEVC generates a stream with a size of the length field
3903*4882a593Smuzhiyun    instead of start code pattern. The size of the length field is configurable
3904*4882a593Smuzhiyun    through the V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD control. Setting
3905*4882a593Smuzhiyun    the value to 0 disables encoding without startcode pattern. Setting the
3906*4882a593Smuzhiyun    value to 1 will enables encoding without startcode pattern.
3907*4882a593Smuzhiyun
3908*4882a593Smuzhiyun.. _v4l2-hevc-size-of-length-field:
3909*4882a593Smuzhiyun
3910*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD``
3911*4882a593Smuzhiyun(enum)
3912*4882a593Smuzhiyun
3913*4882a593Smuzhiyunenum v4l2_mpeg_video_hevc_size_of_length_field -
3914*4882a593Smuzhiyun    Indicates the size of length field.
3915*4882a593Smuzhiyun    This is valid when encoding WITHOUT_STARTCODE_ENABLE is enabled.
3916*4882a593Smuzhiyun
3917*4882a593Smuzhiyun.. raw:: latex
3918*4882a593Smuzhiyun
3919*4882a593Smuzhiyun    \footnotesize
3920*4882a593Smuzhiyun
3921*4882a593Smuzhiyun.. tabularcolumns:: |p{6.0cm}|p{11.0cm}|
3922*4882a593Smuzhiyun
3923*4882a593Smuzhiyun.. flat-table::
3924*4882a593Smuzhiyun    :header-rows:  0
3925*4882a593Smuzhiyun    :stub-columns: 0
3926*4882a593Smuzhiyun
3927*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_SIZE_0``
3928*4882a593Smuzhiyun      - Generate start code pattern (Normal).
3929*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_SIZE_1``
3930*4882a593Smuzhiyun      - Generate size of length field instead of start code pattern and length is 1.
3931*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_SIZE_2``
3932*4882a593Smuzhiyun      - Generate size of length field instead of start code pattern and length is 2.
3933*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_SIZE_4``
3934*4882a593Smuzhiyun      - Generate size of length field instead of start code pattern and length is 4.
3935*4882a593Smuzhiyun
3936*4882a593Smuzhiyun.. raw:: latex
3937*4882a593Smuzhiyun
3938*4882a593Smuzhiyun    \normalsize
3939*4882a593Smuzhiyun
3940*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (integer)``
3941*4882a593Smuzhiyun    Indicates bit rate for hierarchical coding layer 0 for HEVC encoder.
3942*4882a593Smuzhiyun
3943*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (integer)``
3944*4882a593Smuzhiyun    Indicates bit rate for hierarchical coding layer 1 for HEVC encoder.
3945*4882a593Smuzhiyun
3946*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (integer)``
3947*4882a593Smuzhiyun    Indicates bit rate for hierarchical coding layer 2 for HEVC encoder.
3948*4882a593Smuzhiyun
3949*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (integer)``
3950*4882a593Smuzhiyun    Indicates bit rate for hierarchical coding layer 3 for HEVC encoder.
3951*4882a593Smuzhiyun
3952*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (integer)``
3953*4882a593Smuzhiyun    Indicates bit rate for hierarchical coding layer 4 for HEVC encoder.
3954*4882a593Smuzhiyun
3955*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (integer)``
3956*4882a593Smuzhiyun    Indicates bit rate for hierarchical coding layer 5 for HEVC encoder.
3957*4882a593Smuzhiyun
3958*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (integer)``
3959*4882a593Smuzhiyun    Indicates bit rate for hierarchical coding layer 6 for HEVC encoder.
3960*4882a593Smuzhiyun
3961*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (integer)``
3962*4882a593Smuzhiyun    Selects number of P reference pictures required for HEVC encoder.
3963*4882a593Smuzhiyun    P-Frame can use 1 or 2 frames for reference.
3964*4882a593Smuzhiyun
3965*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (integer)``
3966*4882a593Smuzhiyun    Indicates whether to generate SPS and PPS at every IDR. Setting it to 0
3967*4882a593Smuzhiyun    disables generating SPS and PPS at every IDR. Setting it to one enables
3968*4882a593Smuzhiyun    generating SPS and PPS at every IDR.
3969*4882a593Smuzhiyun
3970*4882a593Smuzhiyun.. _v4l2-mpeg-hevc:
3971*4882a593Smuzhiyun
3972*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_SPS (struct)``
3973*4882a593Smuzhiyun    Specifies the Sequence Parameter Set fields (as extracted from the
3974*4882a593Smuzhiyun    bitstream) for the associated HEVC slice data.
3975*4882a593Smuzhiyun    These bitstream parameters are defined according to :ref:`hevc`.
3976*4882a593Smuzhiyun    They are described in section 7.4.3.2 "Sequence parameter set RBSP
3977*4882a593Smuzhiyun    semantics" of the specification.
3978*4882a593Smuzhiyun
3979*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_hevc_sps
3980*4882a593Smuzhiyun
3981*4882a593Smuzhiyun.. cssclass:: longtable
3982*4882a593Smuzhiyun
3983*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_hevc_sps
3984*4882a593Smuzhiyun    :header-rows:  0
3985*4882a593Smuzhiyun    :stub-columns: 0
3986*4882a593Smuzhiyun    :widths:       1 1 2
3987*4882a593Smuzhiyun
3988*4882a593Smuzhiyun    * - __u16
3989*4882a593Smuzhiyun      - ``pic_width_in_luma_samples``
3990*4882a593Smuzhiyun      -
3991*4882a593Smuzhiyun    * - __u16
3992*4882a593Smuzhiyun      - ``pic_height_in_luma_samples``
3993*4882a593Smuzhiyun      -
3994*4882a593Smuzhiyun    * - __u8
3995*4882a593Smuzhiyun      - ``bit_depth_luma_minus8``
3996*4882a593Smuzhiyun      -
3997*4882a593Smuzhiyun    * - __u8
3998*4882a593Smuzhiyun      - ``bit_depth_chroma_minus8``
3999*4882a593Smuzhiyun      -
4000*4882a593Smuzhiyun    * - __u8
4001*4882a593Smuzhiyun      - ``log2_max_pic_order_cnt_lsb_minus4``
4002*4882a593Smuzhiyun      -
4003*4882a593Smuzhiyun    * - __u8
4004*4882a593Smuzhiyun      - ``sps_max_dec_pic_buffering_minus1``
4005*4882a593Smuzhiyun      -
4006*4882a593Smuzhiyun    * - __u8
4007*4882a593Smuzhiyun      - ``sps_max_num_reorder_pics``
4008*4882a593Smuzhiyun      -
4009*4882a593Smuzhiyun    * - __u8
4010*4882a593Smuzhiyun      - ``sps_max_latency_increase_plus1``
4011*4882a593Smuzhiyun      -
4012*4882a593Smuzhiyun    * - __u8
4013*4882a593Smuzhiyun      - ``log2_min_luma_coding_block_size_minus3``
4014*4882a593Smuzhiyun      -
4015*4882a593Smuzhiyun    * - __u8
4016*4882a593Smuzhiyun      - ``log2_diff_max_min_luma_coding_block_size``
4017*4882a593Smuzhiyun      -
4018*4882a593Smuzhiyun    * - __u8
4019*4882a593Smuzhiyun      - ``log2_min_luma_transform_block_size_minus2``
4020*4882a593Smuzhiyun      -
4021*4882a593Smuzhiyun    * - __u8
4022*4882a593Smuzhiyun      - ``log2_diff_max_min_luma_transform_block_size``
4023*4882a593Smuzhiyun      -
4024*4882a593Smuzhiyun    * - __u8
4025*4882a593Smuzhiyun      - ``max_transform_hierarchy_depth_inter``
4026*4882a593Smuzhiyun      -
4027*4882a593Smuzhiyun    * - __u8
4028*4882a593Smuzhiyun      - ``max_transform_hierarchy_depth_intra``
4029*4882a593Smuzhiyun      -
4030*4882a593Smuzhiyun    * - __u8
4031*4882a593Smuzhiyun      - ``pcm_sample_bit_depth_luma_minus1``
4032*4882a593Smuzhiyun      -
4033*4882a593Smuzhiyun    * - __u8
4034*4882a593Smuzhiyun      - ``pcm_sample_bit_depth_chroma_minus1``
4035*4882a593Smuzhiyun      -
4036*4882a593Smuzhiyun    * - __u8
4037*4882a593Smuzhiyun      - ``log2_min_pcm_luma_coding_block_size_minus3``
4038*4882a593Smuzhiyun      -
4039*4882a593Smuzhiyun    * - __u8
4040*4882a593Smuzhiyun      - ``log2_diff_max_min_pcm_luma_coding_block_size``
4041*4882a593Smuzhiyun      -
4042*4882a593Smuzhiyun    * - __u8
4043*4882a593Smuzhiyun      - ``num_short_term_ref_pic_sets``
4044*4882a593Smuzhiyun      -
4045*4882a593Smuzhiyun    * - __u8
4046*4882a593Smuzhiyun      - ``num_long_term_ref_pics_sps``
4047*4882a593Smuzhiyun      -
4048*4882a593Smuzhiyun    * - __u8
4049*4882a593Smuzhiyun      - ``chroma_format_idc``
4050*4882a593Smuzhiyun      -
4051*4882a593Smuzhiyun    * - __u64
4052*4882a593Smuzhiyun      - ``flags``
4053*4882a593Smuzhiyun      - See :ref:`Sequence Parameter Set Flags <hevc_sps_flags>`
4054*4882a593Smuzhiyun
4055*4882a593Smuzhiyun.. _hevc_sps_flags:
4056*4882a593Smuzhiyun
4057*4882a593Smuzhiyun``Sequence Parameter Set Flags``
4058*4882a593Smuzhiyun
4059*4882a593Smuzhiyun.. cssclass:: longtable
4060*4882a593Smuzhiyun
4061*4882a593Smuzhiyun.. flat-table::
4062*4882a593Smuzhiyun    :header-rows:  0
4063*4882a593Smuzhiyun    :stub-columns: 0
4064*4882a593Smuzhiyun    :widths:       1 1 2
4065*4882a593Smuzhiyun
4066*4882a593Smuzhiyun    * - ``V4L2_HEVC_SPS_FLAG_SEPARATE_COLOUR_PLANE``
4067*4882a593Smuzhiyun      - 0x00000001
4068*4882a593Smuzhiyun      -
4069*4882a593Smuzhiyun    * - ``V4L2_HEVC_SPS_FLAG_SCALING_LIST_ENABLED``
4070*4882a593Smuzhiyun      - 0x00000002
4071*4882a593Smuzhiyun      -
4072*4882a593Smuzhiyun    * - ``V4L2_HEVC_SPS_FLAG_AMP_ENABLED``
4073*4882a593Smuzhiyun      - 0x00000004
4074*4882a593Smuzhiyun      -
4075*4882a593Smuzhiyun    * - ``V4L2_HEVC_SPS_FLAG_SAMPLE_ADAPTIVE_OFFSET``
4076*4882a593Smuzhiyun      - 0x00000008
4077*4882a593Smuzhiyun      -
4078*4882a593Smuzhiyun    * - ``V4L2_HEVC_SPS_FLAG_PCM_ENABLED``
4079*4882a593Smuzhiyun      - 0x00000010
4080*4882a593Smuzhiyun      -
4081*4882a593Smuzhiyun    * - ``V4L2_HEVC_SPS_FLAG_PCM_LOOP_FILTER_DISABLED``
4082*4882a593Smuzhiyun      - 0x00000020
4083*4882a593Smuzhiyun      -
4084*4882a593Smuzhiyun    * - ``V4L2_HEVC_SPS_FLAG_LONG_TERM_REF_PICS_PRESENT``
4085*4882a593Smuzhiyun      - 0x00000040
4086*4882a593Smuzhiyun      -
4087*4882a593Smuzhiyun    * - ``V4L2_HEVC_SPS_FLAG_SPS_TEMPORAL_MVP_ENABLED``
4088*4882a593Smuzhiyun      - 0x00000080
4089*4882a593Smuzhiyun      -
4090*4882a593Smuzhiyun    * - ``V4L2_HEVC_SPS_FLAG_STRONG_INTRA_SMOOTHING_ENABLED``
4091*4882a593Smuzhiyun      - 0x00000100
4092*4882a593Smuzhiyun      -
4093*4882a593Smuzhiyun
4094*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_PPS (struct)``
4095*4882a593Smuzhiyun    Specifies the Picture Parameter Set fields (as extracted from the
4096*4882a593Smuzhiyun    bitstream) for the associated HEVC slice data.
4097*4882a593Smuzhiyun    These bitstream parameters are defined according to :ref:`hevc`.
4098*4882a593Smuzhiyun    They are described in section 7.4.3.3 "Picture parameter set RBSP
4099*4882a593Smuzhiyun    semantics" of the specification.
4100*4882a593Smuzhiyun
4101*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_hevc_pps
4102*4882a593Smuzhiyun
4103*4882a593Smuzhiyun.. cssclass:: longtable
4104*4882a593Smuzhiyun
4105*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_hevc_pps
4106*4882a593Smuzhiyun    :header-rows:  0
4107*4882a593Smuzhiyun    :stub-columns: 0
4108*4882a593Smuzhiyun    :widths:       1 1 2
4109*4882a593Smuzhiyun
4110*4882a593Smuzhiyun    * - __u8
4111*4882a593Smuzhiyun      - ``num_extra_slice_header_bits``
4112*4882a593Smuzhiyun      -
4113*4882a593Smuzhiyun    * - __s8
4114*4882a593Smuzhiyun      - ``init_qp_minus26``
4115*4882a593Smuzhiyun      -
4116*4882a593Smuzhiyun    * - __u8
4117*4882a593Smuzhiyun      - ``diff_cu_qp_delta_depth``
4118*4882a593Smuzhiyun      -
4119*4882a593Smuzhiyun    * - __s8
4120*4882a593Smuzhiyun      - ``pps_cb_qp_offset``
4121*4882a593Smuzhiyun      -
4122*4882a593Smuzhiyun    * - __s8
4123*4882a593Smuzhiyun      - ``pps_cr_qp_offset``
4124*4882a593Smuzhiyun      -
4125*4882a593Smuzhiyun    * - __u8
4126*4882a593Smuzhiyun      - ``num_tile_columns_minus1``
4127*4882a593Smuzhiyun      -
4128*4882a593Smuzhiyun    * - __u8
4129*4882a593Smuzhiyun      - ``num_tile_rows_minus1``
4130*4882a593Smuzhiyun      -
4131*4882a593Smuzhiyun    * - __u8
4132*4882a593Smuzhiyun      - ``column_width_minus1[20]``
4133*4882a593Smuzhiyun      -
4134*4882a593Smuzhiyun    * - __u8
4135*4882a593Smuzhiyun      - ``row_height_minus1[22]``
4136*4882a593Smuzhiyun      -
4137*4882a593Smuzhiyun    * - __s8
4138*4882a593Smuzhiyun      - ``pps_beta_offset_div2``
4139*4882a593Smuzhiyun      -
4140*4882a593Smuzhiyun    * - __s8
4141*4882a593Smuzhiyun      - ``pps_tc_offset_div2``
4142*4882a593Smuzhiyun      -
4143*4882a593Smuzhiyun    * - __u8
4144*4882a593Smuzhiyun      - ``log2_parallel_merge_level_minus2``
4145*4882a593Smuzhiyun      -
4146*4882a593Smuzhiyun    * - __u8
4147*4882a593Smuzhiyun      - ``padding[4]``
4148*4882a593Smuzhiyun      - Applications and drivers must set this to zero.
4149*4882a593Smuzhiyun    * - __u64
4150*4882a593Smuzhiyun      - ``flags``
4151*4882a593Smuzhiyun      - See :ref:`Picture Parameter Set Flags <hevc_pps_flags>`
4152*4882a593Smuzhiyun
4153*4882a593Smuzhiyun.. _hevc_pps_flags:
4154*4882a593Smuzhiyun
4155*4882a593Smuzhiyun``Picture Parameter Set Flags``
4156*4882a593Smuzhiyun
4157*4882a593Smuzhiyun.. cssclass:: longtable
4158*4882a593Smuzhiyun
4159*4882a593Smuzhiyun.. flat-table::
4160*4882a593Smuzhiyun    :header-rows:  0
4161*4882a593Smuzhiyun    :stub-columns: 0
4162*4882a593Smuzhiyun    :widths:       1 1 2
4163*4882a593Smuzhiyun
4164*4882a593Smuzhiyun    * - ``V4L2_HEVC_PPS_FLAG_DEPENDENT_SLICE_SEGMENT_ENABLED``
4165*4882a593Smuzhiyun      - 0x00000001
4166*4882a593Smuzhiyun      -
4167*4882a593Smuzhiyun    * - ``V4L2_HEVC_PPS_FLAG_OUTPUT_FLAG_PRESENT``
4168*4882a593Smuzhiyun      - 0x00000002
4169*4882a593Smuzhiyun      -
4170*4882a593Smuzhiyun    * - ``V4L2_HEVC_PPS_FLAG_SIGN_DATA_HIDING_ENABLED``
4171*4882a593Smuzhiyun      - 0x00000004
4172*4882a593Smuzhiyun      -
4173*4882a593Smuzhiyun    * - ``V4L2_HEVC_PPS_FLAG_CABAC_INIT_PRESENT``
4174*4882a593Smuzhiyun      - 0x00000008
4175*4882a593Smuzhiyun      -
4176*4882a593Smuzhiyun    * - ``V4L2_HEVC_PPS_FLAG_CONSTRAINED_INTRA_PRED``
4177*4882a593Smuzhiyun      - 0x00000010
4178*4882a593Smuzhiyun      -
4179*4882a593Smuzhiyun    * - ``V4L2_HEVC_PPS_FLAG_TRANSFORM_SKIP_ENABLED``
4180*4882a593Smuzhiyun      - 0x00000020
4181*4882a593Smuzhiyun      -
4182*4882a593Smuzhiyun    * - ``V4L2_HEVC_PPS_FLAG_CU_QP_DELTA_ENABLED``
4183*4882a593Smuzhiyun      - 0x00000040
4184*4882a593Smuzhiyun      -
4185*4882a593Smuzhiyun    * - ``V4L2_HEVC_PPS_FLAG_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT``
4186*4882a593Smuzhiyun      - 0x00000080
4187*4882a593Smuzhiyun      -
4188*4882a593Smuzhiyun    * - ``V4L2_HEVC_PPS_FLAG_WEIGHTED_PRED``
4189*4882a593Smuzhiyun      - 0x00000100
4190*4882a593Smuzhiyun      -
4191*4882a593Smuzhiyun    * - ``V4L2_HEVC_PPS_FLAG_WEIGHTED_BIPRED``
4192*4882a593Smuzhiyun      - 0x00000200
4193*4882a593Smuzhiyun      -
4194*4882a593Smuzhiyun    * - ``V4L2_HEVC_PPS_FLAG_TRANSQUANT_BYPASS_ENABLED``
4195*4882a593Smuzhiyun      - 0x00000400
4196*4882a593Smuzhiyun      -
4197*4882a593Smuzhiyun    * - ``V4L2_HEVC_PPS_FLAG_TILES_ENABLED``
4198*4882a593Smuzhiyun      - 0x00000800
4199*4882a593Smuzhiyun      -
4200*4882a593Smuzhiyun    * - ``V4L2_HEVC_PPS_FLAG_ENTROPY_CODING_SYNC_ENABLED``
4201*4882a593Smuzhiyun      - 0x00001000
4202*4882a593Smuzhiyun      -
4203*4882a593Smuzhiyun    * - ``V4L2_HEVC_PPS_FLAG_LOOP_FILTER_ACROSS_TILES_ENABLED``
4204*4882a593Smuzhiyun      - 0x00002000
4205*4882a593Smuzhiyun      -
4206*4882a593Smuzhiyun    * - ``V4L2_HEVC_PPS_FLAG_PPS_LOOP_FILTER_ACROSS_SLICES_ENABLED``
4207*4882a593Smuzhiyun      - 0x00004000
4208*4882a593Smuzhiyun      -
4209*4882a593Smuzhiyun    * - ``V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTER_OVERRIDE_ENABLED``
4210*4882a593Smuzhiyun      - 0x00008000
4211*4882a593Smuzhiyun      -
4212*4882a593Smuzhiyun    * - ``V4L2_HEVC_PPS_FLAG_PPS_DISABLE_DEBLOCKING_FILTER``
4213*4882a593Smuzhiyun      - 0x00010000
4214*4882a593Smuzhiyun      -
4215*4882a593Smuzhiyun    * - ``V4L2_HEVC_PPS_FLAG_LISTS_MODIFICATION_PRESENT``
4216*4882a593Smuzhiyun      - 0x00020000
4217*4882a593Smuzhiyun      -
4218*4882a593Smuzhiyun    * - ``V4L2_HEVC_PPS_FLAG_SLICE_SEGMENT_HEADER_EXTENSION_PRESENT``
4219*4882a593Smuzhiyun      - 0x00040000
4220*4882a593Smuzhiyun      -
4221*4882a593Smuzhiyun
4222*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_SLICE_PARAMS (struct)``
4223*4882a593Smuzhiyun    Specifies various slice-specific parameters, especially from the NAL unit
4224*4882a593Smuzhiyun    header, general slice segment header and weighted prediction parameter
4225*4882a593Smuzhiyun    parts of the bitstream.
4226*4882a593Smuzhiyun    These bitstream parameters are defined according to :ref:`hevc`.
4227*4882a593Smuzhiyun    They are described in section 7.4.7 "General slice segment header
4228*4882a593Smuzhiyun    semantics" of the specification.
4229*4882a593Smuzhiyun
4230*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_hevc_slice_params
4231*4882a593Smuzhiyun
4232*4882a593Smuzhiyun.. cssclass:: longtable
4233*4882a593Smuzhiyun
4234*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_hevc_slice_params
4235*4882a593Smuzhiyun    :header-rows:  0
4236*4882a593Smuzhiyun    :stub-columns: 0
4237*4882a593Smuzhiyun    :widths:       1 1 2
4238*4882a593Smuzhiyun
4239*4882a593Smuzhiyun    * - __u32
4240*4882a593Smuzhiyun      - ``bit_size``
4241*4882a593Smuzhiyun      - Size (in bits) of the current slice data.
4242*4882a593Smuzhiyun    * - __u32
4243*4882a593Smuzhiyun      - ``data_bit_offset``
4244*4882a593Smuzhiyun      - Offset (in bits) to the video data in the current slice data.
4245*4882a593Smuzhiyun    * - __u8
4246*4882a593Smuzhiyun      - ``nal_unit_type``
4247*4882a593Smuzhiyun      -
4248*4882a593Smuzhiyun    * - __u8
4249*4882a593Smuzhiyun      - ``nuh_temporal_id_plus1``
4250*4882a593Smuzhiyun      -
4251*4882a593Smuzhiyun    * - __u8
4252*4882a593Smuzhiyun      - ``slice_type``
4253*4882a593Smuzhiyun      -
4254*4882a593Smuzhiyun	(V4L2_HEVC_SLICE_TYPE_I, V4L2_HEVC_SLICE_TYPE_P or
4255*4882a593Smuzhiyun	V4L2_HEVC_SLICE_TYPE_B).
4256*4882a593Smuzhiyun    * - __u8
4257*4882a593Smuzhiyun      - ``colour_plane_id``
4258*4882a593Smuzhiyun      -
4259*4882a593Smuzhiyun    * - __u16
4260*4882a593Smuzhiyun      - ``slice_pic_order_cnt``
4261*4882a593Smuzhiyun      -
4262*4882a593Smuzhiyun    * - __u8
4263*4882a593Smuzhiyun      - ``num_ref_idx_l0_active_minus1``
4264*4882a593Smuzhiyun      -
4265*4882a593Smuzhiyun    * - __u8
4266*4882a593Smuzhiyun      - ``num_ref_idx_l1_active_minus1``
4267*4882a593Smuzhiyun      -
4268*4882a593Smuzhiyun    * - __u8
4269*4882a593Smuzhiyun      - ``collocated_ref_idx``
4270*4882a593Smuzhiyun      -
4271*4882a593Smuzhiyun    * - __u8
4272*4882a593Smuzhiyun      - ``five_minus_max_num_merge_cand``
4273*4882a593Smuzhiyun      -
4274*4882a593Smuzhiyun    * - __s8
4275*4882a593Smuzhiyun      - ``slice_qp_delta``
4276*4882a593Smuzhiyun      -
4277*4882a593Smuzhiyun    * - __s8
4278*4882a593Smuzhiyun      - ``slice_cb_qp_offset``
4279*4882a593Smuzhiyun      -
4280*4882a593Smuzhiyun    * - __s8
4281*4882a593Smuzhiyun      - ``slice_cr_qp_offset``
4282*4882a593Smuzhiyun      -
4283*4882a593Smuzhiyun    * - __s8
4284*4882a593Smuzhiyun      - ``slice_act_y_qp_offset``
4285*4882a593Smuzhiyun      -
4286*4882a593Smuzhiyun    * - __s8
4287*4882a593Smuzhiyun      - ``slice_act_cb_qp_offset``
4288*4882a593Smuzhiyun      -
4289*4882a593Smuzhiyun    * - __s8
4290*4882a593Smuzhiyun      - ``slice_act_cr_qp_offset``
4291*4882a593Smuzhiyun      -
4292*4882a593Smuzhiyun    * - __s8
4293*4882a593Smuzhiyun      - ``slice_beta_offset_div2``
4294*4882a593Smuzhiyun      -
4295*4882a593Smuzhiyun    * - __s8
4296*4882a593Smuzhiyun      - ``slice_tc_offset_div2``
4297*4882a593Smuzhiyun      -
4298*4882a593Smuzhiyun    * - __u8
4299*4882a593Smuzhiyun      - ``pic_struct``
4300*4882a593Smuzhiyun      -
4301*4882a593Smuzhiyun    * - __u8
4302*4882a593Smuzhiyun      - ``num_active_dpb_entries``
4303*4882a593Smuzhiyun      - The number of entries in ``dpb``.
4304*4882a593Smuzhiyun    * - __u8
4305*4882a593Smuzhiyun      - ``ref_idx_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
4306*4882a593Smuzhiyun      - The list of L0 reference elements as indices in the DPB.
4307*4882a593Smuzhiyun    * - __u8
4308*4882a593Smuzhiyun      - ``ref_idx_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
4309*4882a593Smuzhiyun      - The list of L1 reference elements as indices in the DPB.
4310*4882a593Smuzhiyun    * - __u8
4311*4882a593Smuzhiyun      - ``num_rps_poc_st_curr_before``
4312*4882a593Smuzhiyun      - The number of reference pictures in the short-term set that come before
4313*4882a593Smuzhiyun        the current frame.
4314*4882a593Smuzhiyun    * - __u8
4315*4882a593Smuzhiyun      - ``num_rps_poc_st_curr_after``
4316*4882a593Smuzhiyun      - The number of reference pictures in the short-term set that come after
4317*4882a593Smuzhiyun        the current frame.
4318*4882a593Smuzhiyun    * - __u8
4319*4882a593Smuzhiyun      - ``num_rps_poc_lt_curr``
4320*4882a593Smuzhiyun      - The number of reference pictures in the long-term set.
4321*4882a593Smuzhiyun    * - __u8
4322*4882a593Smuzhiyun      - ``padding[7]``
4323*4882a593Smuzhiyun      - Applications and drivers must set this to zero.
4324*4882a593Smuzhiyun    * - struct :c:type:`v4l2_hevc_dpb_entry`
4325*4882a593Smuzhiyun      - ``dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
4326*4882a593Smuzhiyun      - The decoded picture buffer, for meta-data about reference frames.
4327*4882a593Smuzhiyun    * - struct :c:type:`v4l2_hevc_pred_weight_table`
4328*4882a593Smuzhiyun      - ``pred_weight_table``
4329*4882a593Smuzhiyun      - The prediction weight coefficients for inter-picture prediction.
4330*4882a593Smuzhiyun    * - __u64
4331*4882a593Smuzhiyun      - ``flags``
4332*4882a593Smuzhiyun      - See :ref:`Slice Parameters Flags <hevc_slice_params_flags>`
4333*4882a593Smuzhiyun
4334*4882a593Smuzhiyun.. _hevc_slice_params_flags:
4335*4882a593Smuzhiyun
4336*4882a593Smuzhiyun``Slice Parameters Flags``
4337*4882a593Smuzhiyun
4338*4882a593Smuzhiyun.. cssclass:: longtable
4339*4882a593Smuzhiyun
4340*4882a593Smuzhiyun.. flat-table::
4341*4882a593Smuzhiyun    :header-rows:  0
4342*4882a593Smuzhiyun    :stub-columns: 0
4343*4882a593Smuzhiyun    :widths:       1 1 2
4344*4882a593Smuzhiyun
4345*4882a593Smuzhiyun    * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_LUMA``
4346*4882a593Smuzhiyun      - 0x00000001
4347*4882a593Smuzhiyun      -
4348*4882a593Smuzhiyun    * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_CHROMA``
4349*4882a593Smuzhiyun      - 0x00000002
4350*4882a593Smuzhiyun      -
4351*4882a593Smuzhiyun    * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_TEMPORAL_MVP_ENABLED``
4352*4882a593Smuzhiyun      - 0x00000004
4353*4882a593Smuzhiyun      -
4354*4882a593Smuzhiyun    * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_MVD_L1_ZERO``
4355*4882a593Smuzhiyun      - 0x00000008
4356*4882a593Smuzhiyun      -
4357*4882a593Smuzhiyun    * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_CABAC_INIT``
4358*4882a593Smuzhiyun      - 0x00000010
4359*4882a593Smuzhiyun      -
4360*4882a593Smuzhiyun    * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_COLLOCATED_FROM_L0``
4361*4882a593Smuzhiyun      - 0x00000020
4362*4882a593Smuzhiyun      -
4363*4882a593Smuzhiyun    * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_USE_INTEGER_MV``
4364*4882a593Smuzhiyun      - 0x00000040
4365*4882a593Smuzhiyun      -
4366*4882a593Smuzhiyun    * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_DEBLOCKING_FILTER_DISABLED``
4367*4882a593Smuzhiyun      - 0x00000080
4368*4882a593Smuzhiyun      -
4369*4882a593Smuzhiyun    * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_LOOP_FILTER_ACROSS_SLICES_ENABLED``
4370*4882a593Smuzhiyun      - 0x00000100
4371*4882a593Smuzhiyun      -
4372*4882a593Smuzhiyun    * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_DEPENDENT_SLICE_SEGMENT``
4373*4882a593Smuzhiyun      - 0x00000200
4374*4882a593Smuzhiyun      -
4375*4882a593Smuzhiyun
4376*4882a593Smuzhiyun.. c:type:: v4l2_hevc_dpb_entry
4377*4882a593Smuzhiyun
4378*4882a593Smuzhiyun.. cssclass:: longtable
4379*4882a593Smuzhiyun
4380*4882a593Smuzhiyun.. flat-table:: struct v4l2_hevc_dpb_entry
4381*4882a593Smuzhiyun    :header-rows:  0
4382*4882a593Smuzhiyun    :stub-columns: 0
4383*4882a593Smuzhiyun    :widths:       1 1 2
4384*4882a593Smuzhiyun
4385*4882a593Smuzhiyun    * - __u64
4386*4882a593Smuzhiyun      - ``timestamp``
4387*4882a593Smuzhiyun      - Timestamp of the V4L2 capture buffer to use as reference, used
4388*4882a593Smuzhiyun        with B-coded and P-coded frames. The timestamp refers to the
4389*4882a593Smuzhiyun	``timestamp`` field in struct :c:type:`v4l2_buffer`. Use the
4390*4882a593Smuzhiyun	:c:func:`v4l2_timeval_to_ns()` function to convert the struct
4391*4882a593Smuzhiyun	:c:type:`timeval` in struct :c:type:`v4l2_buffer` to a __u64.
4392*4882a593Smuzhiyun    * - __u8
4393*4882a593Smuzhiyun      - ``rps``
4394*4882a593Smuzhiyun      - The reference set for the reference frame
4395*4882a593Smuzhiyun        (V4L2_HEVC_DPB_ENTRY_RPS_ST_CURR_BEFORE,
4396*4882a593Smuzhiyun        V4L2_HEVC_DPB_ENTRY_RPS_ST_CURR_AFTER or
4397*4882a593Smuzhiyun        V4L2_HEVC_DPB_ENTRY_RPS_LT_CURR)
4398*4882a593Smuzhiyun    * - __u8
4399*4882a593Smuzhiyun      - ``field_pic``
4400*4882a593Smuzhiyun      - Whether the reference is a field picture or a frame.
4401*4882a593Smuzhiyun    * - __u16
4402*4882a593Smuzhiyun      - ``pic_order_cnt[2]``
4403*4882a593Smuzhiyun      - The picture order count of the reference. Only the first element of the
4404*4882a593Smuzhiyun        array is used for frame pictures, while the first element identifies the
4405*4882a593Smuzhiyun        top field and the second the bottom field in field-coded pictures.
4406*4882a593Smuzhiyun    * - __u8
4407*4882a593Smuzhiyun      - ``padding[2]``
4408*4882a593Smuzhiyun      - Applications and drivers must set this to zero.
4409*4882a593Smuzhiyun
4410*4882a593Smuzhiyun.. c:type:: v4l2_hevc_pred_weight_table
4411*4882a593Smuzhiyun
4412*4882a593Smuzhiyun.. cssclass:: longtable
4413*4882a593Smuzhiyun
4414*4882a593Smuzhiyun.. flat-table:: struct v4l2_hevc_pred_weight_table
4415*4882a593Smuzhiyun    :header-rows:  0
4416*4882a593Smuzhiyun    :stub-columns: 0
4417*4882a593Smuzhiyun    :widths:       1 1 2
4418*4882a593Smuzhiyun
4419*4882a593Smuzhiyun    * - __u8
4420*4882a593Smuzhiyun      - ``luma_log2_weight_denom``
4421*4882a593Smuzhiyun      -
4422*4882a593Smuzhiyun    * - __s8
4423*4882a593Smuzhiyun      - ``delta_chroma_log2_weight_denom``
4424*4882a593Smuzhiyun      -
4425*4882a593Smuzhiyun    * - __s8
4426*4882a593Smuzhiyun      - ``delta_luma_weight_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
4427*4882a593Smuzhiyun      -
4428*4882a593Smuzhiyun    * - __s8
4429*4882a593Smuzhiyun      - ``luma_offset_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
4430*4882a593Smuzhiyun      -
4431*4882a593Smuzhiyun    * - __s8
4432*4882a593Smuzhiyun      - ``delta_chroma_weight_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]``
4433*4882a593Smuzhiyun      -
4434*4882a593Smuzhiyun    * - __s8
4435*4882a593Smuzhiyun      - ``chroma_offset_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]``
4436*4882a593Smuzhiyun      -
4437*4882a593Smuzhiyun    * - __s8
4438*4882a593Smuzhiyun      - ``delta_luma_weight_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
4439*4882a593Smuzhiyun      -
4440*4882a593Smuzhiyun    * - __s8
4441*4882a593Smuzhiyun      - ``luma_offset_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
4442*4882a593Smuzhiyun      -
4443*4882a593Smuzhiyun    * - __s8
4444*4882a593Smuzhiyun      - ``delta_chroma_weight_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]``
4445*4882a593Smuzhiyun      -
4446*4882a593Smuzhiyun    * - __s8
4447*4882a593Smuzhiyun      - ``chroma_offset_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]``
4448*4882a593Smuzhiyun      -
4449*4882a593Smuzhiyun    * - __u8
4450*4882a593Smuzhiyun      - ``padding[6]``
4451*4882a593Smuzhiyun      - Applications and drivers must set this to zero.
4452*4882a593Smuzhiyun
4453*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_DECODE_MODE (enum)``
4454*4882a593Smuzhiyun    Specifies the decoding mode to use. Currently exposes slice-based and
4455*4882a593Smuzhiyun    frame-based decoding but new modes might be added later on.
4456*4882a593Smuzhiyun    This control is used as a modifier for V4L2_PIX_FMT_HEVC_SLICE
4457*4882a593Smuzhiyun    pixel format. Applications that support V4L2_PIX_FMT_HEVC_SLICE
4458*4882a593Smuzhiyun    are required to set this control in order to specify the decoding mode
4459*4882a593Smuzhiyun    that is expected for the buffer.
4460*4882a593Smuzhiyun    Drivers may expose a single or multiple decoding modes, depending
4461*4882a593Smuzhiyun    on what they can support.
4462*4882a593Smuzhiyun
4463*4882a593Smuzhiyun    .. note::
4464*4882a593Smuzhiyun
4465*4882a593Smuzhiyun       This menu control is not yet part of the public kernel API and
4466*4882a593Smuzhiyun       it is expected to change.
4467*4882a593Smuzhiyun
4468*4882a593Smuzhiyun.. c:type:: v4l2_mpeg_video_hevc_decode_mode
4469*4882a593Smuzhiyun
4470*4882a593Smuzhiyun.. cssclass:: longtable
4471*4882a593Smuzhiyun
4472*4882a593Smuzhiyun.. flat-table::
4473*4882a593Smuzhiyun    :header-rows:  0
4474*4882a593Smuzhiyun    :stub-columns: 0
4475*4882a593Smuzhiyun    :widths:       1 1 2
4476*4882a593Smuzhiyun
4477*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_DECODE_MODE_SLICE_BASED``
4478*4882a593Smuzhiyun      - 0
4479*4882a593Smuzhiyun      - Decoding is done at the slice granularity.
4480*4882a593Smuzhiyun        The OUTPUT buffer must contain a single slice.
4481*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_DECODE_MODE_FRAME_BASED``
4482*4882a593Smuzhiyun      - 1
4483*4882a593Smuzhiyun      - Decoding is done at the frame granularity.
4484*4882a593Smuzhiyun        The OUTPUT buffer must contain all slices needed to decode the
4485*4882a593Smuzhiyun        frame. The OUTPUT buffer must also contain both fields.
4486*4882a593Smuzhiyun
4487*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_START_CODE (enum)``
4488*4882a593Smuzhiyun    Specifies the HEVC slice start code expected for each slice.
4489*4882a593Smuzhiyun    This control is used as a modifier for V4L2_PIX_FMT_HEVC_SLICE
4490*4882a593Smuzhiyun    pixel format. Applications that support V4L2_PIX_FMT_HEVC_SLICE
4491*4882a593Smuzhiyun    are required to set this control in order to specify the start code
4492*4882a593Smuzhiyun    that is expected for the buffer.
4493*4882a593Smuzhiyun    Drivers may expose a single or multiple start codes, depending
4494*4882a593Smuzhiyun    on what they can support.
4495*4882a593Smuzhiyun
4496*4882a593Smuzhiyun    .. note::
4497*4882a593Smuzhiyun
4498*4882a593Smuzhiyun       This menu control is not yet part of the public kernel API and
4499*4882a593Smuzhiyun       it is expected to change.
4500*4882a593Smuzhiyun
4501*4882a593Smuzhiyun.. c:type:: v4l2_mpeg_video_hevc_start_code
4502*4882a593Smuzhiyun
4503*4882a593Smuzhiyun.. cssclass:: longtable
4504*4882a593Smuzhiyun
4505*4882a593Smuzhiyun.. flat-table::
4506*4882a593Smuzhiyun    :header-rows:  0
4507*4882a593Smuzhiyun    :stub-columns: 0
4508*4882a593Smuzhiyun    :widths:       1 1 2
4509*4882a593Smuzhiyun
4510*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_START_CODE_NONE``
4511*4882a593Smuzhiyun      - 0
4512*4882a593Smuzhiyun      - Selecting this value specifies that HEVC slices are passed
4513*4882a593Smuzhiyun        to the driver without any start code.
4514*4882a593Smuzhiyun    * - ``V4L2_MPEG_VIDEO_HEVC_START_CODE_ANNEX_B``
4515*4882a593Smuzhiyun      - 1
4516*4882a593Smuzhiyun      - Selecting this value specifies that HEVC slices are expected
4517*4882a593Smuzhiyun        to be prefixed by Annex B start codes. According to :ref:`hevc`
4518*4882a593Smuzhiyun        valid start codes can be 3-bytes 0x000001 or 4-bytes 0x00000001.
4519*4882a593Smuzhiyun
4520*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID (integer)``
4521*4882a593Smuzhiyun    Specifies a priority identifier for the NAL unit, which will be applied to
4522*4882a593Smuzhiyun    the base layer. By default this value is set to 0 for the base layer,
4523*4882a593Smuzhiyun    and the next layer will have the priority ID assigned as 1, 2, 3 and so on.
4524*4882a593Smuzhiyun    The video encoder can't decide the priority id to be applied to a layer,
4525*4882a593Smuzhiyun    so this has to come from client.
4526*4882a593Smuzhiyun    This is applicable to H264 and valid Range is from 0 to 63.
4527*4882a593Smuzhiyun    Source Rec. ITU-T H.264 (06/2019); G.7.4.1.1, G.8.8.1.
4528*4882a593Smuzhiyun
4529*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_LTR_COUNT (integer)``
4530*4882a593Smuzhiyun    Specifies the maximum number of Long Term Reference (LTR) frames at any
4531*4882a593Smuzhiyun    given time that the encoder can keep.
4532*4882a593Smuzhiyun    This is applicable to the H264 and HEVC encoders.
4533*4882a593Smuzhiyun
4534*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX (integer)``
4535*4882a593Smuzhiyun    After setting this control the frame that will be queued next
4536*4882a593Smuzhiyun    will be marked as a Long Term Reference (LTR) frame
4537*4882a593Smuzhiyun    and given this LTR index which ranges from 0 to LTR_COUNT-1.
4538*4882a593Smuzhiyun    This is applicable to the H264 and HEVC encoders.
4539*4882a593Smuzhiyun    Source Rec. ITU-T H.264 (06/2019); Table 7.9
4540*4882a593Smuzhiyun
4541*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES (bitmask)``
4542*4882a593Smuzhiyun    Specifies the Long Term Reference (LTR) frame(s) to be used for
4543*4882a593Smuzhiyun    encoding the next frame queued after setting this control.
4544*4882a593Smuzhiyun    This provides a bitmask which consists of bits [0, LTR_COUNT-1].
4545*4882a593Smuzhiyun    This is applicable to the H264 and HEVC encoders.
4546