Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2.. c:namespace:: V4L
3
4.. _codec-controls:
5
6***********************
7Codec Control Reference
8***********************
9
10Below all controls within the Codec control class are described. First
11the generic controls, then controls specific for certain hardware.
12
13.. note::
14
15 These controls are applicable to all codecs and not just MPEG. The
16 defines are prefixed with V4L2_CID_MPEG/V4L2_MPEG as the controls
17 were originally made for MPEG codecs and later extended to cover all
18 encoding formats.
19
20
21Generic Codec Controls
22======================
23
24
25.. _mpeg-control-id:
26
27Codec Control IDs
28-----------------
29
30``V4L2_CID_CODEC_CLASS (class)``
31 The Codec class descriptor. Calling
32 :ref:`VIDIOC_QUERYCTRL` for this control will
33 return a description of this control class. This description can be
34 used as the caption of a Tab page in a GUI, for example.
35
36.. _v4l2-mpeg-stream-type:
37
38``V4L2_CID_MPEG_STREAM_TYPE``
39 (enum)
40
41enum v4l2_mpeg_stream_type -
42 The MPEG-1, -2 or -4 output stream type. One cannot assume anything
43 here. Each hardware MPEG encoder tends to support different subsets
44 of the available MPEG stream types. This control is specific to
45 multiplexed MPEG streams. The currently defined stream types are:
46
47
48
49.. flat-table::
50 :header-rows: 0
51 :stub-columns: 0
52
53 * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_PS``
54 - MPEG-2 program stream
55 * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_TS``
56 - MPEG-2 transport stream
57 * - ``V4L2_MPEG_STREAM_TYPE_MPEG1_SS``
58 - MPEG-1 system stream
59 * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_DVD``
60 - MPEG-2 DVD-compatible stream
61 * - ``V4L2_MPEG_STREAM_TYPE_MPEG1_VCD``
62 - MPEG-1 VCD-compatible stream
63 * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD``
64 - MPEG-2 SVCD-compatible stream
65
66
67
68``V4L2_CID_MPEG_STREAM_PID_PMT (integer)``
69 Program Map Table Packet ID for the MPEG transport stream (default
70 16)
71
72``V4L2_CID_MPEG_STREAM_PID_AUDIO (integer)``
73 Audio Packet ID for the MPEG transport stream (default 256)
74
75``V4L2_CID_MPEG_STREAM_PID_VIDEO (integer)``
76 Video Packet ID for the MPEG transport stream (default 260)
77
78``V4L2_CID_MPEG_STREAM_PID_PCR (integer)``
79 Packet ID for the MPEG transport stream carrying PCR fields (default
80 259)
81
82``V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (integer)``
83 Audio ID for MPEG PES
84
85``V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (integer)``
86 Video ID for MPEG PES
87
88.. _v4l2-mpeg-stream-vbi-fmt:
89
90``V4L2_CID_MPEG_STREAM_VBI_FMT``
91 (enum)
92
93enum v4l2_mpeg_stream_vbi_fmt -
94 Some cards can embed VBI data (e. g. Closed Caption, Teletext) into
95 the MPEG stream. This control selects whether VBI data should be
96 embedded, and if so, what embedding method should be used. The list
97 of possible VBI formats depends on the driver. The currently defined
98 VBI format types are:
99
100
101
102.. tabularcolumns:: |p{6.6 cm}|p{10.9cm}|
103
104.. flat-table::
105 :header-rows: 0
106 :stub-columns: 0
107
108 * - ``V4L2_MPEG_STREAM_VBI_FMT_NONE``
109 - No VBI in the MPEG stream
110 * - ``V4L2_MPEG_STREAM_VBI_FMT_IVTV``
111 - VBI in private packets, IVTV format (documented in the kernel
112 sources in the file
113 ``Documentation/userspace-api/media/drivers/cx2341x-uapi.rst``)
114
115
116
117.. _v4l2-mpeg-audio-sampling-freq:
118
119``V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ``
120 (enum)
121
122enum v4l2_mpeg_audio_sampling_freq -
123 MPEG Audio sampling frequency. Possible values are:
124
125
126
127.. flat-table::
128 :header-rows: 0
129 :stub-columns: 0
130
131 * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100``
132 - 44.1 kHz
133 * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000``
134 - 48 kHz
135 * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000``
136 - 32 kHz
137
138
139
140.. _v4l2-mpeg-audio-encoding:
141
142``V4L2_CID_MPEG_AUDIO_ENCODING``
143 (enum)
144
145enum v4l2_mpeg_audio_encoding -
146 MPEG Audio encoding. This control is specific to multiplexed MPEG
147 streams. Possible values are:
148
149
150
151.. flat-table::
152 :header-rows: 0
153 :stub-columns: 0
154
155 * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_1``
156 - MPEG-1/2 Layer I encoding
157 * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_2``
158 - MPEG-1/2 Layer II encoding
159 * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_3``
160 - MPEG-1/2 Layer III encoding
161 * - ``V4L2_MPEG_AUDIO_ENCODING_AAC``
162 - MPEG-2/4 AAC (Advanced Audio Coding)
163 * - ``V4L2_MPEG_AUDIO_ENCODING_AC3``
164 - AC-3 aka ATSC A/52 encoding
165
166
167
168.. _v4l2-mpeg-audio-l1-bitrate:
169
170``V4L2_CID_MPEG_AUDIO_L1_BITRATE``
171 (enum)
172
173enum v4l2_mpeg_audio_l1_bitrate -
174 MPEG-1/2 Layer I bitrate. Possible values are:
175
176
177
178.. flat-table::
179 :header-rows: 0
180 :stub-columns: 0
181
182 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_32K``
183 - 32 kbit/s
184 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_64K``
185 - 64 kbit/s
186 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_96K``
187 - 96 kbit/s
188 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_128K``
189 - 128 kbit/s
190 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_160K``
191 - 160 kbit/s
192 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_192K``
193 - 192 kbit/s
194 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_224K``
195 - 224 kbit/s
196 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_256K``
197 - 256 kbit/s
198 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_288K``
199 - 288 kbit/s
200 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_320K``
201 - 320 kbit/s
202 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_352K``
203 - 352 kbit/s
204 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_384K``
205 - 384 kbit/s
206 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_416K``
207 - 416 kbit/s
208 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_448K``
209 - 448 kbit/s
210
211
212
213.. _v4l2-mpeg-audio-l2-bitrate:
214
215``V4L2_CID_MPEG_AUDIO_L2_BITRATE``
216 (enum)
217
218enum v4l2_mpeg_audio_l2_bitrate -
219 MPEG-1/2 Layer II bitrate. Possible values are:
220
221
222
223.. flat-table::
224 :header-rows: 0
225 :stub-columns: 0
226
227 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_32K``
228 - 32 kbit/s
229 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_48K``
230 - 48 kbit/s
231 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_56K``
232 - 56 kbit/s
233 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_64K``
234 - 64 kbit/s
235 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_80K``
236 - 80 kbit/s
237 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_96K``
238 - 96 kbit/s
239 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_112K``
240 - 112 kbit/s
241 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_128K``
242 - 128 kbit/s
243 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_160K``
244 - 160 kbit/s
245 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_192K``
246 - 192 kbit/s
247 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_224K``
248 - 224 kbit/s
249 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_256K``
250 - 256 kbit/s
251 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_320K``
252 - 320 kbit/s
253 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_384K``
254 - 384 kbit/s
255
256
257
258.. _v4l2-mpeg-audio-l3-bitrate:
259
260``V4L2_CID_MPEG_AUDIO_L3_BITRATE``
261 (enum)
262
263enum v4l2_mpeg_audio_l3_bitrate -
264 MPEG-1/2 Layer III bitrate. Possible values are:
265
266
267
268.. flat-table::
269 :header-rows: 0
270 :stub-columns: 0
271
272 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_32K``
273 - 32 kbit/s
274 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_40K``
275 - 40 kbit/s
276 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_48K``
277 - 48 kbit/s
278 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_56K``
279 - 56 kbit/s
280 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_64K``
281 - 64 kbit/s
282 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_80K``
283 - 80 kbit/s
284 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_96K``
285 - 96 kbit/s
286 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_112K``
287 - 112 kbit/s
288 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_128K``
289 - 128 kbit/s
290 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_160K``
291 - 160 kbit/s
292 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_192K``
293 - 192 kbit/s
294 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_224K``
295 - 224 kbit/s
296 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_256K``
297 - 256 kbit/s
298 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_320K``
299 - 320 kbit/s
300
301
302
303``V4L2_CID_MPEG_AUDIO_AAC_BITRATE (integer)``
304 AAC bitrate in bits per second.
305
306.. _v4l2-mpeg-audio-ac3-bitrate:
307
308``V4L2_CID_MPEG_AUDIO_AC3_BITRATE``
309 (enum)
310
311enum v4l2_mpeg_audio_ac3_bitrate -
312 AC-3 bitrate. Possible values are:
313
314
315
316.. flat-table::
317 :header-rows: 0
318 :stub-columns: 0
319
320 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_32K``
321 - 32 kbit/s
322 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_40K``
323 - 40 kbit/s
324 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_48K``
325 - 48 kbit/s
326 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_56K``
327 - 56 kbit/s
328 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_64K``
329 - 64 kbit/s
330 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_80K``
331 - 80 kbit/s
332 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_96K``
333 - 96 kbit/s
334 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_112K``
335 - 112 kbit/s
336 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_128K``
337 - 128 kbit/s
338 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_160K``
339 - 160 kbit/s
340 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_192K``
341 - 192 kbit/s
342 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_224K``
343 - 224 kbit/s
344 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_256K``
345 - 256 kbit/s
346 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_320K``
347 - 320 kbit/s
348 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_384K``
349 - 384 kbit/s
350 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_448K``
351 - 448 kbit/s
352 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_512K``
353 - 512 kbit/s
354 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_576K``
355 - 576 kbit/s
356 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_640K``
357 - 640 kbit/s
358
359
360
361.. _v4l2-mpeg-audio-mode:
362
363``V4L2_CID_MPEG_AUDIO_MODE``
364 (enum)
365
366enum v4l2_mpeg_audio_mode -
367 MPEG Audio mode. Possible values are:
368
369
370
371.. flat-table::
372 :header-rows: 0
373 :stub-columns: 0
374
375 * - ``V4L2_MPEG_AUDIO_MODE_STEREO``
376 - Stereo
377 * - ``V4L2_MPEG_AUDIO_MODE_JOINT_STEREO``
378 - Joint Stereo
379 * - ``V4L2_MPEG_AUDIO_MODE_DUAL``
380 - Bilingual
381 * - ``V4L2_MPEG_AUDIO_MODE_MONO``
382 - Mono
383
384
385
386.. _v4l2-mpeg-audio-mode-extension:
387
388``V4L2_CID_MPEG_AUDIO_MODE_EXTENSION``
389 (enum)
390
391enum v4l2_mpeg_audio_mode_extension -
392 Joint Stereo audio mode extension. In Layer I and II they indicate
393 which subbands are in intensity stereo. All other subbands are coded
394 in stereo. Layer III is not (yet) supported. Possible values are:
395
396.. tabularcolumns:: |p{9.1cm}|p{8.4cm}|
397
398.. flat-table::
399 :header-rows: 0
400 :stub-columns: 0
401
402 * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4``
403 - Subbands 4-31 in intensity stereo
404 * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8``
405 - Subbands 8-31 in intensity stereo
406 * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12``
407 - Subbands 12-31 in intensity stereo
408 * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16``
409 - Subbands 16-31 in intensity stereo
410
411
412
413.. _v4l2-mpeg-audio-emphasis:
414
415``V4L2_CID_MPEG_AUDIO_EMPHASIS``
416 (enum)
417
418enum v4l2_mpeg_audio_emphasis -
419 Audio Emphasis. Possible values are:
420
421
422
423.. flat-table::
424 :header-rows: 0
425 :stub-columns: 0
426
427 * - ``V4L2_MPEG_AUDIO_EMPHASIS_NONE``
428 - None
429 * - ``V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS``
430 - 50/15 microsecond emphasis
431 * - ``V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17``
432 - CCITT J.17
433
434
435
436.. _v4l2-mpeg-audio-crc:
437
438``V4L2_CID_MPEG_AUDIO_CRC``
439 (enum)
440
441enum v4l2_mpeg_audio_crc -
442 CRC method. Possible values are:
443
444
445
446.. flat-table::
447 :header-rows: 0
448 :stub-columns: 0
449
450 * - ``V4L2_MPEG_AUDIO_CRC_NONE``
451 - None
452 * - ``V4L2_MPEG_AUDIO_CRC_CRC16``
453 - 16 bit parity check
454
455
456
457``V4L2_CID_MPEG_AUDIO_MUTE (boolean)``
458 Mutes the audio when capturing. This is not done by muting audio
459 hardware, which can still produce a slight hiss, but in the encoder
460 itself, guaranteeing a fixed and reproducible audio bitstream. 0 =
461 unmuted, 1 = muted.
462
463.. _v4l2-mpeg-audio-dec-playback:
464
465``V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK``
466 (enum)
467
468enum v4l2_mpeg_audio_dec_playback -
469 Determines how monolingual audio should be played back. Possible
470 values are:
471
472
473
474.. tabularcolumns:: |p{9.8cm}|p{7.7cm}|
475
476.. flat-table::
477 :header-rows: 0
478 :stub-columns: 0
479
480 * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_AUTO``
481 - Automatically determines the best playback mode.
482 * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_STEREO``
483 - Stereo playback.
484 * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_LEFT``
485 - Left channel playback.
486 * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_RIGHT``
487 - Right channel playback.
488 * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_MONO``
489 - Mono playback.
490 * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_SWAPPED_STEREO``
491 - Stereo playback with swapped left and right channels.
492
493
494
495.. _v4l2-mpeg-audio-dec-multilingual-playback:
496
497``V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK``
498 (enum)
499
500enum v4l2_mpeg_audio_dec_playback -
501 Determines how multilingual audio should be played back.
502
503.. _v4l2-mpeg-video-encoding:
504
505``V4L2_CID_MPEG_VIDEO_ENCODING``
506 (enum)
507
508enum v4l2_mpeg_video_encoding -
509 MPEG Video encoding method. This control is specific to multiplexed
510 MPEG streams. Possible values are:
511
512
513
514.. flat-table::
515 :header-rows: 0
516 :stub-columns: 0
517
518 * - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_1``
519 - MPEG-1 Video encoding
520 * - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_2``
521 - MPEG-2 Video encoding
522 * - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC``
523 - MPEG-4 AVC (H.264) Video encoding
524
525
526
527.. _v4l2-mpeg-video-aspect:
528
529``V4L2_CID_MPEG_VIDEO_ASPECT``
530 (enum)
531
532enum v4l2_mpeg_video_aspect -
533 Video aspect. Possible values are:
534
535
536
537.. flat-table::
538 :header-rows: 0
539 :stub-columns: 0
540
541 * - ``V4L2_MPEG_VIDEO_ASPECT_1x1``
542 * - ``V4L2_MPEG_VIDEO_ASPECT_4x3``
543 * - ``V4L2_MPEG_VIDEO_ASPECT_16x9``
544 * - ``V4L2_MPEG_VIDEO_ASPECT_221x100``
545
546
547
548``V4L2_CID_MPEG_VIDEO_B_FRAMES (integer)``
549 Number of B-Frames (default 2)
550
551``V4L2_CID_MPEG_VIDEO_GOP_SIZE (integer)``
552 GOP size (default 12)
553
554``V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (boolean)``
555 GOP closure (default 1)
556
557``V4L2_CID_MPEG_VIDEO_PULLDOWN (boolean)``
558 Enable 3:2 pulldown (default 0)
559
560.. _v4l2-mpeg-video-bitrate-mode:
561
562``V4L2_CID_MPEG_VIDEO_BITRATE_MODE``
563 (enum)
564
565enum v4l2_mpeg_video_bitrate_mode -
566 Video bitrate mode. Possible values are:
567
568
569
570.. flat-table::
571 :header-rows: 0
572 :stub-columns: 0
573
574 * - ``V4L2_MPEG_VIDEO_BITRATE_MODE_VBR``
575 - Variable bitrate
576 * - ``V4L2_MPEG_VIDEO_BITRATE_MODE_CBR``
577 - Constant bitrate
578 * - ``V4L2_MPEG_VIDEO_BITRATE_MODE_CQ``
579 - Constant quality
580
581
582
583``V4L2_CID_MPEG_VIDEO_BITRATE (integer)``
584 Average video bitrate in bits per second.
585
586``V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (integer)``
587 Peak video bitrate in bits per second. Must be larger or equal to
588 the average video bitrate. It is ignored if the video bitrate mode
589 is set to constant bitrate.
590
591``V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY (integer)``
592 Constant quality level control. This control is applicable when
593 ``V4L2_CID_MPEG_VIDEO_BITRATE_MODE`` value is
594 ``V4L2_MPEG_VIDEO_BITRATE_MODE_CQ``. Valid range is 1 to 100
595 where 1 indicates lowest quality and 100 indicates highest quality.
596 Encoder will decide the appropriate quantization parameter and
597 bitrate to produce requested frame quality.
598
599
600``V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE (enum)``
601
602enum v4l2_mpeg_video_frame_skip_mode -
603 Indicates in what conditions the encoder should skip frames. If
604 encoding a frame would cause the encoded stream to be larger then a
605 chosen data limit then the frame will be skipped. Possible values
606 are:
607
608
609.. tabularcolumns:: |p{8.2cm}|p{9.3cm}|
610
611.. raw:: latex
612
613 \small
614
615.. flat-table::
616 :header-rows: 0
617 :stub-columns: 0
618
619 * - ``V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED``
620 - Frame skip mode is disabled.
621 * - ``V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT``
622 - Frame skip mode enabled and buffer limit is set by the chosen
623 level and is defined by the standard.
624 * - ``V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT``
625 - Frame skip mode enabled and buffer limit is set by the
626 :ref:`VBV (MPEG1/2/4) <v4l2-mpeg-video-vbv-size>` or
627 :ref:`CPB (H264) buffer size <v4l2-mpeg-video-h264-cpb-size>` control.
628
629.. raw:: latex
630
631 \normalsize
632
633``V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (integer)``
634 For every captured frame, skip this many subsequent frames (default
635 0).
636
637``V4L2_CID_MPEG_VIDEO_MUTE (boolean)``
638 "Mutes" the video to a fixed color when capturing. This is useful
639 for testing, to produce a fixed video bitstream. 0 = unmuted, 1 =
640 muted.
641
642``V4L2_CID_MPEG_VIDEO_MUTE_YUV (integer)``
643 Sets the "mute" color of the video. The supplied 32-bit integer is
644 interpreted as follows (bit 0 = least significant bit):
645
646
647
648.. flat-table::
649 :header-rows: 0
650 :stub-columns: 0
651
652 * - Bit 0:7
653 - V chrominance information
654 * - Bit 8:15
655 - U chrominance information
656 * - Bit 16:23
657 - Y luminance information
658 * - Bit 24:31
659 - Must be zero.
660
661
662
663.. _v4l2-mpeg-video-dec-pts:
664
665``V4L2_CID_MPEG_VIDEO_DEC_PTS (integer64)``
666 This read-only control returns the 33-bit video Presentation Time
667 Stamp as defined in ITU T-REC-H.222.0 and ISO/IEC 13818-1 of the
668 currently displayed frame. This is the same PTS as is used in
669 :ref:`VIDIOC_DECODER_CMD`.
670
671.. _v4l2-mpeg-video-dec-frame:
672
673``V4L2_CID_MPEG_VIDEO_DEC_FRAME (integer64)``
674 This read-only control returns the frame counter of the frame that
675 is currently displayed (decoded). This value is reset to 0 whenever
676 the decoder is started.
677
678``V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR (integer64)``
679 This control sets the conceal color in YUV color space. It describes
680 the client preference of the error conceal color in case of an error
681 where the reference frame is missing. The decoder should fill the
682 reference buffer with the preferred color and use it for future
683 decoding. The control is using 16 bits per channel.
684 Applicable to decoders.
685
686.. flat-table::
687 :header-rows: 0
688 :stub-columns: 0
689
690 * -
691 - 8bit format
692 - 10bit format
693 - 12bit format
694 * - Y luminance
695 - Bit 0:7
696 - Bit 0:9
697 - Bit 0:11
698 * - Cb chrominance
699 - Bit 16:23
700 - Bit 16:25
701 - Bit 16:27
702 * - Cr chrominance
703 - Bit 32:39
704 - Bit 32:41
705 - Bit 32:43
706 * - Must be zero
707 - Bit 48:63
708 - Bit 48:63
709 - Bit 48:63
710
711``V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (boolean)``
712 If enabled the decoder expects to receive a single slice per buffer,
713 otherwise the decoder expects a single frame in per buffer.
714 Applicable to the decoder, all codecs.
715
716``V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE (boolean)``
717 If the display delay is enabled then the decoder is forced to return
718 a CAPTURE buffer (decoded frame) after processing a certain number
719 of OUTPUT buffers. The delay can be set through
720 ``V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY``. This
721 feature can be used for example for generating thumbnails of videos.
722 Applicable to the decoder.
723
724``V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY (integer)``
725 Display delay value for decoder. The decoder is forced to
726 return a decoded frame after the set 'display delay' number of
727 frames. If this number is low it may result in frames returned out
728 of display order, in addition the hardware may still be using the
729 returned buffer as a reference picture for subsequent frames.
730
731``V4L2_CID_MPEG_VIDEO_AU_DELIMITER (boolean)``
732 If enabled then, AUD (Access Unit Delimiter) NALUs will be generated.
733 That could be useful to find the start of a frame without having to
734 fully parse each NALU. Applicable to the H264 and HEVC encoders.
735
736``V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (boolean)``
737 Enable writing sample aspect ratio in the Video Usability
738 Information. Applicable to the H264 encoder.
739
740.. _v4l2-mpeg-video-h264-vui-sar-idc:
741
742``V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC``
743 (enum)
744
745enum v4l2_mpeg_video_h264_vui_sar_idc -
746 VUI sample aspect ratio indicator for H.264 encoding. The value is
747 defined in the table E-1 in the standard. Applicable to the H264
748 encoder.
749
750
751
752.. flat-table::
753 :header-rows: 0
754 :stub-columns: 0
755
756 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED``
757 - Unspecified
758 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1``
759 - 1x1
760 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_12x11``
761 - 12x11
762 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_10x11``
763 - 10x11
764 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_16x11``
765 - 16x11
766 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_40x33``
767 - 40x33
768 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_24x11``
769 - 24x11
770 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_20x11``
771 - 20x11
772 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_32x11``
773 - 32x11
774 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_80x33``
775 - 80x33
776 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_18x11``
777 - 18x11
778 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_15x11``
779 - 15x11
780 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_64x33``
781 - 64x33
782 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_160x99``
783 - 160x99
784 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_4x3``
785 - 4x3
786 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_3x2``
787 - 3x2
788 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1``
789 - 2x1
790 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED``
791 - Extended SAR
792
793
794
795``V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (integer)``
796 Extended sample aspect ratio width for H.264 VUI encoding.
797 Applicable to the H264 encoder.
798
799``V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (integer)``
800 Extended sample aspect ratio height for H.264 VUI encoding.
801 Applicable to the H264 encoder.
802
803.. _v4l2-mpeg-video-h264-level:
804
805``V4L2_CID_MPEG_VIDEO_H264_LEVEL``
806 (enum)
807
808enum v4l2_mpeg_video_h264_level -
809 The level information for the H264 video elementary stream.
810 Applicable to the H264 encoder. Possible values are:
811
812
813
814.. flat-table::
815 :header-rows: 0
816 :stub-columns: 0
817
818 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_0``
819 - Level 1.0
820 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1B``
821 - Level 1B
822 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_1``
823 - Level 1.1
824 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_2``
825 - Level 1.2
826 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_3``
827 - Level 1.3
828 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_0``
829 - Level 2.0
830 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_1``
831 - Level 2.1
832 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_2``
833 - Level 2.2
834 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_0``
835 - Level 3.0
836 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_1``
837 - Level 3.1
838 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_2``
839 - Level 3.2
840 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_0``
841 - Level 4.0
842 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_1``
843 - Level 4.1
844 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_2``
845 - Level 4.2
846 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_0``
847 - Level 5.0
848 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_1``
849 - Level 5.1
850 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_2``
851 - Level 5.2
852 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_6_0``
853 - Level 6.0
854 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_6_1``
855 - Level 6.1
856 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_6_2``
857 - Level 6.2
858
859
860
861.. _v4l2-mpeg-video-mpeg2-level:
862
863``V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL``
864 (enum)
865
866enum v4l2_mpeg_video_mpeg2_level -
867 The level information for the MPEG2 elementary stream. Applicable to
868 MPEG2 codecs. Possible values are:
869
870
871
872.. flat-table::
873 :header-rows: 0
874 :stub-columns: 0
875
876 * - ``V4L2_MPEG_VIDEO_MPEG2_LEVEL_LOW``
877 - Low Level (LL)
878 * - ``V4L2_MPEG_VIDEO_MPEG2_LEVEL_MAIN``
879 - Main Level (ML)
880 * - ``V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH_1440``
881 - High-1440 Level (H-14)
882 * - ``V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH``
883 - High Level (HL)
884
885
886
887.. _v4l2-mpeg-video-mpeg4-level:
888
889``V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL``
890 (enum)
891
892enum v4l2_mpeg_video_mpeg4_level -
893 The level information for the MPEG4 elementary stream. Applicable to
894 the MPEG4 encoder. Possible values are:
895
896
897
898.. flat-table::
899 :header-rows: 0
900 :stub-columns: 0
901
902 * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_0``
903 - Level 0
904 * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_0B``
905 - Level 0b
906 * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_1``
907 - Level 1
908 * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_2``
909 - Level 2
910 * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_3``
911 - Level 3
912 * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_3B``
913 - Level 3b
914 * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_4``
915 - Level 4
916 * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_5``
917 - Level 5
918
919
920
921.. _v4l2-mpeg-video-h264-profile:
922
923``V4L2_CID_MPEG_VIDEO_H264_PROFILE``
924 (enum)
925
926enum v4l2_mpeg_video_h264_profile -
927 The profile information for H264. Applicable to the H264 encoder.
928 Possible values are:
929
930.. raw:: latex
931
932 \small
933
934.. tabularcolumns:: |p{10.2cm}|p{7.3cm}|
935
936.. flat-table::
937 :header-rows: 0
938 :stub-columns: 0
939
940 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE``
941 - Baseline profile
942 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE``
943 - Constrained Baseline profile
944 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_MAIN``
945 - Main profile
946 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED``
947 - Extended profile
948 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH``
949 - High profile
950 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10``
951 - High 10 profile
952 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422``
953 - High 422 profile
954 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE``
955 - High 444 Predictive profile
956 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA``
957 - High 10 Intra profile
958 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA``
959 - High 422 Intra profile
960 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_INTRA``
961 - High 444 Intra profile
962 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_CAVLC_444_INTRA``
963 - CAVLC 444 Intra profile
964 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_BASELINE``
965 - Scalable Baseline profile
966 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH``
967 - Scalable High profile
968 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA``
969 - Scalable High Intra profile
970 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH``
971 - Stereo High profile
972 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH``
973 - Multiview High profile
974 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH``
975 - Constrained High profile
976
977.. raw:: latex
978
979 \normalsize
980
981.. _v4l2-mpeg-video-mpeg2-profile:
982
983``V4L2_CID_MPEG_VIDEO_MPEG2_PROFILE``
984 (enum)
985
986enum v4l2_mpeg_video_mpeg2_profile -
987 The profile information for MPEG2. Applicable to MPEG2 codecs.
988 Possible values are:
989
990.. raw:: latex
991
992 \small
993
994.. tabularcolumns:: |p{10.2cm}|p{7.3cm}|
995
996.. flat-table::
997 :header-rows: 0
998 :stub-columns: 0
999
1000 * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_SIMPLE``
1001 - Simple profile (SP)
1002 * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_MAIN``
1003 - Main profile (MP)
1004 * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_SNR_SCALABLE``
1005 - SNR Scalable profile (SNR)
1006 * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_SPATIALLY_SCALABLE``
1007 - Spatially Scalable profile (Spt)
1008 * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_HIGH``
1009 - High profile (HP)
1010 * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_MULTIVIEW``
1011 - Multi-view profile (MVP)
1012
1013
1014.. raw:: latex
1015
1016 \normalsize
1017
1018.. _v4l2-mpeg-video-mpeg4-profile:
1019
1020``V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE``
1021 (enum)
1022
1023enum v4l2_mpeg_video_mpeg4_profile -
1024 The profile information for MPEG4. Applicable to the MPEG4 encoder.
1025 Possible values are:
1026
1027.. raw:: latex
1028
1029 \small
1030
1031.. tabularcolumns:: |p{11.8cm}|p{5.7cm}|
1032
1033.. flat-table::
1034 :header-rows: 0
1035 :stub-columns: 0
1036
1037 * - ``V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE``
1038 - Simple profile
1039 * - ``V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE``
1040 - Advanced Simple profile
1041 * - ``V4L2_MPEG_VIDEO_MPEG4_PROFILE_CORE``
1042 - Core profile
1043 * - ``V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE_SCALABLE``
1044 - Simple Scalable profile
1045 * - ``V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY``
1046 - Advanced Coding Efficiency profile
1047
1048.. raw:: latex
1049
1050 \normalsize
1051
1052``V4L2_CID_MPEG_VIDEO_MAX_REF_PIC (integer)``
1053 The maximum number of reference pictures used for encoding.
1054 Applicable to the encoder.
1055
1056.. _v4l2-mpeg-video-multi-slice-mode:
1057
1058``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE``
1059 (enum)
1060
1061enum v4l2_mpeg_video_multi_slice_mode -
1062 Determines how the encoder should handle division of frame into
1063 slices. Applicable to the encoder. Possible values are:
1064
1065
1066
1067.. tabularcolumns:: |p{9.6cm}|p{7.9cm}|
1068
1069.. flat-table::
1070 :header-rows: 0
1071 :stub-columns: 0
1072
1073 * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE``
1074 - Single slice per frame.
1075 * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB``
1076 - Multiple slices with set maximum number of macroblocks per slice.
1077 * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES``
1078 - Multiple slice with set maximum size in bytes per slice.
1079
1080
1081
1082``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB (integer)``
1083 The maximum number of macroblocks in a slice. Used when
1084 ``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE`` is set to
1085 ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB``. Applicable to the
1086 encoder.
1087
1088``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES (integer)``
1089 The maximum size of a slice in bytes. Used when
1090 ``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE`` is set to
1091 ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES``. Applicable to the
1092 encoder.
1093
1094.. _v4l2-mpeg-video-h264-loop-filter-mode:
1095
1096``V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE``
1097 (enum)
1098
1099enum v4l2_mpeg_video_h264_loop_filter_mode -
1100 Loop filter mode for H264 encoder. Possible values are:
1101
1102.. raw:: latex
1103
1104 \small
1105
1106.. tabularcolumns:: |p{13.5cm}|p{4.0cm}|
1107
1108.. flat-table::
1109 :header-rows: 0
1110 :stub-columns: 0
1111
1112 * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED``
1113 - Loop filter is enabled.
1114 * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED``
1115 - Loop filter is disabled.
1116 * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY``
1117 - Loop filter is disabled at the slice boundary.
1118
1119.. raw:: latex
1120
1121 \normalsize
1122
1123
1124``V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA (integer)``
1125 Loop filter alpha coefficient, defined in the H264 standard.
1126 This value corresponds to the slice_alpha_c0_offset_div2 slice header
1127 field, and should be in the range of -6 to +6, inclusive. The actual alpha
1128 offset FilterOffsetA is twice this value.
1129 Applicable to the H264 encoder.
1130
1131``V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA (integer)``
1132 Loop filter beta coefficient, defined in the H264 standard.
1133 This corresponds to the slice_beta_offset_div2 slice header field, and
1134 should be in the range of -6 to +6, inclusive. The actual beta offset
1135 FilterOffsetB is twice this value.
1136 Applicable to the H264 encoder.
1137
1138.. _v4l2-mpeg-video-h264-entropy-mode:
1139
1140``V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE``
1141 (enum)
1142
1143enum v4l2_mpeg_video_h264_entropy_mode -
1144 Entropy coding mode for H264 - CABAC/CAVALC. Applicable to the H264
1145 encoder. Possible values are:
1146
1147
1148.. tabularcolumns:: |p{9.0cm}|p{8.5cm}|
1149
1150
1151.. flat-table::
1152 :header-rows: 0
1153 :stub-columns: 0
1154
1155 * - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC``
1156 - Use CAVLC entropy coding.
1157 * - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC``
1158 - Use CABAC entropy coding.
1159
1160
1161
1162``V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM (boolean)``
1163 Enable 8X8 transform for H264. Applicable to the H264 encoder.
1164
1165``V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION (boolean)``
1166 Enable constrained intra prediction for H264. Applicable to the H264
1167 encoder.
1168
1169``V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET (integer)``
1170 Specify the offset that should be added to the luma quantization
1171 parameter to determine the chroma quantization parameter. Applicable
1172 to the H264 encoder.
1173
1174``V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (integer)``
1175 Cyclic intra macroblock refresh. This is the number of continuous
1176 macroblocks refreshed every frame. Each frame a successive set of
1177 macroblocks is refreshed until the cycle completes and starts from
1178 the top of the frame. Setting this control to zero means that
1179 macroblocks will not be refreshed. Note that this control will not
1180 take effect when ``V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD`` control
1181 is set to non zero value.
1182 Applicable to H264, H263 and MPEG4 encoder.
1183
1184``V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE (enum)``
1185
1186enum v4l2_mpeg_video_intra_refresh_period_type -
1187 Sets the type of intra refresh. The period to refresh
1188 the whole frame is specified by V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD.
1189 Note that if this control is not present, then it is undefined what
1190 refresh type is used and it is up to the driver to decide.
1191 Applicable to H264 and HEVC encoders. Possible values are:
1192
1193.. tabularcolumns:: |p{9.6cm}|p{7.9cm}|
1194
1195.. flat-table::
1196 :header-rows: 0
1197 :stub-columns: 0
1198
1199 * - ``V4L2_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM``
1200 - The whole frame is completely refreshed randomly
1201 after the specified period.
1202 * - ``V4L2_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_CYCLIC``
1203 - The whole frame MBs are completely refreshed in cyclic order
1204 after the specified period.
1205
1206``V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD (integer)``
1207 Intra macroblock refresh period. This sets the period to refresh
1208 the whole frame. In other words, this defines the number of frames
1209 for which the whole frame will be intra-refreshed. An example:
1210 setting period to 1 means that the whole frame will be refreshed,
1211 setting period to 2 means that the half of macroblocks will be
1212 intra-refreshed on frameX and the other half of macroblocks
1213 will be refreshed in frameX + 1 and so on. Setting the period to
1214 zero means no period is specified.
1215 Note that if the client sets this control to non zero value the
1216 ``V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB`` control shall be
1217 ignored. Applicable to H264 and HEVC encoders.
1218
1219``V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE (boolean)``
1220 Frame level rate control enable. If this control is disabled then
1221 the quantization parameter for each frame type is constant and set
1222 with appropriate controls (e.g.
1223 ``V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP``). If frame rate control is
1224 enabled then quantization parameter is adjusted to meet the chosen
1225 bitrate. Minimum and maximum value for the quantization parameter
1226 can be set with appropriate controls (e.g.
1227 ``V4L2_CID_MPEG_VIDEO_H263_MIN_QP``). Applicable to encoders.
1228
1229``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE (boolean)``
1230 Macroblock level rate control enable. Applicable to the MPEG4 and
1231 H264 encoders.
1232
1233``V4L2_CID_MPEG_VIDEO_MPEG4_QPEL (boolean)``
1234 Quarter pixel motion estimation for MPEG4. Applicable to the MPEG4
1235 encoder.
1236
1237``V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (integer)``
1238 Quantization parameter for an I frame for H263. Valid range: from 1
1239 to 31.
1240
1241``V4L2_CID_MPEG_VIDEO_H263_MIN_QP (integer)``
1242 Minimum quantization parameter for H263. Valid range: from 1 to 31.
1243
1244``V4L2_CID_MPEG_VIDEO_H263_MAX_QP (integer)``
1245 Maximum quantization parameter for H263. Valid range: from 1 to 31.
1246
1247``V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (integer)``
1248 Quantization parameter for an P frame for H263. Valid range: from 1
1249 to 31.
1250
1251``V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (integer)``
1252 Quantization parameter for an B frame for H263. Valid range: from 1
1253 to 31.
1254
1255``V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP (integer)``
1256 Quantization parameter for an I frame for H264. Valid range: from 0
1257 to 51.
1258
1259``V4L2_CID_MPEG_VIDEO_H264_MIN_QP (integer)``
1260 Minimum quantization parameter for H264. Valid range: from 0 to 51.
1261
1262``V4L2_CID_MPEG_VIDEO_H264_MAX_QP (integer)``
1263 Maximum quantization parameter for H264. Valid range: from 0 to 51.
1264
1265``V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP (integer)``
1266 Quantization parameter for an P frame for H264. Valid range: from 0
1267 to 51.
1268
1269``V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP (integer)``
1270 Quantization parameter for an B frame for H264. Valid range: from 0
1271 to 51.
1272
1273``V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP (integer)``
1274 Minimum quantization parameter for the H264 I frame to limit I frame
1275 quality to a range. Valid range: from 0 to 51. If
1276 V4L2_CID_MPEG_VIDEO_H264_MIN_QP is also set, the quantization parameter
1277 should be chosen to meet both requirements.
1278
1279``V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP (integer)``
1280 Maximum quantization parameter for the H264 I frame to limit I frame
1281 quality to a range. Valid range: from 0 to 51. If
1282 V4L2_CID_MPEG_VIDEO_H264_MAX_QP is also set, the quantization parameter
1283 should be chosen to meet both requirements.
1284
1285``V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP (integer)``
1286 Minimum quantization parameter for the H264 P frame to limit P frame
1287 quality to a range. Valid range: from 0 to 51. If
1288 V4L2_CID_MPEG_VIDEO_H264_MIN_QP is also set, the quantization parameter
1289 should be chosen to meet both requirements.
1290
1291``V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP (integer)``
1292 Maximum quantization parameter for the H264 P frame to limit P frame
1293 quality to a range. Valid range: from 0 to 51. If
1294 V4L2_CID_MPEG_VIDEO_H264_MAX_QP is also set, the quantization parameter
1295 should be chosen to meet both requirements.
1296
1297``V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MIN_QP (integer)``
1298 Minimum quantization parameter for the H264 B frame to limit B frame
1299 quality to a range. Valid range: from 0 to 51. If
1300 V4L2_CID_MPEG_VIDEO_H264_MIN_QP is also set, the quantization parameter
1301 should be chosen to meet both requirements.
1302
1303``V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MAX_QP (integer)``
1304 Maximum quantization parameter for the H264 B frame to limit B frame
1305 quality to a range. Valid range: from 0 to 51. If
1306 V4L2_CID_MPEG_VIDEO_H264_MAX_QP is also set, the quantization parameter
1307 should be chosen to meet both requirements.
1308
1309``V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (integer)``
1310 Quantization parameter for an I frame for MPEG4. Valid range: from 1
1311 to 31.
1312
1313``V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP (integer)``
1314 Minimum quantization parameter for MPEG4. Valid range: from 1 to 31.
1315
1316``V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP (integer)``
1317 Maximum quantization parameter for MPEG4. Valid range: from 1 to 31.
1318
1319``V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (integer)``
1320 Quantization parameter for an P frame for MPEG4. Valid range: from 1
1321 to 31.
1322
1323``V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (integer)``
1324 Quantization parameter for an B frame for MPEG4. Valid range: from 1
1325 to 31.
1326
1327.. _v4l2-mpeg-video-vbv-size:
1328
1329``V4L2_CID_MPEG_VIDEO_VBV_SIZE (integer)``
1330 The Video Buffer Verifier size in kilobytes, it is used as a
1331 limitation of frame skip. The VBV is defined in the standard as a
1332 mean to verify that the produced stream will be successfully
1333 decoded. The standard describes it as "Part of a hypothetical
1334 decoder that is conceptually connected to the output of the encoder.
1335 Its purpose is to provide a constraint on the variability of the
1336 data rate that an encoder or editing process may produce.".
1337 Applicable to the MPEG1, MPEG2, MPEG4 encoders.
1338
1339.. _v4l2-mpeg-video-vbv-delay:
1340
1341``V4L2_CID_MPEG_VIDEO_VBV_DELAY (integer)``
1342 Sets the initial delay in milliseconds for VBV buffer control.
1343
1344.. _v4l2-mpeg-video-hor-search-range:
1345
1346``V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (integer)``
1347 Horizontal search range defines maximum horizontal search area in
1348 pixels to search and match for the present Macroblock (MB) in the
1349 reference picture. This V4L2 control macro is used to set horizontal
1350 search range for motion estimation module in video encoder.
1351
1352.. _v4l2-mpeg-video-vert-search-range:
1353
1354``V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (integer)``
1355 Vertical search range defines maximum vertical search area in pixels
1356 to search and match for the present Macroblock (MB) in the reference
1357 picture. This V4L2 control macro is used to set vertical search
1358 range for motion estimation module in video encoder.
1359
1360.. _v4l2-mpeg-video-force-key-frame:
1361
1362``V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (button)``
1363 Force a key frame for the next queued buffer. Applicable to
1364 encoders. This is a general, codec-agnostic keyframe control.
1365
1366.. _v4l2-mpeg-video-h264-cpb-size:
1367
1368``V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE (integer)``
1369 The Coded Picture Buffer size in kilobytes, it is used as a
1370 limitation of frame skip. The CPB is defined in the H264 standard as
1371 a mean to verify that the produced stream will be successfully
1372 decoded. Applicable to the H264 encoder.
1373
1374``V4L2_CID_MPEG_VIDEO_H264_I_PERIOD (integer)``
1375 Period between I-frames in the open GOP for H264. In case of an open
1376 GOP this is the period between two I-frames. The period between IDR
1377 (Instantaneous Decoding Refresh) frames is taken from the GOP_SIZE
1378 control. An IDR frame, which stands for Instantaneous Decoding
1379 Refresh is an I-frame after which no prior frames are referenced.
1380 This means that a stream can be restarted from an IDR frame without
1381 the need to store or decode any previous frames. Applicable to the
1382 H264 encoder.
1383
1384.. _v4l2-mpeg-video-header-mode:
1385
1386``V4L2_CID_MPEG_VIDEO_HEADER_MODE``
1387 (enum)
1388
1389enum v4l2_mpeg_video_header_mode -
1390 Determines whether the header is returned as the first buffer or is
1391 it returned together with the first frame. Applicable to encoders.
1392 Possible values are:
1393
1394.. raw:: latex
1395
1396 \small
1397
1398.. tabularcolumns:: |p{10.3cm}|p{7.2cm}|
1399
1400.. flat-table::
1401 :header-rows: 0
1402 :stub-columns: 0
1403
1404 * - ``V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE``
1405 - The stream header is returned separately in the first buffer.
1406 * - ``V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME``
1407 - The stream header is returned together with the first encoded
1408 frame.
1409
1410.. raw:: latex
1411
1412 \normalsize
1413
1414
1415``V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (boolean)``
1416 Repeat the video sequence headers. Repeating these headers makes
1417 random access to the video stream easier. Applicable to the MPEG1, 2
1418 and 4 encoder.
1419
1420``V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (boolean)``
1421 Enabled the deblocking post processing filter for MPEG4 decoder.
1422 Applicable to the MPEG4 decoder.
1423
1424``V4L2_CID_MPEG_VIDEO_MPEG4_VOP_TIME_RES (integer)``
1425 vop_time_increment_resolution value for MPEG4. Applicable to the
1426 MPEG4 encoder.
1427
1428``V4L2_CID_MPEG_VIDEO_MPEG4_VOP_TIME_INC (integer)``
1429 vop_time_increment value for MPEG4. Applicable to the MPEG4
1430 encoder.
1431
1432``V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING (boolean)``
1433 Enable generation of frame packing supplemental enhancement
1434 information in the encoded bitstream. The frame packing SEI message
1435 contains the arrangement of L and R planes for 3D viewing.
1436 Applicable to the H264 encoder.
1437
1438``V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 (boolean)``
1439 Sets current frame as frame0 in frame packing SEI. Applicable to the
1440 H264 encoder.
1441
1442.. _v4l2-mpeg-video-h264-sei-fp-arrangement-type:
1443
1444``V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE``
1445 (enum)
1446
1447enum v4l2_mpeg_video_h264_sei_fp_arrangement_type -
1448 Frame packing arrangement type for H264 SEI. Applicable to the H264
1449 encoder. Possible values are:
1450
1451.. raw:: latex
1452
1453 \small
1454
1455.. tabularcolumns:: |p{12cm}|p{5.5cm}|
1456
1457.. flat-table::
1458 :header-rows: 0
1459 :stub-columns: 0
1460
1461 * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHEKERBOARD``
1462 - Pixels are alternatively from L and R.
1463 * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN``
1464 - L and R are interlaced by column.
1465 * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_ROW``
1466 - L and R are interlaced by row.
1467 * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_SIDE_BY_SIDE``
1468 - L is on the left, R on the right.
1469 * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM``
1470 - L is on top, R on bottom.
1471 * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL``
1472 - One view per frame.
1473
1474.. raw:: latex
1475
1476 \normalsize
1477
1478
1479
1480``V4L2_CID_MPEG_VIDEO_H264_FMO (boolean)``
1481 Enables flexible macroblock ordering in the encoded bitstream. It is
1482 a technique used for restructuring the ordering of macroblocks in
1483 pictures. Applicable to the H264 encoder.
1484
1485.. _v4l2-mpeg-video-h264-fmo-map-type:
1486
1487``V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE``
1488 (enum)
1489
1490enum v4l2_mpeg_video_h264_fmo_map_type -
1491 When using FMO, the map type divides the image in different scan
1492 patterns of macroblocks. Applicable to the H264 encoder. Possible
1493 values are:
1494
1495.. raw:: latex
1496
1497 \small
1498
1499.. tabularcolumns:: |p{12.5cm}|p{5.0cm}|
1500
1501.. flat-table::
1502 :header-rows: 0
1503 :stub-columns: 0
1504
1505 * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES``
1506 - Slices are interleaved one after other with macroblocks in run
1507 length order.
1508 * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES``
1509 - Scatters the macroblocks based on a mathematical function known to
1510 both encoder and decoder.
1511 * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER``
1512 - Macroblocks arranged in rectangular areas or regions of interest.
1513 * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT``
1514 - Slice groups grow in a cyclic way from centre to outwards.
1515 * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN``
1516 - Slice groups grow in raster scan pattern from left to right.
1517 * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN``
1518 - Slice groups grow in wipe scan pattern from top to bottom.
1519 * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT``
1520 - User defined map type.
1521
1522.. raw:: latex
1523
1524 \normalsize
1525
1526
1527
1528``V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP (integer)``
1529 Number of slice groups in FMO. Applicable to the H264 encoder.
1530
1531.. _v4l2-mpeg-video-h264-fmo-change-direction:
1532
1533``V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION``
1534 (enum)
1535
1536enum v4l2_mpeg_video_h264_fmo_change_dir -
1537 Specifies a direction of the slice group change for raster and wipe
1538 maps. Applicable to the H264 encoder. Possible values are:
1539
1540.. tabularcolumns:: |p{9.6cm}|p{7.9cm}|
1541
1542.. flat-table::
1543 :header-rows: 0
1544 :stub-columns: 0
1545
1546 * - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT``
1547 - Raster scan or wipe right.
1548 * - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT``
1549 - Reverse raster scan or wipe left.
1550
1551
1552
1553``V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE (integer)``
1554 Specifies the size of the first slice group for raster and wipe map.
1555 Applicable to the H264 encoder.
1556
1557``V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH (integer)``
1558 Specifies the number of consecutive macroblocks for the interleaved
1559 map. Applicable to the H264 encoder.
1560
1561``V4L2_CID_MPEG_VIDEO_H264_ASO (boolean)``
1562 Enables arbitrary slice ordering in encoded bitstream. Applicable to
1563 the H264 encoder.
1564
1565``V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER (integer)``
1566 Specifies the slice order in ASO. Applicable to the H264 encoder.
1567 The supplied 32-bit integer is interpreted as follows (bit 0 = least
1568 significant bit):
1569
1570
1571
1572.. flat-table::
1573 :header-rows: 0
1574 :stub-columns: 0
1575
1576 * - Bit 0:15
1577 - Slice ID
1578 * - Bit 16:32
1579 - Slice position or order
1580
1581
1582
1583``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING (boolean)``
1584 Enables H264 hierarchical coding. Applicable to the H264 encoder.
1585
1586.. _v4l2-mpeg-video-h264-hierarchical-coding-type:
1587
1588``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE``
1589 (enum)
1590
1591enum v4l2_mpeg_video_h264_hierarchical_coding_type -
1592 Specifies the hierarchical coding type. Applicable to the H264
1593 encoder. Possible values are:
1594
1595
1596
1597.. flat-table::
1598 :header-rows: 0
1599 :stub-columns: 0
1600
1601 * - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B``
1602 - Hierarchical B coding.
1603 * - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P``
1604 - Hierarchical P coding.
1605
1606
1607
1608``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (integer)``
1609 Specifies the number of hierarchical coding layers. Applicable to
1610 the H264 encoder.
1611
1612``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (integer)``
1613 Specifies a user defined QP for each layer. Applicable to the H264
1614 encoder. The supplied 32-bit integer is interpreted as follows (bit
1615 0 = least significant bit):
1616
1617
1618
1619.. flat-table::
1620 :header-rows: 0
1621 :stub-columns: 0
1622
1623 * - Bit 0:15
1624 - QP value
1625 * - Bit 16:32
1626 - Layer number
1627
1628``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L0_BR (integer)``
1629 Indicates bit rate (bps) for hierarchical coding layer 0 for H264 encoder.
1630
1631``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L1_BR (integer)``
1632 Indicates bit rate (bps) for hierarchical coding layer 1 for H264 encoder.
1633
1634``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L2_BR (integer)``
1635 Indicates bit rate (bps) for hierarchical coding layer 2 for H264 encoder.
1636
1637``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L3_BR (integer)``
1638 Indicates bit rate (bps) for hierarchical coding layer 3 for H264 encoder.
1639
1640``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L4_BR (integer)``
1641 Indicates bit rate (bps) for hierarchical coding layer 4 for H264 encoder.
1642
1643``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L5_BR (integer)``
1644 Indicates bit rate (bps) for hierarchical coding layer 5 for H264 encoder.
1645
1646``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L6_BR (integer)``
1647 Indicates bit rate (bps) for hierarchical coding layer 6 for H264 encoder.
1648
1649``V4L2_CID_FWHT_I_FRAME_QP (integer)``
1650 Quantization parameter for an I frame for FWHT. Valid range: from 1
1651 to 31.
1652
1653``V4L2_CID_FWHT_P_FRAME_QP (integer)``
1654 Quantization parameter for a P frame for FWHT. Valid range: from 1
1655 to 31.
1656
1657``V4L2_CID_MPEG_VIDEO_AVERAGE_QP (integer)``
1658 This read-only control returns the average QP value of the currently
1659 encoded frame. The value applies to the last dequeued capture buffer
1660 (VIDIOC_DQBUF). Its valid range depends on the encoding format and parameters.
1661 For H264, its valid range is from 0 to 51.
1662 For HEVC, its valid range is from 0 to 51 for 8 bit and
1663 from 0 to 63 for 10 bit.
1664 For H263 and MPEG4, its valid range is from 1 to 31.
1665 For VP8, its valid range is from 0 to 127.
1666 For VP9, its valid range is from 0 to 255.
1667 If the codec's MIN_QP and MAX_QP are set, then the QP will meet both requirements.
1668 Codecs need to always use the specified range, rather then a HW custom range.
1669 Applicable to encoders
1670
1671.. raw:: latex
1672
1673 \normalsize
1674
1675
1676MFC 5.1 MPEG Controls
1677=====================
1678
1679The following MPEG class controls deal with MPEG decoding and encoding
1680settings that are specific to the Multi Format Codec 5.1 device present
1681in the S5P family of SoCs by Samsung.
1682
1683
1684.. _mfc51-control-id:
1685
1686MFC 5.1 Control IDs
1687-------------------
1688
1689``V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE (boolean)``
1690 If the display delay is enabled then the decoder is forced to return
1691 a CAPTURE buffer (decoded frame) after processing a certain number
1692 of OUTPUT buffers. The delay can be set through
1693 ``V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY``. This
1694 feature can be used for example for generating thumbnails of videos.
1695 Applicable to the H264 decoder.
1696
1697 .. note::
1698
1699 This control is deprecated. Use the standard
1700 ``V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE`` control instead.
1701
1702``V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY (integer)``
1703 Display delay value for H264 decoder. The decoder is forced to
1704 return a decoded frame after the set 'display delay' number of
1705 frames. If this number is low it may result in frames returned out
1706 of display order, in addition the hardware may still be using the
1707 returned buffer as a reference picture for subsequent frames.
1708
1709 .. note::
1710
1711 This control is deprecated. Use the standard
1712 ``V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY`` control instead.
1713
1714``V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (integer)``
1715 The number of reference pictures used for encoding a P picture.
1716 Applicable to the H264 encoder.
1717
1718``V4L2_CID_MPEG_MFC51_VIDEO_PADDING (boolean)``
1719 Padding enable in the encoder - use a color instead of repeating
1720 border pixels. Applicable to encoders.
1721
1722``V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV (integer)``
1723 Padding color in the encoder. Applicable to encoders. The supplied
1724 32-bit integer is interpreted as follows (bit 0 = least significant
1725 bit):
1726
1727
1728
1729.. flat-table::
1730 :header-rows: 0
1731 :stub-columns: 0
1732
1733 * - Bit 0:7
1734 - V chrominance information
1735 * - Bit 8:15
1736 - U chrominance information
1737 * - Bit 16:23
1738 - Y luminance information
1739 * - Bit 24:31
1740 - Must be zero.
1741
1742
1743
1744``V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF (integer)``
1745 Reaction coefficient for MFC rate control. Applicable to encoders.
1746
1747 .. note::
1748
1749 #. Valid only when the frame level RC is enabled.
1750
1751 #. For tight CBR, this field must be small (ex. 2 ~ 10). For
1752 VBR, this field must be large (ex. 100 ~ 1000).
1753
1754 #. It is not recommended to use the greater number than
1755 FRAME_RATE * (10^9 / BIT_RATE).
1756
1757``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK (boolean)``
1758 Adaptive rate control for dark region. Valid only when H.264 and
1759 macroblock level RC is enabled
1760 (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264
1761 encoder.
1762
1763``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH (boolean)``
1764 Adaptive rate control for smooth region. Valid only when H.264 and
1765 macroblock level RC is enabled
1766 (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264
1767 encoder.
1768
1769``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (boolean)``
1770 Adaptive rate control for static region. Valid only when H.264 and
1771 macroblock level RC is enabled
1772 (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264
1773 encoder.
1774
1775``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY (boolean)``
1776 Adaptive rate control for activity region. Valid only when H.264 and
1777 macroblock level RC is enabled
1778 (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264
1779 encoder.
1780
1781.. _v4l2-mpeg-mfc51-video-frame-skip-mode:
1782
1783``V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE``
1784 (enum)
1785
1786 .. note::
1787
1788 This control is deprecated. Use the standard
1789 ``V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE`` control instead.
1790
1791enum v4l2_mpeg_mfc51_video_frame_skip_mode -
1792 Indicates in what conditions the encoder should skip frames. If
1793 encoding a frame would cause the encoded stream to be larger then a
1794 chosen data limit then the frame will be skipped. Possible values
1795 are:
1796
1797
1798.. tabularcolumns:: |p{9.4cm}|p{8.1cm}|
1799
1800.. raw:: latex
1801
1802 \small
1803
1804.. flat-table::
1805 :header-rows: 0
1806 :stub-columns: 0
1807
1808 * - ``V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_DISABLED``
1809 - Frame skip mode is disabled.
1810 * - ``V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT``
1811 - Frame skip mode enabled and buffer limit is set by the chosen
1812 level and is defined by the standard.
1813 * - ``V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT``
1814 - Frame skip mode enabled and buffer limit is set by the VBV
1815 (MPEG1/2/4) or CPB (H264) buffer size control.
1816
1817.. raw:: latex
1818
1819 \normalsize
1820
1821``V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT (integer)``
1822 Enable rate-control with fixed target bit. If this setting is
1823 enabled, then the rate control logic of the encoder will calculate
1824 the average bitrate for a GOP and keep it below or equal the set
1825 bitrate target. Otherwise the rate control logic calculates the
1826 overall average bitrate for the stream and keeps it below or equal
1827 to the set bitrate. In the first case the average bitrate for the
1828 whole stream will be smaller then the set bitrate. This is caused
1829 because the average is calculated for smaller number of frames, on
1830 the other hand enabling this setting will ensure that the stream
1831 will meet tight bandwidth constraints. Applicable to encoders.
1832
1833.. _v4l2-mpeg-mfc51-video-force-frame-type:
1834
1835``V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE``
1836 (enum)
1837
1838enum v4l2_mpeg_mfc51_video_force_frame_type -
1839 Force a frame type for the next queued buffer. Applicable to
1840 encoders. Possible values are:
1841
1842.. tabularcolumns:: |p{9.9cm}|p{7.6cm}|
1843
1844.. flat-table::
1845 :header-rows: 0
1846 :stub-columns: 0
1847
1848 * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_DISABLED``
1849 - Forcing a specific frame type disabled.
1850 * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_I_FRAME``
1851 - Force an I-frame.
1852 * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_NOT_CODED``
1853 - Force a non-coded frame.
1854
1855
1856CX2341x MPEG Controls
1857=====================
1858
1859The following MPEG class controls deal with MPEG encoding settings that
1860are specific to the Conexant CX23415 and CX23416 MPEG encoding chips.
1861
1862
1863.. _cx2341x-control-id:
1864
1865CX2341x Control IDs
1866-------------------
1867
1868.. _v4l2-mpeg-cx2341x-video-spatial-filter-mode:
1869
1870``V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE``
1871 (enum)
1872
1873enum v4l2_mpeg_cx2341x_video_spatial_filter_mode -
1874 Sets the Spatial Filter mode (default ``MANUAL``). Possible values
1875 are:
1876
1877
1878.. tabularcolumns:: |p{11.5cm}|p{6.0cm}|
1879
1880.. flat-table::
1881 :header-rows: 0
1882 :stub-columns: 0
1883
1884 * - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL``
1885 - Choose the filter manually
1886 * - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO``
1887 - Choose the filter automatically
1888
1889
1890
1891``V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (integer (0-15))``
1892 The setting for the Spatial Filter. 0 = off, 15 = maximum. (Default
1893 is 0.)
1894
1895.. _luma-spatial-filter-type:
1896
1897``V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE``
1898 (enum)
1899
1900enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type -
1901 Select the algorithm to use for the Luma Spatial Filter (default
1902 ``1D_HOR``). Possible values:
1903
1904.. tabularcolumns:: |p{13.1cm}|p{4.4cm}|
1905
1906.. raw:: latex
1907
1908 \footnotesize
1909
1910.. flat-table::
1911 :header-rows: 0
1912 :stub-columns: 0
1913
1914 * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF``
1915 - No filter
1916 * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR``
1917 - One-dimensional horizontal
1918 * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT``
1919 - One-dimensional vertical
1920 * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE``
1921 - Two-dimensional separable
1922 * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE``
1923 - Two-dimensional symmetrical non-separable
1924
1925.. raw:: latex
1926
1927 \normalsize
1928
1929.. _chroma-spatial-filter-type:
1930
1931``V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE``
1932 (enum)
1933
1934enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type -
1935 Select the algorithm for the Chroma Spatial Filter (default
1936 ``1D_HOR``). Possible values are:
1937
1938.. raw:: latex
1939
1940 \footnotesize
1941
1942.. tabularcolumns:: |p{11.0cm}|p{6.5cm}|
1943
1944.. flat-table::
1945 :header-rows: 0
1946 :stub-columns: 0
1947
1948 * - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF``
1949 - No filter
1950 * - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR``
1951 - One-dimensional horizontal
1952
1953.. raw:: latex
1954
1955 \normalsize
1956
1957.. _v4l2-mpeg-cx2341x-video-temporal-filter-mode:
1958
1959``V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE``
1960 (enum)
1961
1962enum v4l2_mpeg_cx2341x_video_temporal_filter_mode -
1963 Sets the Temporal Filter mode (default ``MANUAL``). Possible values
1964 are:
1965
1966.. raw:: latex
1967
1968 \footnotesize
1969
1970.. flat-table::
1971 :header-rows: 0
1972 :stub-columns: 0
1973
1974 * - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL``
1975 - Choose the filter manually
1976 * - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO``
1977 - Choose the filter automatically
1978
1979.. raw:: latex
1980
1981 \normalsize
1982
1983``V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (integer (0-31))``
1984 The setting for the Temporal Filter. 0 = off, 31 = maximum. (Default
1985 is 8 for full-scale capturing and 0 for scaled capturing.)
1986
1987.. _v4l2-mpeg-cx2341x-video-median-filter-type:
1988
1989``V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE``
1990 (enum)
1991
1992enum v4l2_mpeg_cx2341x_video_median_filter_type -
1993 Median Filter Type (default ``OFF``). Possible values are:
1994
1995
1996.. raw:: latex
1997
1998 \small
1999
2000.. tabularcolumns:: |p{11.0cm}|p{6.5cm}|
2001
2002.. flat-table::
2003 :header-rows: 0
2004 :stub-columns: 0
2005
2006 * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF``
2007 - No filter
2008 * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR``
2009 - Horizontal filter
2010 * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT``
2011 - Vertical filter
2012 * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT``
2013 - Horizontal and vertical filter
2014 * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG``
2015 - Diagonal filter
2016
2017.. raw:: latex
2018
2019 \normalsize
2020
2021``V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (integer (0-255))``
2022 Threshold above which the luminance median filter is enabled
2023 (default 0)
2024
2025``V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (integer (0-255))``
2026 Threshold below which the luminance median filter is enabled
2027 (default 255)
2028
2029``V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (integer (0-255))``
2030 Threshold above which the chroma median filter is enabled (default
2031 0)
2032
2033``V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (integer (0-255))``
2034 Threshold below which the chroma median filter is enabled (default
2035 255)
2036
2037``V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (boolean)``
2038 The CX2341X MPEG encoder can insert one empty MPEG-2 PES packet into
2039 the stream between every four video frames. The packet size is 2048
2040 bytes, including the packet_start_code_prefix and stream_id
2041 fields. The stream_id is 0xBF (private stream 2). The payload
2042 consists of 0x00 bytes, to be filled in by the application. 0 = do
2043 not insert, 1 = insert packets.
2044
2045
2046VPX Control Reference
2047=====================
2048
2049The VPX controls include controls for encoding parameters of VPx video
2050codec.
2051
2052
2053.. _vpx-control-id:
2054
2055VPX Control IDs
2056---------------
2057
2058.. _v4l2-vpx-num-partitions:
2059
2060``V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS``
2061 (enum)
2062
2063enum v4l2_vp8_num_partitions -
2064 The number of token partitions to use in VP8 encoder. Possible
2065 values are:
2066
2067
2068
2069.. flat-table::
2070 :header-rows: 0
2071 :stub-columns: 0
2072
2073 * - ``V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION``
2074 - 1 coefficient partition
2075 * - ``V4L2_CID_MPEG_VIDEO_VPX_2_PARTITIONS``
2076 - 2 coefficient partitions
2077 * - ``V4L2_CID_MPEG_VIDEO_VPX_4_PARTITIONS``
2078 - 4 coefficient partitions
2079 * - ``V4L2_CID_MPEG_VIDEO_VPX_8_PARTITIONS``
2080 - 8 coefficient partitions
2081
2082
2083
2084``V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4 (boolean)``
2085 Setting this prevents intra 4x4 mode in the intra mode decision.
2086
2087.. _v4l2-vpx-num-ref-frames:
2088
2089``V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES``
2090 (enum)
2091
2092enum v4l2_vp8_num_ref_frames -
2093 The number of reference pictures for encoding P frames. Possible
2094 values are:
2095
2096.. tabularcolumns:: |p{7.5cm}|p{7.5cm}|
2097
2098.. raw:: latex
2099
2100 \small
2101
2102.. flat-table::
2103 :header-rows: 0
2104 :stub-columns: 0
2105
2106 * - ``V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME``
2107 - Last encoded frame will be searched
2108 * - ``V4L2_CID_MPEG_VIDEO_VPX_2_REF_FRAME``
2109 - Two frames will be searched among the last encoded frame, the
2110 golden frame and the alternate reference (altref) frame. The
2111 encoder implementation will decide which two are chosen.
2112 * - ``V4L2_CID_MPEG_VIDEO_VPX_3_REF_FRAME``
2113 - The last encoded frame, the golden frame and the altref frame will
2114 be searched.
2115
2116.. raw:: latex
2117
2118 \normalsize
2119
2120
2121
2122``V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL (integer)``
2123 Indicates the loop filter level. The adjustment of the loop filter
2124 level is done via a delta value against a baseline loop filter
2125 value.
2126
2127``V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS (integer)``
2128 This parameter affects the loop filter. Anything above zero weakens
2129 the deblocking effect on the loop filter.
2130
2131``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD (integer)``
2132 Sets the refresh period for the golden frame. The period is defined
2133 in number of frames. For a value of 'n', every nth frame starting
2134 from the first key frame will be taken as a golden frame. For eg.
2135 for encoding sequence of 0, 1, 2, 3, 4, 5, 6, 7 where the golden
2136 frame refresh period is set as 4, the frames 0, 4, 8 etc will be
2137 taken as the golden frames as frame 0 is always a key frame.
2138
2139.. _v4l2-vpx-golden-frame-sel:
2140
2141``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL``
2142 (enum)
2143
2144enum v4l2_vp8_golden_frame_sel -
2145 Selects the golden frame for encoding. Possible values are:
2146
2147.. raw:: latex
2148
2149 \scriptsize
2150
2151.. tabularcolumns:: |p{8.6cm}|p{8.9cm}|
2152
2153.. flat-table::
2154 :header-rows: 0
2155 :stub-columns: 0
2156
2157 * - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV``
2158 - Use the (n-2)th frame as a golden frame, current frame index being
2159 'n'.
2160 * - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD``
2161 - Use the previous specific frame indicated by
2162 ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD`` as a
2163 golden frame.
2164
2165.. raw:: latex
2166
2167 \normalsize
2168
2169
2170``V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (integer)``
2171 Minimum quantization parameter for VP8.
2172
2173``V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (integer)``
2174 Maximum quantization parameter for VP8.
2175
2176``V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (integer)``
2177 Quantization parameter for an I frame for VP8.
2178
2179``V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (integer)``
2180 Quantization parameter for a P frame for VP8.
2181
2182.. _v4l2-mpeg-video-vp8-profile:
2183
2184``V4L2_CID_MPEG_VIDEO_VP8_PROFILE``
2185 (enum)
2186
2187enum v4l2_mpeg_video_vp8_profile -
2188 This control allows selecting the profile for VP8 encoder.
2189 This is also used to enumerate supported profiles by VP8 encoder or decoder.
2190 Possible values are:
2191
2192.. flat-table::
2193 :header-rows: 0
2194 :stub-columns: 0
2195
2196 * - ``V4L2_MPEG_VIDEO_VP8_PROFILE_0``
2197 - Profile 0
2198 * - ``V4L2_MPEG_VIDEO_VP8_PROFILE_1``
2199 - Profile 1
2200 * - ``V4L2_MPEG_VIDEO_VP8_PROFILE_2``
2201 - Profile 2
2202 * - ``V4L2_MPEG_VIDEO_VP8_PROFILE_3``
2203 - Profile 3
2204
2205.. _v4l2-mpeg-video-vp9-profile:
2206
2207``V4L2_CID_MPEG_VIDEO_VP9_PROFILE``
2208 (enum)
2209
2210enum v4l2_mpeg_video_vp9_profile -
2211 This control allows selecting the profile for VP9 encoder.
2212 This is also used to enumerate supported profiles by VP9 encoder or decoder.
2213 Possible values are:
2214
2215.. flat-table::
2216 :header-rows: 0
2217 :stub-columns: 0
2218
2219 * - ``V4L2_MPEG_VIDEO_VP9_PROFILE_0``
2220 - Profile 0
2221 * - ``V4L2_MPEG_VIDEO_VP9_PROFILE_1``
2222 - Profile 1
2223 * - ``V4L2_MPEG_VIDEO_VP9_PROFILE_2``
2224 - Profile 2
2225 * - ``V4L2_MPEG_VIDEO_VP9_PROFILE_3``
2226 - Profile 3
2227
2228.. _v4l2-mpeg-video-vp9-level:
2229
2230``V4L2_CID_MPEG_VIDEO_VP9_LEVEL (enum)``
2231
2232enum v4l2_mpeg_video_vp9_level -
2233 This control allows selecting the level for VP9 encoder.
2234 This is also used to enumerate supported levels by VP9 encoder or decoder.
2235 More information can be found at
2236 `webmproject <https://www.webmproject.org/vp9/levels/>`__. Possible values are:
2237
2238.. flat-table::
2239 :header-rows: 0
2240 :stub-columns: 0
2241
2242 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_1_0``
2243 - Level 1
2244 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_1_1``
2245 - Level 1.1
2246 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_2_0``
2247 - Level 2
2248 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_2_1``
2249 - Level 2.1
2250 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_3_0``
2251 - Level 3
2252 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_3_1``
2253 - Level 3.1
2254 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_4_0``
2255 - Level 4
2256 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_4_1``
2257 - Level 4.1
2258 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_5_0``
2259 - Level 5
2260 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_5_1``
2261 - Level 5.1
2262 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_5_2``
2263 - Level 5.2
2264 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_6_0``
2265 - Level 6
2266 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_6_1``
2267 - Level 6.1
2268 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_6_2``
2269 - Level 6.2
2270
2271
2272High Efficiency Video Coding (HEVC/H.265) Control Reference
2273===========================================================
2274
2275The HEVC/H.265 controls include controls for encoding parameters of HEVC/H.265
2276video codec.
2277
2278
2279.. _hevc-control-id:
2280
2281HEVC/H.265 Control IDs
2282----------------------
2283
2284``V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (integer)``
2285 Minimum quantization parameter for HEVC.
2286 Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit.
2287
2288``V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (integer)``
2289 Maximum quantization parameter for HEVC.
2290 Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit.
2291
2292``V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (integer)``
2293 Quantization parameter for an I frame for HEVC.
2294 Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
2295 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP].
2296
2297``V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (integer)``
2298 Quantization parameter for a P frame for HEVC.
2299 Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
2300 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP].
2301
2302``V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (integer)``
2303 Quantization parameter for a B frame for HEVC.
2304 Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
2305 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP].
2306
2307``V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MIN_QP (integer)``
2308 Minimum quantization parameter for the HEVC I frame to limit I frame
2309 quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit.
2310 If V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP is also set, the quantization parameter
2311 should be chosen to meet both requirements.
2312
2313``V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MAX_QP (integer)``
2314 Maximum quantization parameter for the HEVC I frame to limit I frame
2315 quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit.
2316 If V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP is also set, the quantization parameter
2317 should be chosen to meet both requirements.
2318
2319``V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MIN_QP (integer)``
2320 Minimum quantization parameter for the HEVC P frame to limit P frame
2321 quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit.
2322 If V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP is also set, the quantization parameter
2323 should be chosen to meet both requirements.
2324
2325``V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP (integer)``
2326 Maximum quantization parameter for the HEVC P frame to limit P frame
2327 quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit.
2328 If V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP is also set, the quantization parameter
2329 should be chosen to meet both requirements.
2330
2331``V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP (integer)``
2332 Minimum quantization parameter for the HEVC B frame to limit B frame
2333 quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit.
2334 If V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP is also set, the quantization parameter
2335 should be chosen to meet both requirements.
2336
2337``V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP (integer)``
2338 Maximum quantization parameter for the HEVC B frame to limit B frame
2339 quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit.
2340 If V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP is also set, the quantization parameter
2341 should be chosen to meet both requirements.
2342
2343``V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (boolean)``
2344 HIERARCHICAL_QP allows the host to specify the quantization parameter
2345 values for each temporal layer through HIERARCHICAL_QP_LAYER. This is
2346 valid only if HIERARCHICAL_CODING_LAYER is greater than 1. Setting the
2347 control value to 1 enables setting of the QP values for the layers.
2348
2349.. _v4l2-hevc-hier-coding-type:
2350
2351``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE``
2352 (enum)
2353
2354enum v4l2_mpeg_video_hevc_hier_coding_type -
2355 Selects the hierarchical coding type for encoding. Possible values are:
2356
2357.. raw:: latex
2358
2359 \footnotesize
2360
2361.. tabularcolumns:: |p{8.2cm}|p{9.3cm}|
2362
2363.. flat-table::
2364 :header-rows: 0
2365 :stub-columns: 0
2366
2367 * - ``V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B``
2368 - Use the B frame for hierarchical coding.
2369 * - ``V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P``
2370 - Use the P frame for hierarchical coding.
2371
2372.. raw:: latex
2373
2374 \normalsize
2375
2376
2377``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (integer)``
2378 Selects the hierarchical coding layer. In normal encoding
2379 (non-hierarchial coding), it should be zero. Possible values are [0, 6].
2380 0 indicates HIERARCHICAL CODING LAYER 0, 1 indicates HIERARCHICAL CODING
2381 LAYER 1 and so on.
2382
2383``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (integer)``
2384 Indicates quantization parameter for hierarchical coding layer 0.
2385 Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
2386 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP].
2387
2388``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (integer)``
2389 Indicates quantization parameter for hierarchical coding layer 1.
2390 Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
2391 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP].
2392
2393``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (integer)``
2394 Indicates quantization parameter for hierarchical coding layer 2.
2395 Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
2396 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP].
2397
2398``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (integer)``
2399 Indicates quantization parameter for hierarchical coding layer 3.
2400 Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
2401 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP].
2402
2403``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (integer)``
2404 Indicates quantization parameter for hierarchical coding layer 4.
2405 Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
2406 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP].
2407
2408``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (integer)``
2409 Indicates quantization parameter for hierarchical coding layer 5.
2410 Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
2411 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP].
2412
2413``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (integer)``
2414 Indicates quantization parameter for hierarchical coding layer 6.
2415 Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
2416 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP].
2417
2418.. _v4l2-hevc-profile:
2419
2420``V4L2_CID_MPEG_VIDEO_HEVC_PROFILE``
2421 (enum)
2422
2423enum v4l2_mpeg_video_hevc_profile -
2424 Select the desired profile for HEVC encoder.
2425
2426.. raw:: latex
2427
2428 \footnotesize
2429
2430.. tabularcolumns:: |p{9.0cm}|p{8.5cm}|
2431
2432.. flat-table::
2433 :header-rows: 0
2434 :stub-columns: 0
2435
2436 * - ``V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN``
2437 - Main profile.
2438 * - ``V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE``
2439 - Main still picture profile.
2440 * - ``V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10``
2441 - Main 10 profile.
2442
2443.. raw:: latex
2444
2445 \normalsize
2446
2447
2448.. _v4l2-hevc-level:
2449
2450``V4L2_CID_MPEG_VIDEO_HEVC_LEVEL``
2451 (enum)
2452
2453enum v4l2_mpeg_video_hevc_level -
2454 Selects the desired level for HEVC encoder.
2455
2456================================== =========
2457``V4L2_MPEG_VIDEO_HEVC_LEVEL_1`` Level 1.0
2458``V4L2_MPEG_VIDEO_HEVC_LEVEL_2`` Level 2.0
2459``V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1`` Level 2.1
2460``V4L2_MPEG_VIDEO_HEVC_LEVEL_3`` Level 3.0
2461``V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1`` Level 3.1
2462``V4L2_MPEG_VIDEO_HEVC_LEVEL_4`` Level 4.0
2463``V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1`` Level 4.1
2464``V4L2_MPEG_VIDEO_HEVC_LEVEL_5`` Level 5.0
2465``V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1`` Level 5.1
2466``V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2`` Level 5.2
2467``V4L2_MPEG_VIDEO_HEVC_LEVEL_6`` Level 6.0
2468``V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1`` Level 6.1
2469``V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2`` Level 6.2
2470================================== =========
2471
2472``V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (integer)``
2473 Indicates the number of evenly spaced subintervals, called ticks, within
2474 one second. This is a 16 bit unsigned integer and has a maximum value up to
2475 0xffff and a minimum value of 1.
2476
2477.. _v4l2-hevc-tier:
2478
2479``V4L2_CID_MPEG_VIDEO_HEVC_TIER``
2480 (enum)
2481
2482enum v4l2_mpeg_video_hevc_tier -
2483 TIER_FLAG specifies tiers information of the HEVC encoded picture. Tier
2484 were made to deal with applications that differ in terms of maximum bit
2485 rate. Setting the flag to 0 selects HEVC tier as Main tier and setting
2486 this flag to 1 indicates High tier. High tier is for applications requiring
2487 high bit rates.
2488
2489================================== ==========
2490``V4L2_MPEG_VIDEO_HEVC_TIER_MAIN`` Main tier.
2491``V4L2_MPEG_VIDEO_HEVC_TIER_HIGH`` High tier.
2492================================== ==========
2493
2494
2495``V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (integer)``
2496 Selects HEVC maximum coding unit depth.
2497
2498.. _v4l2-hevc-loop-filter-mode:
2499
2500``V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE``
2501 (enum)
2502
2503enum v4l2_mpeg_video_hevc_loop_filter_mode -
2504 Loop filter mode for HEVC encoder. Possible values are:
2505
2506.. raw:: latex
2507
2508 \footnotesize
2509
2510.. tabularcolumns:: |p{12.1cm}|p{5.4cm}|
2511
2512.. flat-table::
2513 :header-rows: 0
2514 :stub-columns: 0
2515
2516 * - ``V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED``
2517 - Loop filter is disabled.
2518 * - ``V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED``
2519 - Loop filter is enabled.
2520 * - ``V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY``
2521 - Loop filter is disabled at the slice boundary.
2522
2523.. raw:: latex
2524
2525 \normalsize
2526
2527
2528``V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (integer)``
2529 Selects HEVC loop filter beta offset. The valid range is [-6, +6].
2530
2531``V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (integer)``
2532 Selects HEVC loop filter tc offset. The valid range is [-6, +6].
2533
2534.. _v4l2-hevc-refresh-type:
2535
2536``V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE``
2537 (enum)
2538
2539enum v4l2_mpeg_video_hevc_hier_refresh_type -
2540 Selects refresh type for HEVC encoder.
2541 Host has to specify the period into
2542 V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD.
2543
2544.. raw:: latex
2545
2546 \footnotesize
2547
2548.. tabularcolumns:: |p{6.2cm}|p{11.3cm}|
2549
2550.. flat-table::
2551 :header-rows: 0
2552 :stub-columns: 0
2553
2554 * - ``V4L2_MPEG_VIDEO_HEVC_REFRESH_NONE``
2555 - Use the B frame for hierarchical coding.
2556 * - ``V4L2_MPEG_VIDEO_HEVC_REFRESH_CRA``
2557 - Use CRA (Clean Random Access Unit) picture encoding.
2558 * - ``V4L2_MPEG_VIDEO_HEVC_REFRESH_IDR``
2559 - Use IDR (Instantaneous Decoding Refresh) picture encoding.
2560
2561.. raw:: latex
2562
2563 \normalsize
2564
2565
2566``V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (integer)``
2567 Selects the refresh period for HEVC encoder.
2568 This specifies the number of I pictures between two CRA/IDR pictures.
2569 This is valid only if REFRESH_TYPE is not 0.
2570
2571``V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (boolean)``
2572 Indicates HEVC lossless encoding. Setting it to 0 disables lossless
2573 encoding. Setting it to 1 enables lossless encoding.
2574
2575``V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (boolean)``
2576 Indicates constant intra prediction for HEVC encoder. Specifies the
2577 constrained intra prediction in which intra largest coding unit (LCU)
2578 prediction is performed by using residual data and decoded samples of
2579 neighboring intra LCU only. Setting the value to 1 enables constant intra
2580 prediction and setting the value to 0 disables constant intra prediction.
2581
2582``V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (boolean)``
2583 Indicates wavefront parallel processing for HEVC encoder. Setting it to 0
2584 disables the feature and setting it to 1 enables the wavefront parallel
2585 processing.
2586
2587``V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (boolean)``
2588 Setting the value to 1 enables combination of P and B frame for HEVC
2589 encoder.
2590
2591``V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (boolean)``
2592 Indicates temporal identifier for HEVC encoder which is enabled by
2593 setting the value to 1.
2594
2595``V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (boolean)``
2596 Indicates bi-linear interpolation is conditionally used in the intra
2597 prediction filtering process in the CVS when set to 1. Indicates bi-linear
2598 interpolation is not used in the CVS when set to 0.
2599
2600``V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (integer)``
2601 Indicates maximum number of merge candidate motion vectors.
2602 Values are from 0 to 4.
2603
2604``V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (boolean)``
2605 Indicates temporal motion vector prediction for HEVC encoder. Setting it to
2606 1 enables the prediction. Setting it to 0 disables the prediction.
2607
2608``V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (boolean)``
2609 Specifies if HEVC generates a stream with a size of the length field
2610 instead of start code pattern. The size of the length field is configurable
2611 through the V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD control. Setting
2612 the value to 0 disables encoding without startcode pattern. Setting the
2613 value to 1 will enables encoding without startcode pattern.
2614
2615.. _v4l2-hevc-size-of-length-field:
2616
2617``V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD``
2618(enum)
2619
2620enum v4l2_mpeg_video_hevc_size_of_length_field -
2621 Indicates the size of length field.
2622 This is valid when encoding WITHOUT_STARTCODE_ENABLE is enabled.
2623
2624.. raw:: latex
2625
2626 \footnotesize
2627
2628.. tabularcolumns:: |p{5.5cm}|p{12.0cm}|
2629
2630.. flat-table::
2631 :header-rows: 0
2632 :stub-columns: 0
2633
2634 * - ``V4L2_MPEG_VIDEO_HEVC_SIZE_0``
2635 - Generate start code pattern (Normal).
2636 * - ``V4L2_MPEG_VIDEO_HEVC_SIZE_1``
2637 - Generate size of length field instead of start code pattern and length is 1.
2638 * - ``V4L2_MPEG_VIDEO_HEVC_SIZE_2``
2639 - Generate size of length field instead of start code pattern and length is 2.
2640 * - ``V4L2_MPEG_VIDEO_HEVC_SIZE_4``
2641 - Generate size of length field instead of start code pattern and length is 4.
2642
2643.. raw:: latex
2644
2645 \normalsize
2646
2647``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (integer)``
2648 Indicates bit rate for hierarchical coding layer 0 for HEVC encoder.
2649
2650``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (integer)``
2651 Indicates bit rate for hierarchical coding layer 1 for HEVC encoder.
2652
2653``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (integer)``
2654 Indicates bit rate for hierarchical coding layer 2 for HEVC encoder.
2655
2656``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (integer)``
2657 Indicates bit rate for hierarchical coding layer 3 for HEVC encoder.
2658
2659``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (integer)``
2660 Indicates bit rate for hierarchical coding layer 4 for HEVC encoder.
2661
2662``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (integer)``
2663 Indicates bit rate for hierarchical coding layer 5 for HEVC encoder.
2664
2665``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (integer)``
2666 Indicates bit rate for hierarchical coding layer 6 for HEVC encoder.
2667
2668``V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (integer)``
2669 Selects number of P reference pictures required for HEVC encoder.
2670 P-Frame can use 1 or 2 frames for reference.
2671
2672``V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (integer)``
2673 Indicates whether to generate SPS and PPS at every IDR. Setting it to 0
2674 disables generating SPS and PPS at every IDR. Setting it to one enables
2675 generating SPS and PPS at every IDR.