Merge remote-tracking branch 'vfio/next'
[deliverable/linux.git] / Documentation / media / uapi / v4l / extended-controls.rst
CommitLineData
5377d91f
MH
1.. -*- coding: utf-8; mode: rst -*-
2
3.. _extended-controls:
4
5*****************
6Extended Controls
7*****************
8
9
10Introduction
11============
12
13The control mechanism as originally designed was meant to be used for
14user settings (brightness, saturation, etc). However, it turned out to
15be a very useful model for implementing more complicated driver APIs
16where each driver implements only a subset of a larger API.
17
18The MPEG encoding API was the driving force behind designing and
19implementing this extended control mechanism: the MPEG standard is quite
20large and the currently supported hardware MPEG encoders each only
21implement a subset of this standard. Further more, many parameters
22relating to how the video is encoded into an MPEG stream are specific to
23the MPEG encoding chip since the MPEG standard only defines the format
24of the resulting MPEG stream, not how the video is actually encoded into
25that format.
26
27Unfortunately, the original control API lacked some features needed for
28these new uses and so it was extended into the (not terribly originally
29named) extended control API.
30
31Even though the MPEG encoding API was the first effort to use the
32Extended Control API, nowadays there are also other classes of Extended
33Controls, such as Camera Controls and FM Transmitter Controls. The
34Extended Controls API as well as all Extended Controls classes are
35described in the following text.
36
37
38The Extended Control API
39========================
40
41Three new ioctls are available:
4e03cb76 42:ref:`VIDIOC_G_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>`,
af4a4d0d
MCC
43:ref:`VIDIOC_S_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` and
44:ref:`VIDIOC_TRY_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>`. These ioctls act
5377d91f 45on arrays of controls (as opposed to the
4e03cb76 46:ref:`VIDIOC_G_CTRL <VIDIOC_G_CTRL>` and
af4a4d0d 47:ref:`VIDIOC_S_CTRL <VIDIOC_G_CTRL>` ioctls that act on a single
5377d91f
MH
48control). This is needed since it is often required to atomically change
49several controls at once.
50
51Each of the new ioctls expects a pointer to a struct
e8be7e97 52:c:type:`v4l2_ext_controls`. This structure
5377d91f
MH
53contains a pointer to the control array, a count of the number of
54controls in that array and a control class. Control classes are used to
55group similar controls into a single class. For example, control class
56``V4L2_CTRL_CLASS_USER`` contains all user controls (i. e. all controls
22c1cd2d
MCC
57that can also be set using the old :ref:`VIDIOC_S_CTRL <VIDIOC_G_CTRL>`
58ioctl). Control class ``V4L2_CTRL_CLASS_MPEG`` contains all controls
59relating to MPEG encoding, etc.
5377d91f
MH
60
61All controls in the control array must belong to the specified control
62class. An error is returned if this is not the case.
63
3fc02457 64It is also possible to use an empty control array (``count`` == 0) to check
5377d91f
MH
65whether the specified control class is supported.
66
67The control array is a struct
e8be7e97 68:c:type:`v4l2_ext_control` array. The
fc78c7c7 69struct :c:type:`v4l2_ext_control` is very similar to
e8be7e97 70struct :c:type:`v4l2_control`, except for the fact that
5377d91f
MH
71it also allows for 64-bit values and pointers to be passed.
72
e8be7e97 73Since the struct :c:type:`v4l2_ext_control` supports
5377d91f
MH
74pointers it is now also possible to have controls with compound types
75such as N-dimensional arrays and/or structures. You need to specify the
76``V4L2_CTRL_FLAG_NEXT_COMPOUND`` when enumerating controls to actually
77be able to see such compound controls. In other words, these controls
78with compound types should only be used programmatically.
79
80Since such compound controls need to expose more information about
81themselves than is possible with
7347081e 82:ref:`VIDIOC_QUERYCTRL` the
af4a4d0d 83:ref:`VIDIOC_QUERY_EXT_CTRL <VIDIOC_QUERYCTRL>` ioctl was added. In
5377d91f
MH
84particular, this ioctl gives the dimensions of the N-dimensional array
85if this control consists of more than one element.
86
706f8a99
MCC
87.. note::
88
89 #. It is important to realize that due to the flexibility of controls it is
90 necessary to check whether the control you want to set actually is
91 supported in the driver and what the valid range of values is. So use
92 the :ref:`VIDIOC_QUERYCTRL` (or :ref:`VIDIOC_QUERY_EXT_CTRL
93 <VIDIOC_QUERYCTRL>`) and :ref:`VIDIOC_QUERYMENU <VIDIOC_QUERYCTRL>`
94 ioctls to check this.
95
96 #. It is possible that some of the menu indices in a control of
97 type ``V4L2_CTRL_TYPE_MENU`` may not be supported (``VIDIOC_QUERYMENU``
98 will return an error). A good example is the list of supported MPEG
99 audio bitrates. Some drivers only support one or two bitrates, others
100 support a wider range.
5377d91f
MH
101
102All controls use machine endianness.
103
104
105Enumerating Extended Controls
106=============================
107
108The recommended way to enumerate over the extended controls is by using
7347081e 109:ref:`VIDIOC_QUERYCTRL` in combination with the
5377d91f
MH
110``V4L2_CTRL_FLAG_NEXT_CTRL`` flag:
111
112
113.. code-block:: c
114
115 struct v4l2_queryctrl qctrl;
116
117 qctrl.id = V4L2_CTRL_FLAG_NEXT_CTRL;
118 while (0 == ioctl (fd, VIDIOC_QUERYCTRL, &qctrl)) {
0579e6e3
MCC
119 /* ... */
120 qctrl.id |= V4L2_CTRL_FLAG_NEXT_CTRL;
5377d91f
MH
121 }
122
123The initial control ID is set to 0 ORed with the
124``V4L2_CTRL_FLAG_NEXT_CTRL`` flag. The ``VIDIOC_QUERYCTRL`` ioctl will
125return the first control with a higher ID than the specified one. When
126no such controls are found an error is returned.
127
128If you want to get all controls within a specific control class, then
129you can set the initial ``qctrl.id`` value to the control class and add
130an extra check to break out of the loop when a control of another
131control class is found:
132
133
134.. code-block:: c
135
136 qctrl.id = V4L2_CTRL_CLASS_MPEG | V4L2_CTRL_FLAG_NEXT_CTRL;
137 while (0 == ioctl(fd, VIDIOC_QUERYCTRL, &qctrl)) {
0579e6e3
MCC
138 if (V4L2_CTRL_ID2CLASS(qctrl.id) != V4L2_CTRL_CLASS_MPEG)
139 break;
140 /* ... */
141 qctrl.id |= V4L2_CTRL_FLAG_NEXT_CTRL;
5377d91f
MH
142 }
143
144The 32-bit ``qctrl.id`` value is subdivided into three bit ranges: the
145top 4 bits are reserved for flags (e. g. ``V4L2_CTRL_FLAG_NEXT_CTRL``)
146and are not actually part of the ID. The remaining 28 bits form the
147control ID, of which the most significant 12 bits define the control
148class and the least significant 16 bits identify the control within the
149control class. It is guaranteed that these last 16 bits are always
150non-zero for controls. The range of 0x1000 and up are reserved for
151driver-specific controls. The macro ``V4L2_CTRL_ID2CLASS(id)`` returns
152the control class ID based on a control ID.
153
154If the driver does not support extended controls, then
155``VIDIOC_QUERYCTRL`` will fail when used in combination with
156``V4L2_CTRL_FLAG_NEXT_CTRL``. In that case the old method of enumerating
157control should be used (see :ref:`enum_all_controls`). But if it is
158supported, then it is guaranteed to enumerate over all controls,
159including driver-private controls.
160
161
162Creating Control Panels
163=======================
164
165It is possible to create control panels for a graphical user interface
166where the user can select the various controls. Basically you will have
167to iterate over all controls using the method described above. Each
168control class starts with a control of type
169``V4L2_CTRL_TYPE_CTRL_CLASS``. ``VIDIOC_QUERYCTRL`` will return the name
170of this control class which can be used as the title of a tab page
171within a control panel.
172
173The flags field of struct :ref:`v4l2_queryctrl <v4l2-queryctrl>` also
174contains hints on the behavior of the control. See the
7347081e 175:ref:`VIDIOC_QUERYCTRL` documentation for more
5377d91f
MH
176details.
177
178
179.. _mpeg-controls:
180
181Codec Control Reference
182=======================
183
184Below all controls within the Codec control class are described. First
185the generic controls, then controls specific for certain hardware.
186
b6b6e678
MCC
187.. note::
188
189 These controls are applicable to all codecs and not just MPEG. The
706f8a99
MCC
190 defines are prefixed with V4L2_CID_MPEG/V4L2_MPEG as the controls
191 were originally made for MPEG codecs and later extended to cover all
192 encoding formats.
5377d91f
MH
193
194
195Generic Codec Controls
196----------------------
197
198
199.. _mpeg-control-id:
200
201Codec Control IDs
202^^^^^^^^^^^^^^^^^
203
204``V4L2_CID_MPEG_CLASS (class)``
205 The Codec class descriptor. Calling
7347081e 206 :ref:`VIDIOC_QUERYCTRL` for this control will
5377d91f
MH
207 return a description of this control class. This description can be
208 used as the caption of a Tab page in a GUI, for example.
209
6aeb3f67 210.. _v4l2-mpeg-stream-type:
5377d91f 211
0c046221
MCC
212``V4L2_CID_MPEG_STREAM_TYPE``
213 (enum)
214
215enum v4l2_mpeg_stream_type -
5377d91f
MH
216 The MPEG-1, -2 or -4 output stream type. One cannot assume anything
217 here. Each hardware MPEG encoder tends to support different subsets
218 of the available MPEG stream types. This control is specific to
219 multiplexed MPEG streams. The currently defined stream types are:
220
221
222
223.. flat-table::
224 :header-rows: 0
225 :stub-columns: 0
226
227
228 - .. row 1
229
230 - ``V4L2_MPEG_STREAM_TYPE_MPEG2_PS``
231
232 - MPEG-2 program stream
233
234 - .. row 2
235
236 - ``V4L2_MPEG_STREAM_TYPE_MPEG2_TS``
237
238 - MPEG-2 transport stream
239
240 - .. row 3
241
242 - ``V4L2_MPEG_STREAM_TYPE_MPEG1_SS``
243
244 - MPEG-1 system stream
245
246 - .. row 4
247
248 - ``V4L2_MPEG_STREAM_TYPE_MPEG2_DVD``
249
250 - MPEG-2 DVD-compatible stream
251
252 - .. row 5
253
254 - ``V4L2_MPEG_STREAM_TYPE_MPEG1_VCD``
255
256 - MPEG-1 VCD-compatible stream
257
258 - .. row 6
259
260 - ``V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD``
261
262 - MPEG-2 SVCD-compatible stream
263
264
265
266``V4L2_CID_MPEG_STREAM_PID_PMT (integer)``
267 Program Map Table Packet ID for the MPEG transport stream (default
268 16)
269
270``V4L2_CID_MPEG_STREAM_PID_AUDIO (integer)``
271 Audio Packet ID for the MPEG transport stream (default 256)
272
273``V4L2_CID_MPEG_STREAM_PID_VIDEO (integer)``
274 Video Packet ID for the MPEG transport stream (default 260)
275
276``V4L2_CID_MPEG_STREAM_PID_PCR (integer)``
277 Packet ID for the MPEG transport stream carrying PCR fields (default
278 259)
279
280``V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (integer)``
281 Audio ID for MPEG PES
282
283``V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (integer)``
284 Video ID for MPEG PES
285
6aeb3f67 286.. _v4l2-mpeg-stream-vbi-fmt:
5377d91f 287
0c046221
MCC
288``V4L2_CID_MPEG_STREAM_VBI_FMT``
289 (enum)
290
291enum v4l2_mpeg_stream_vbi_fmt -
5377d91f
MH
292 Some cards can embed VBI data (e. g. Closed Caption, Teletext) into
293 the MPEG stream. This control selects whether VBI data should be
294 embedded, and if so, what embedding method should be used. The list
295 of possible VBI formats depends on the driver. The currently defined
296 VBI format types are:
297
298
299
1300c930
MCC
300.. tabularcolumns:: |p{6 cm}|p{11.5cm}|
301
5377d91f
MH
302.. flat-table::
303 :header-rows: 0
304 :stub-columns: 0
305
306
307 - .. row 1
308
309 - ``V4L2_MPEG_STREAM_VBI_FMT_NONE``
310
311 - No VBI in the MPEG stream
312
313 - .. row 2
314
315 - ``V4L2_MPEG_STREAM_VBI_FMT_IVTV``
316
317 - VBI in private packets, IVTV format (documented in the kernel
0579e6e3
MCC
318 sources in the file
319 ``Documentation/video4linux/cx2341x/README.vbi``)
5377d91f
MH
320
321
322
6aeb3f67 323.. _v4l2-mpeg-audio-sampling-freq:
5377d91f 324
0c046221
MCC
325``V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ``
326 (enum)
327
328enum v4l2_mpeg_audio_sampling_freq -
5377d91f
MH
329 MPEG Audio sampling frequency. Possible values are:
330
331
332
333.. flat-table::
334 :header-rows: 0
335 :stub-columns: 0
336
337
338 - .. row 1
339
340 - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100``
341
342 - 44.1 kHz
343
344 - .. row 2
345
346 - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000``
347
348 - 48 kHz
349
350 - .. row 3
351
352 - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000``
353
354 - 32 kHz
355
356
357
6aeb3f67 358.. _v4l2-mpeg-audio-encoding:
5377d91f 359
0c046221
MCC
360``V4L2_CID_MPEG_AUDIO_ENCODING``
361 (enum)
362
363enum v4l2_mpeg_audio_encoding -
5377d91f
MH
364 MPEG Audio encoding. This control is specific to multiplexed MPEG
365 streams. Possible values are:
366
367
368
369.. flat-table::
370 :header-rows: 0
371 :stub-columns: 0
372
373
374 - .. row 1
375
376 - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_1``
377
378 - MPEG-1/2 Layer I encoding
379
380 - .. row 2
381
382 - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_2``
383
384 - MPEG-1/2 Layer II encoding
385
386 - .. row 3
387
388 - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_3``
389
390 - MPEG-1/2 Layer III encoding
391
392 - .. row 4
393
394 - ``V4L2_MPEG_AUDIO_ENCODING_AAC``
395
396 - MPEG-2/4 AAC (Advanced Audio Coding)
397
398 - .. row 5
399
400 - ``V4L2_MPEG_AUDIO_ENCODING_AC3``
401
402 - AC-3 aka ATSC A/52 encoding
403
404
405
6aeb3f67 406.. _v4l2-mpeg-audio-l1-bitrate:
5377d91f 407
0c046221
MCC
408``V4L2_CID_MPEG_AUDIO_L1_BITRATE``
409 (enum)
410
411enum v4l2_mpeg_audio_l1_bitrate -
5377d91f
MH
412 MPEG-1/2 Layer I bitrate. Possible values are:
413
414
415
416.. flat-table::
417 :header-rows: 0
418 :stub-columns: 0
419
420
421 - .. row 1
422
423 - ``V4L2_MPEG_AUDIO_L1_BITRATE_32K``
424
425 - 32 kbit/s
426
427 - .. row 2
428
429 - ``V4L2_MPEG_AUDIO_L1_BITRATE_64K``
430
431 - 64 kbit/s
432
433 - .. row 3
434
435 - ``V4L2_MPEG_AUDIO_L1_BITRATE_96K``
436
437 - 96 kbit/s
438
439 - .. row 4
440
441 - ``V4L2_MPEG_AUDIO_L1_BITRATE_128K``
442
443 - 128 kbit/s
444
445 - .. row 5
446
447 - ``V4L2_MPEG_AUDIO_L1_BITRATE_160K``
448
449 - 160 kbit/s
450
451 - .. row 6
452
453 - ``V4L2_MPEG_AUDIO_L1_BITRATE_192K``
454
455 - 192 kbit/s
456
457 - .. row 7
458
459 - ``V4L2_MPEG_AUDIO_L1_BITRATE_224K``
460
461 - 224 kbit/s
462
463 - .. row 8
464
465 - ``V4L2_MPEG_AUDIO_L1_BITRATE_256K``
466
467 - 256 kbit/s
468
469 - .. row 9
470
471 - ``V4L2_MPEG_AUDIO_L1_BITRATE_288K``
472
473 - 288 kbit/s
474
475 - .. row 10
476
477 - ``V4L2_MPEG_AUDIO_L1_BITRATE_320K``
478
479 - 320 kbit/s
480
481 - .. row 11
482
483 - ``V4L2_MPEG_AUDIO_L1_BITRATE_352K``
484
485 - 352 kbit/s
486
487 - .. row 12
488
489 - ``V4L2_MPEG_AUDIO_L1_BITRATE_384K``
490
491 - 384 kbit/s
492
493 - .. row 13
494
495 - ``V4L2_MPEG_AUDIO_L1_BITRATE_416K``
496
497 - 416 kbit/s
498
499 - .. row 14
500
501 - ``V4L2_MPEG_AUDIO_L1_BITRATE_448K``
502
503 - 448 kbit/s
504
505
506
6aeb3f67 507.. _v4l2-mpeg-audio-l2-bitrate:
5377d91f 508
0c046221
MCC
509``V4L2_CID_MPEG_AUDIO_L2_BITRATE``
510 (enum)
511
512enum v4l2_mpeg_audio_l2_bitrate -
5377d91f
MH
513 MPEG-1/2 Layer II bitrate. Possible values are:
514
515
516
517.. flat-table::
518 :header-rows: 0
519 :stub-columns: 0
520
521
522 - .. row 1
523
524 - ``V4L2_MPEG_AUDIO_L2_BITRATE_32K``
525
526 - 32 kbit/s
527
528 - .. row 2
529
530 - ``V4L2_MPEG_AUDIO_L2_BITRATE_48K``
531
532 - 48 kbit/s
533
534 - .. row 3
535
536 - ``V4L2_MPEG_AUDIO_L2_BITRATE_56K``
537
538 - 56 kbit/s
539
540 - .. row 4
541
542 - ``V4L2_MPEG_AUDIO_L2_BITRATE_64K``
543
544 - 64 kbit/s
545
546 - .. row 5
547
548 - ``V4L2_MPEG_AUDIO_L2_BITRATE_80K``
549
550 - 80 kbit/s
551
552 - .. row 6
553
554 - ``V4L2_MPEG_AUDIO_L2_BITRATE_96K``
555
556 - 96 kbit/s
557
558 - .. row 7
559
560 - ``V4L2_MPEG_AUDIO_L2_BITRATE_112K``
561
562 - 112 kbit/s
563
564 - .. row 8
565
566 - ``V4L2_MPEG_AUDIO_L2_BITRATE_128K``
567
568 - 128 kbit/s
569
570 - .. row 9
571
572 - ``V4L2_MPEG_AUDIO_L2_BITRATE_160K``
573
574 - 160 kbit/s
575
576 - .. row 10
577
578 - ``V4L2_MPEG_AUDIO_L2_BITRATE_192K``
579
580 - 192 kbit/s
581
582 - .. row 11
583
584 - ``V4L2_MPEG_AUDIO_L2_BITRATE_224K``
585
586 - 224 kbit/s
587
588 - .. row 12
589
590 - ``V4L2_MPEG_AUDIO_L2_BITRATE_256K``
591
592 - 256 kbit/s
593
594 - .. row 13
595
596 - ``V4L2_MPEG_AUDIO_L2_BITRATE_320K``
597
598 - 320 kbit/s
599
600 - .. row 14
601
602 - ``V4L2_MPEG_AUDIO_L2_BITRATE_384K``
603
604 - 384 kbit/s
605
606
607
6aeb3f67 608.. _v4l2-mpeg-audio-l3-bitrate:
5377d91f 609
0c046221
MCC
610``V4L2_CID_MPEG_AUDIO_L3_BITRATE``
611 (enum)
612
613enum v4l2_mpeg_audio_l3_bitrate -
5377d91f
MH
614 MPEG-1/2 Layer III bitrate. Possible values are:
615
616
617
618.. flat-table::
619 :header-rows: 0
620 :stub-columns: 0
621
622
623 - .. row 1
624
625 - ``V4L2_MPEG_AUDIO_L3_BITRATE_32K``
626
627 - 32 kbit/s
628
629 - .. row 2
630
631 - ``V4L2_MPEG_AUDIO_L3_BITRATE_40K``
632
633 - 40 kbit/s
634
635 - .. row 3
636
637 - ``V4L2_MPEG_AUDIO_L3_BITRATE_48K``
638
639 - 48 kbit/s
640
641 - .. row 4
642
643 - ``V4L2_MPEG_AUDIO_L3_BITRATE_56K``
644
645 - 56 kbit/s
646
647 - .. row 5
648
649 - ``V4L2_MPEG_AUDIO_L3_BITRATE_64K``
650
651 - 64 kbit/s
652
653 - .. row 6
654
655 - ``V4L2_MPEG_AUDIO_L3_BITRATE_80K``
656
657 - 80 kbit/s
658
659 - .. row 7
660
661 - ``V4L2_MPEG_AUDIO_L3_BITRATE_96K``
662
663 - 96 kbit/s
664
665 - .. row 8
666
667 - ``V4L2_MPEG_AUDIO_L3_BITRATE_112K``
668
669 - 112 kbit/s
670
671 - .. row 9
672
673 - ``V4L2_MPEG_AUDIO_L3_BITRATE_128K``
674
675 - 128 kbit/s
676
677 - .. row 10
678
679 - ``V4L2_MPEG_AUDIO_L3_BITRATE_160K``
680
681 - 160 kbit/s
682
683 - .. row 11
684
685 - ``V4L2_MPEG_AUDIO_L3_BITRATE_192K``
686
687 - 192 kbit/s
688
689 - .. row 12
690
691 - ``V4L2_MPEG_AUDIO_L3_BITRATE_224K``
692
693 - 224 kbit/s
694
695 - .. row 13
696
697 - ``V4L2_MPEG_AUDIO_L3_BITRATE_256K``
698
699 - 256 kbit/s
700
701 - .. row 14
702
703 - ``V4L2_MPEG_AUDIO_L3_BITRATE_320K``
704
705 - 320 kbit/s
706
707
708
709``V4L2_CID_MPEG_AUDIO_AAC_BITRATE (integer)``
710 AAC bitrate in bits per second.
711
6aeb3f67 712.. _v4l2-mpeg-audio-ac3-bitrate:
5377d91f 713
0c046221
MCC
714``V4L2_CID_MPEG_AUDIO_AC3_BITRATE``
715 (enum)
716
717enum v4l2_mpeg_audio_ac3_bitrate -
5377d91f
MH
718 AC-3 bitrate. Possible values are:
719
720
721
722.. flat-table::
723 :header-rows: 0
724 :stub-columns: 0
725
726
727 - .. row 1
728
729 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_32K``
730
731 - 32 kbit/s
732
733 - .. row 2
734
735 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_40K``
736
737 - 40 kbit/s
738
739 - .. row 3
740
741 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_48K``
742
743 - 48 kbit/s
744
745 - .. row 4
746
747 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_56K``
748
749 - 56 kbit/s
750
751 - .. row 5
752
753 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_64K``
754
755 - 64 kbit/s
756
757 - .. row 6
758
759 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_80K``
760
761 - 80 kbit/s
762
763 - .. row 7
764
765 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_96K``
766
767 - 96 kbit/s
768
769 - .. row 8
770
771 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_112K``
772
773 - 112 kbit/s
774
775 - .. row 9
776
777 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_128K``
778
779 - 128 kbit/s
780
781 - .. row 10
782
783 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_160K``
784
785 - 160 kbit/s
786
787 - .. row 11
788
789 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_192K``
790
791 - 192 kbit/s
792
793 - .. row 12
794
795 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_224K``
796
797 - 224 kbit/s
798
799 - .. row 13
800
801 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_256K``
802
803 - 256 kbit/s
804
805 - .. row 14
806
807 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_320K``
808
809 - 320 kbit/s
810
811 - .. row 15
812
813 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_384K``
814
815 - 384 kbit/s
816
817 - .. row 16
818
819 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_448K``
820
821 - 448 kbit/s
822
823 - .. row 17
824
825 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_512K``
826
827 - 512 kbit/s
828
829 - .. row 18
830
831 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_576K``
832
833 - 576 kbit/s
834
835 - .. row 19
836
837 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_640K``
838
839 - 640 kbit/s
840
841
842
6aeb3f67 843.. _v4l2-mpeg-audio-mode:
5377d91f 844
0c046221
MCC
845``V4L2_CID_MPEG_AUDIO_MODE``
846 (enum)
847
848enum v4l2_mpeg_audio_mode -
5377d91f
MH
849 MPEG Audio mode. Possible values are:
850
851
852
853.. flat-table::
854 :header-rows: 0
855 :stub-columns: 0
856
857
858 - .. row 1
859
860 - ``V4L2_MPEG_AUDIO_MODE_STEREO``
861
862 - Stereo
863
864 - .. row 2
865
866 - ``V4L2_MPEG_AUDIO_MODE_JOINT_STEREO``
867
868 - Joint Stereo
869
870 - .. row 3
871
872 - ``V4L2_MPEG_AUDIO_MODE_DUAL``
873
874 - Bilingual
875
876 - .. row 4
877
878 - ``V4L2_MPEG_AUDIO_MODE_MONO``
879
880 - Mono
881
882
883
6aeb3f67 884.. _v4l2-mpeg-audio-mode-extension:
5377d91f 885
0c046221
MCC
886``V4L2_CID_MPEG_AUDIO_MODE_EXTENSION``
887 (enum)
888
889enum v4l2_mpeg_audio_mode_extension -
5377d91f
MH
890 Joint Stereo audio mode extension. In Layer I and II they indicate
891 which subbands are in intensity stereo. All other subbands are coded
892 in stereo. Layer III is not (yet) supported. Possible values are:
893
894
895
896.. flat-table::
897 :header-rows: 0
898 :stub-columns: 0
899
900
901 - .. row 1
902
903 - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4``
904
905 - Subbands 4-31 in intensity stereo
906
907 - .. row 2
908
909 - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8``
910
911 - Subbands 8-31 in intensity stereo
912
913 - .. row 3
914
915 - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12``
916
917 - Subbands 12-31 in intensity stereo
918
919 - .. row 4
920
921 - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16``
922
923 - Subbands 16-31 in intensity stereo
924
925
926
6aeb3f67 927.. _v4l2-mpeg-audio-emphasis:
5377d91f 928
0c046221
MCC
929``V4L2_CID_MPEG_AUDIO_EMPHASIS``
930 (enum)
931
932enum v4l2_mpeg_audio_emphasis -
5377d91f
MH
933 Audio Emphasis. Possible values are:
934
935
936
937.. flat-table::
938 :header-rows: 0
939 :stub-columns: 0
940
941
942 - .. row 1
943
944 - ``V4L2_MPEG_AUDIO_EMPHASIS_NONE``
945
946 - None
947
948 - .. row 2
949
950 - ``V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS``
951
952 - 50/15 microsecond emphasis
953
954 - .. row 3
955
956 - ``V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17``
957
958 - CCITT J.17
959
960
961
6aeb3f67 962.. _v4l2-mpeg-audio-crc:
5377d91f 963
0c046221
MCC
964``V4L2_CID_MPEG_AUDIO_CRC``
965 (enum)
966
967enum v4l2_mpeg_audio_crc -
5377d91f
MH
968 CRC method. Possible values are:
969
970
971
972.. flat-table::
973 :header-rows: 0
974 :stub-columns: 0
975
976
977 - .. row 1
978
979 - ``V4L2_MPEG_AUDIO_CRC_NONE``
980
981 - None
982
983 - .. row 2
984
985 - ``V4L2_MPEG_AUDIO_CRC_CRC16``
986
987 - 16 bit parity check
988
989
990
991``V4L2_CID_MPEG_AUDIO_MUTE (boolean)``
992 Mutes the audio when capturing. This is not done by muting audio
993 hardware, which can still produce a slight hiss, but in the encoder
994 itself, guaranteeing a fixed and reproducible audio bitstream. 0 =
995 unmuted, 1 = muted.
996
6aeb3f67 997.. _v4l2-mpeg-audio-dec-playback:
5377d91f 998
0c046221
MCC
999``V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK``
1000 (enum)
1001
1002enum v4l2_mpeg_audio_dec_playback -
5377d91f
MH
1003 Determines how monolingual audio should be played back. Possible
1004 values are:
1005
1006
1007
1300c930
MCC
1008.. tabularcolumns:: |p{9.0cm}|p{8.5cm}|
1009
5377d91f
MH
1010.. flat-table::
1011 :header-rows: 0
1012 :stub-columns: 0
1013
1014
1015 - .. row 1
1016
1017 - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_AUTO``
1018
1019 - Automatically determines the best playback mode.
1020
1021 - .. row 2
1022
1023 - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_STEREO``
1024
1025 - Stereo playback.
1026
1027 - .. row 3
1028
1029 - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_LEFT``
1030
1031 - Left channel playback.
1032
1033 - .. row 4
1034
1035 - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_RIGHT``
1036
1037 - Right channel playback.
1038
1039 - .. row 5
1040
1041 - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_MONO``
1042
1043 - Mono playback.
1044
1045 - .. row 6
1046
1047 - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_SWAPPED_STEREO``
1048
1049 - Stereo playback with swapped left and right channels.
1050
1051
1052
6aeb3f67 1053.. _v4l2-mpeg-audio-dec-multilingual-playback:
5377d91f 1054
0c046221
MCC
1055``V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK``
1056 (enum)
1057
1058enum v4l2_mpeg_audio_dec_playback -
5377d91f
MH
1059 Determines how multilingual audio should be played back.
1060
6aeb3f67 1061.. _v4l2-mpeg-video-encoding:
5377d91f 1062
0c046221
MCC
1063``V4L2_CID_MPEG_VIDEO_ENCODING``
1064 (enum)
1065
1066enum v4l2_mpeg_video_encoding -
5377d91f
MH
1067 MPEG Video encoding method. This control is specific to multiplexed
1068 MPEG streams. Possible values are:
1069
1070
1071
1072.. flat-table::
1073 :header-rows: 0
1074 :stub-columns: 0
1075
1076
1077 - .. row 1
1078
1079 - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_1``
1080
1081 - MPEG-1 Video encoding
1082
1083 - .. row 2
1084
1085 - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_2``
1086
1087 - MPEG-2 Video encoding
1088
1089 - .. row 3
1090
1091 - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC``
1092
1093 - MPEG-4 AVC (H.264) Video encoding
1094
1095
1096
6aeb3f67 1097.. _v4l2-mpeg-video-aspect:
5377d91f 1098
0c046221
MCC
1099``V4L2_CID_MPEG_VIDEO_ASPECT``
1100 (enum)
1101
1102enum v4l2_mpeg_video_aspect -
5377d91f
MH
1103 Video aspect. Possible values are:
1104
1105
1106
1107.. flat-table::
1108 :header-rows: 0
1109 :stub-columns: 0
1110
1111
1112 - .. row 1
1113
1114 - ``V4L2_MPEG_VIDEO_ASPECT_1x1``
1115
1116 - .. row 2
1117
1118 - ``V4L2_MPEG_VIDEO_ASPECT_4x3``
1119
1120 - .. row 3
1121
1122 - ``V4L2_MPEG_VIDEO_ASPECT_16x9``
1123
1124 - .. row 4
1125
1126 - ``V4L2_MPEG_VIDEO_ASPECT_221x100``
1127
1128
1129
1130``V4L2_CID_MPEG_VIDEO_B_FRAMES (integer)``
1131 Number of B-Frames (default 2)
1132
1133``V4L2_CID_MPEG_VIDEO_GOP_SIZE (integer)``
1134 GOP size (default 12)
1135
1136``V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (boolean)``
1137 GOP closure (default 1)
1138
1139``V4L2_CID_MPEG_VIDEO_PULLDOWN (boolean)``
1140 Enable 3:2 pulldown (default 0)
1141
6aeb3f67 1142.. _v4l2-mpeg-video-bitrate-mode:
5377d91f 1143
0c046221
MCC
1144``V4L2_CID_MPEG_VIDEO_BITRATE_MODE``
1145 (enum)
1146
1147enum v4l2_mpeg_video_bitrate_mode -
5377d91f
MH
1148 Video bitrate mode. Possible values are:
1149
1150
1151
1152.. flat-table::
1153 :header-rows: 0
1154 :stub-columns: 0
1155
1156
1157 - .. row 1
1158
1159 - ``V4L2_MPEG_VIDEO_BITRATE_MODE_VBR``
1160
1161 - Variable bitrate
1162
1163 - .. row 2
1164
1165 - ``V4L2_MPEG_VIDEO_BITRATE_MODE_CBR``
1166
1167 - Constant bitrate
1168
1169
1170
1171``V4L2_CID_MPEG_VIDEO_BITRATE (integer)``
1172 Video bitrate in bits per second.
1173
1174``V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (integer)``
1175 Peak video bitrate in bits per second. Must be larger or equal to
1176 the average video bitrate. It is ignored if the video bitrate mode
1177 is set to constant bitrate.
1178
1179``V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (integer)``
1180 For every captured frame, skip this many subsequent frames (default
1181 0).
1182
1183``V4L2_CID_MPEG_VIDEO_MUTE (boolean)``
1184 "Mutes" the video to a fixed color when capturing. This is useful
1185 for testing, to produce a fixed video bitstream. 0 = unmuted, 1 =
1186 muted.
1187
1188``V4L2_CID_MPEG_VIDEO_MUTE_YUV (integer)``
1189 Sets the "mute" color of the video. The supplied 32-bit integer is
1190 interpreted as follows (bit 0 = least significant bit):
1191
1192
1193
1194.. flat-table::
1195 :header-rows: 0
1196 :stub-columns: 0
1197
1198
1199 - .. row 1
1200
1201 - Bit 0:7
1202
1203 - V chrominance information
1204
1205 - .. row 2
1206
1207 - Bit 8:15
1208
1209 - U chrominance information
1210
1211 - .. row 3
1212
1213 - Bit 16:23
1214
1215 - Y luminance information
1216
1217 - .. row 4
1218
1219 - Bit 24:31
1220
1221 - Must be zero.
1222
1223
1224
6aeb3f67 1225.. _v4l2-mpeg-video-dec-pts:
5377d91f
MH
1226
1227``V4L2_CID_MPEG_VIDEO_DEC_PTS (integer64)``
1228 This read-only control returns the 33-bit video Presentation Time
1229 Stamp as defined in ITU T-REC-H.222.0 and ISO/IEC 13818-1 of the
1230 currently displayed frame. This is the same PTS as is used in
7347081e 1231 :ref:`VIDIOC_DECODER_CMD`.
5377d91f 1232
6aeb3f67 1233.. _v4l2-mpeg-video-dec-frame:
5377d91f
MH
1234
1235``V4L2_CID_MPEG_VIDEO_DEC_FRAME (integer64)``
1236 This read-only control returns the frame counter of the frame that
1237 is currently displayed (decoded). This value is reset to 0 whenever
1238 the decoder is started.
1239
1240``V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (boolean)``
1241 If enabled the decoder expects to receive a single slice per buffer,
1242 otherwise the decoder expects a single frame in per buffer.
1243 Applicable to the decoder, all codecs.
1244
1245``V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (boolean)``
1246 Enable writing sample aspect ratio in the Video Usability
1247 Information. Applicable to the H264 encoder.
1248
6aeb3f67 1249.. _v4l2-mpeg-video-h264-vui-sar-idc:
5377d91f 1250
0c046221
MCC
1251``V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC``
1252 (enum)
1253
1254enum v4l2_mpeg_video_h264_vui_sar_idc -
5377d91f
MH
1255 VUI sample aspect ratio indicator for H.264 encoding. The value is
1256 defined in the table E-1 in the standard. Applicable to the H264
1257 encoder.
1258
1259
1260
1261.. flat-table::
1262 :header-rows: 0
1263 :stub-columns: 0
1264
1265
1266 - .. row 1
1267
1268 - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED``
1269
1270 - Unspecified
1271
1272 - .. row 2
1273
1274 - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1``
1275
1276 - 1x1
1277
1278 - .. row 3
1279
1280 - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_12x11``
1281
1282 - 12x11
1283
1284 - .. row 4
1285
1286 - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_10x11``
1287
1288 - 10x11
1289
1290 - .. row 5
1291
1292 - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_16x11``
1293
1294 - 16x11
1295
1296 - .. row 6
1297
1298 - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_40x33``
1299
1300 - 40x33
1301
1302 - .. row 7
1303
1304 - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_24x11``
1305
1306 - 24x11
1307
1308 - .. row 8
1309
1310 - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_20x11``
1311
1312 - 20x11
1313
1314 - .. row 9
1315
1316 - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_32x11``
1317
1318 - 32x11
1319
1320 - .. row 10
1321
1322 - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_80x33``
1323
1324 - 80x33
1325
1326 - .. row 11
1327
1328 - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_18x11``
1329
1330 - 18x11
1331
1332 - .. row 12
1333
1334 - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_15x11``
1335
1336 - 15x11
1337
1338 - .. row 13
1339
1340 - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_64x33``
1341
1342 - 64x33
1343
1344 - .. row 14
1345
1346 - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_160x99``
1347
1348 - 160x99
1349
1350 - .. row 15
1351
1352 - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_4x3``
1353
1354 - 4x3
1355
1356 - .. row 16
1357
1358 - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_3x2``
1359
1360 - 3x2
1361
1362 - .. row 17
1363
1364 - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1``
1365
1366 - 2x1
1367
1368 - .. row 18
1369
1370 - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED``
1371
1372 - Extended SAR
1373
1374
1375
1376``V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (integer)``
1377 Extended sample aspect ratio width for H.264 VUI encoding.
1378 Applicable to the H264 encoder.
1379
1380``V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (integer)``
1381 Extended sample aspect ratio height for H.264 VUI encoding.
1382 Applicable to the H264 encoder.
1383
6aeb3f67 1384.. _v4l2-mpeg-video-h264-level:
5377d91f 1385
0c046221
MCC
1386``V4L2_CID_MPEG_VIDEO_H264_LEVEL``
1387 (enum)
1388
1389enum v4l2_mpeg_video_h264_level -
5377d91f
MH
1390 The level information for the H264 video elementary stream.
1391 Applicable to the H264 encoder. Possible values are:
1392
1393
1394
1395.. flat-table::
1396 :header-rows: 0
1397 :stub-columns: 0
1398
1399
1400 - .. row 1
1401
1402 - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_0``
1403
1404 - Level 1.0
1405
1406 - .. row 2
1407
1408 - ``V4L2_MPEG_VIDEO_H264_LEVEL_1B``
1409
1410 - Level 1B
1411
1412 - .. row 3
1413
1414 - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_1``
1415
1416 - Level 1.1
1417
1418 - .. row 4
1419
1420 - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_2``
1421
1422 - Level 1.2
1423
1424 - .. row 5
1425
1426 - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_3``
1427
1428 - Level 1.3
1429
1430 - .. row 6
1431
1432 - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_0``
1433
1434 - Level 2.0
1435
1436 - .. row 7
1437
1438 - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_1``
1439
1440 - Level 2.1
1441
1442 - .. row 8
1443
1444 - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_2``
1445
1446 - Level 2.2
1447
1448 - .. row 9
1449
1450 - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_0``
1451
1452 - Level 3.0
1453
1454 - .. row 10
1455
1456 - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_1``
1457
1458 - Level 3.1
1459
1460 - .. row 11
1461
1462 - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_2``
1463
1464 - Level 3.2
1465
1466 - .. row 12
1467
1468 - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_0``
1469
1470 - Level 4.0
1471
1472 - .. row 13
1473
1474 - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_1``
1475
1476 - Level 4.1
1477
1478 - .. row 14
1479
1480 - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_2``
1481
1482 - Level 4.2
1483
1484 - .. row 15
1485
1486 - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_0``
1487
1488 - Level 5.0
1489
1490 - .. row 16
1491
1492 - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_1``
1493
1494 - Level 5.1
1495
1496
1497
6aeb3f67 1498.. _v4l2-mpeg-video-mpeg4-level:
5377d91f 1499
0c046221
MCC
1500``V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL``
1501 (enum)
1502
1503enum v4l2_mpeg_video_mpeg4_level -
5377d91f
MH
1504 The level information for the MPEG4 elementary stream. Applicable to
1505 the MPEG4 encoder. Possible values are:
1506
1507
1508
1509.. flat-table::
1510 :header-rows: 0
1511 :stub-columns: 0
1512
1513
1514 - .. row 1
1515
1516 - ``V4L2_MPEG_VIDEO_LEVEL_0``
1517
1518 - Level 0
1519
1520 - .. row 2
1521
1522 - ``V4L2_MPEG_VIDEO_LEVEL_0B``
1523
1524 - Level 0b
1525
1526 - .. row 3
1527
1528 - ``V4L2_MPEG_VIDEO_LEVEL_1``
1529
1530 - Level 1
1531
1532 - .. row 4
1533
1534 - ``V4L2_MPEG_VIDEO_LEVEL_2``
1535
1536 - Level 2
1537
1538 - .. row 5
1539
1540 - ``V4L2_MPEG_VIDEO_LEVEL_3``
1541
1542 - Level 3
1543
1544 - .. row 6
1545
1546 - ``V4L2_MPEG_VIDEO_LEVEL_3B``
1547
1548 - Level 3b
1549
1550 - .. row 7
1551
1552 - ``V4L2_MPEG_VIDEO_LEVEL_4``
1553
1554 - Level 4
1555
1556 - .. row 8
1557
1558 - ``V4L2_MPEG_VIDEO_LEVEL_5``
1559
1560 - Level 5
1561
1562
1563
6aeb3f67 1564.. _v4l2-mpeg-video-h264-profile:
5377d91f 1565
0c046221
MCC
1566``V4L2_CID_MPEG_VIDEO_H264_PROFILE``
1567 (enum)
1568
1569enum v4l2_mpeg_video_h264_profile -
5377d91f
MH
1570 The profile information for H264. Applicable to the H264 encoder.
1571 Possible values are:
1572
1573
1574
1575.. flat-table::
1576 :header-rows: 0
1577 :stub-columns: 0
1578
1579
1580 - .. row 1
1581
1582 - ``V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE``
1583
1584 - Baseline profile
1585
1586 - .. row 2
1587
1588 - ``V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE``
1589
1590 - Constrained Baseline profile
1591
1592 - .. row 3
1593
1594 - ``V4L2_MPEG_VIDEO_H264_PROFILE_MAIN``
1595
1596 - Main profile
1597
1598 - .. row 4
1599
1600 - ``V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED``
1601
1602 - Extended profile
1603
1604 - .. row 5
1605
1606 - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH``
1607
1608 - High profile
1609
1610 - .. row 6
1611
1612 - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10``
1613
1614 - High 10 profile
1615
1616 - .. row 7
1617
1618 - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422``
1619
1620 - High 422 profile
1621
1622 - .. row 8
1623
1624 - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE``
1625
1626 - High 444 Predictive profile
1627
1628 - .. row 9
1629
1630 - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA``
1631
1632 - High 10 Intra profile
1633
1634 - .. row 10
1635
1636 - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA``
1637
1638 - High 422 Intra profile
1639
1640 - .. row 11
1641
1642 - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_INTRA``
1643
1644 - High 444 Intra profile
1645
1646 - .. row 12
1647
1648 - ``V4L2_MPEG_VIDEO_H264_PROFILE_CAVLC_444_INTRA``
1649
1650 - CAVLC 444 Intra profile
1651
1652 - .. row 13
1653
1654 - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_BASELINE``
1655
1656 - Scalable Baseline profile
1657
1658 - .. row 14
1659
1660 - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH``
1661
1662 - Scalable High profile
1663
1664 - .. row 15
1665
1666 - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA``
1667
1668 - Scalable High Intra profile
1669
1670 - .. row 16
1671
1672 - ``V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH``
1673
1674 - Stereo High profile
1675
1676 - .. row 17
1677
1678 - ``V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH``
1679
1680 - Multiview High profile
1681
1682
1683
6aeb3f67 1684.. _v4l2-mpeg-video-mpeg4-profile:
5377d91f 1685
0c046221
MCC
1686``V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE``
1687 (enum)
1688
1689enum v4l2_mpeg_video_mpeg4_profile -
5377d91f
MH
1690 The profile information for MPEG4. Applicable to the MPEG4 encoder.
1691 Possible values are:
1692
1693
1694
1695.. flat-table::
1696 :header-rows: 0
1697 :stub-columns: 0
1698
1699
1700 - .. row 1
1701
1702 - ``V4L2_MPEG_VIDEO_PROFILE_SIMPLE``
1703
1704 - Simple profile
1705
1706 - .. row 2
1707
1708 - ``V4L2_MPEG_VIDEO_PROFILE_ADVANCED_SIMPLE``
1709
1710 - Advanced Simple profile
1711
1712 - .. row 3
1713
1714 - ``V4L2_MPEG_VIDEO_PROFILE_CORE``
1715
1716 - Core profile
1717
1718 - .. row 4
1719
1720 - ``V4L2_MPEG_VIDEO_PROFILE_SIMPLE_SCALABLE``
1721
1722 - Simple Scalable profile
1723
1724 - .. row 5
1725
1726 - ``V4L2_MPEG_VIDEO_PROFILE_ADVANCED_CODING_EFFICIENCY``
1727
0579e6e3 1728 -
5377d91f
MH
1729
1730
1731
1732``V4L2_CID_MPEG_VIDEO_MAX_REF_PIC (integer)``
1733 The maximum number of reference pictures used for encoding.
1734 Applicable to the encoder.
1735
6aeb3f67 1736.. _v4l2-mpeg-video-multi-slice-mode:
5377d91f 1737
0c046221
MCC
1738``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE``
1739 (enum)
1740
1741enum v4l2_mpeg_video_multi_slice_mode -
5377d91f
MH
1742 Determines how the encoder should handle division of frame into
1743 slices. Applicable to the encoder. Possible values are:
1744
1745
1746
0c046221 1747.. tabularcolumns:: |p{8.7cm}|p{8.8cm}|
1300c930 1748
5377d91f
MH
1749.. flat-table::
1750 :header-rows: 0
1751 :stub-columns: 0
1752
1753
1754 - .. row 1
1755
1756 - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE``
1757
1758 - Single slice per frame.
1759
1760 - .. row 2
1761
1762 - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB``
1763
1764 - Multiple slices with set maximum number of macroblocks per slice.
1765
1766 - .. row 3
1767
1768 - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES``
1769
1770 - Multiple slice with set maximum size in bytes per slice.
1771
1772
1773
1774``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB (integer)``
1775 The maximum number of macroblocks in a slice. Used when
1776 ``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE`` is set to
1777 ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB``. Applicable to the
1778 encoder.
1779
1780``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES (integer)``
1781 The maximum size of a slice in bytes. Used when
1782 ``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE`` is set to
1783 ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES``. Applicable to the
1784 encoder.
1785
6aeb3f67 1786.. _v4l2-mpeg-video-h264-loop-filter-mode:
5377d91f 1787
0c046221
MCC
1788``V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE``
1789 (enum)
1790
1791enum v4l2_mpeg_video_h264_loop_filter_mode -
5377d91f
MH
1792 Loop filter mode for H264 encoder. Possible values are:
1793
1794
1795
1300c930
MCC
1796.. tabularcolumns:: |p{14.0cm}|p{3.5cm}|
1797
5377d91f
MH
1798.. flat-table::
1799 :header-rows: 0
1800 :stub-columns: 0
1801
5377d91f
MH
1802 - .. row 1
1803
1804 - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED``
1805
1806 - Loop filter is enabled.
1807
1808 - .. row 2
1809
1810 - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED``
1811
1812 - Loop filter is disabled.
1813
1814 - .. row 3
1815
1816 - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY``
1817
1818 - Loop filter is disabled at the slice boundary.
1819
1820
1821
1822``V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA (integer)``
1823 Loop filter alpha coefficient, defined in the H264 standard.
1824 Applicable to the H264 encoder.
1825
1826``V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA (integer)``
1827 Loop filter beta coefficient, defined in the H264 standard.
1828 Applicable to the H264 encoder.
1829
6aeb3f67 1830.. _v4l2-mpeg-video-h264-entropy-mode:
5377d91f 1831
0c046221
MCC
1832``V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE``
1833 (enum)
1834
1835enum v4l2_mpeg_video_h264_entropy_mode -
5377d91f
MH
1836 Entropy coding mode for H264 - CABAC/CAVALC. Applicable to the H264
1837 encoder. Possible values are:
1838
1839
1840
1841.. flat-table::
1842 :header-rows: 0
1843 :stub-columns: 0
1844
1845
1846 - .. row 1
1847
1848 - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC``
1849
1850 - Use CAVLC entropy coding.
1851
1852 - .. row 2
1853
1854 - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC``
1855
1856 - Use CABAC entropy coding.
1857
1858
1859
1860``V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM (boolean)``
1861 Enable 8X8 transform for H264. Applicable to the H264 encoder.
1862
1863``V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (integer)``
1864 Cyclic intra macroblock refresh. This is the number of continuous
1865 macroblocks refreshed every frame. Each frame a successive set of
1866 macroblocks is refreshed until the cycle completes and starts from
1867 the top of the frame. Applicable to H264, H263 and MPEG4 encoder.
1868
1869``V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE (boolean)``
1870 Frame level rate control enable. If this control is disabled then
1871 the quantization parameter for each frame type is constant and set
1872 with appropriate controls (e.g.
1873 ``V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP``). If frame rate control is
1874 enabled then quantization parameter is adjusted to meet the chosen
1875 bitrate. Minimum and maximum value for the quantization parameter
1876 can be set with appropriate controls (e.g.
1877 ``V4L2_CID_MPEG_VIDEO_H263_MIN_QP``). Applicable to encoders.
1878
1879``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE (boolean)``
1880 Macroblock level rate control enable. Applicable to the MPEG4 and
1881 H264 encoders.
1882
1883``V4L2_CID_MPEG_VIDEO_MPEG4_QPEL (boolean)``
1884 Quarter pixel motion estimation for MPEG4. Applicable to the MPEG4
1885 encoder.
1886
1887``V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (integer)``
1888 Quantization parameter for an I frame for H263. Valid range: from 1
1889 to 31.
1890
1891``V4L2_CID_MPEG_VIDEO_H263_MIN_QP (integer)``
1892 Minimum quantization parameter for H263. Valid range: from 1 to 31.
1893
1894``V4L2_CID_MPEG_VIDEO_H263_MAX_QP (integer)``
1895 Maximum quantization parameter for H263. Valid range: from 1 to 31.
1896
1897``V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (integer)``
1898 Quantization parameter for an P frame for H263. Valid range: from 1
1899 to 31.
1900
1901``V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (integer)``
1902 Quantization parameter for an B frame for H263. Valid range: from 1
1903 to 31.
1904
1905``V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP (integer)``
1906 Quantization parameter for an I frame for H264. Valid range: from 0
1907 to 51.
1908
1909``V4L2_CID_MPEG_VIDEO_H264_MIN_QP (integer)``
1910 Minimum quantization parameter for H264. Valid range: from 0 to 51.
1911
1912``V4L2_CID_MPEG_VIDEO_H264_MAX_QP (integer)``
1913 Maximum quantization parameter for H264. Valid range: from 0 to 51.
1914
1915``V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP (integer)``
1916 Quantization parameter for an P frame for H264. Valid range: from 0
1917 to 51.
1918
1919``V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP (integer)``
1920 Quantization parameter for an B frame for H264. Valid range: from 0
1921 to 51.
1922
1923``V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (integer)``
1924 Quantization parameter for an I frame for MPEG4. Valid range: from 1
1925 to 31.
1926
1927``V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP (integer)``
1928 Minimum quantization parameter for MPEG4. Valid range: from 1 to 31.
1929
1930``V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP (integer)``
1931 Maximum quantization parameter for MPEG4. Valid range: from 1 to 31.
1932
1933``V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (integer)``
1934 Quantization parameter for an P frame for MPEG4. Valid range: from 1
1935 to 31.
1936
1937``V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (integer)``
1938 Quantization parameter for an B frame for MPEG4. Valid range: from 1
1939 to 31.
1940
1941``V4L2_CID_MPEG_VIDEO_VBV_SIZE (integer)``
1942 The Video Buffer Verifier size in kilobytes, it is used as a
1943 limitation of frame skip. The VBV is defined in the standard as a
1944 mean to verify that the produced stream will be successfully
1945 decoded. The standard describes it as "Part of a hypothetical
1946 decoder that is conceptually connected to the output of the encoder.
1947 Its purpose is to provide a constraint on the variability of the
1948 data rate that an encoder or editing process may produce.".
1949 Applicable to the MPEG1, MPEG2, MPEG4 encoders.
1950
6aeb3f67 1951.. _v4l2-mpeg-video-vbv-delay:
5377d91f
MH
1952
1953``V4L2_CID_MPEG_VIDEO_VBV_DELAY (integer)``
1954 Sets the initial delay in milliseconds for VBV buffer control.
1955
6aeb3f67 1956.. _v4l2-mpeg-video-hor-search-range:
5377d91f
MH
1957
1958``V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (integer)``
1959 Horizontal search range defines maximum horizontal search area in
1960 pixels to search and match for the present Macroblock (MB) in the
1961 reference picture. This V4L2 control macro is used to set horizontal
1962 search range for motion estimation module in video encoder.
1963
6aeb3f67 1964.. _v4l2-mpeg-video-vert-search-range:
5377d91f
MH
1965
1966``V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (integer)``
1967 Vertical search range defines maximum vertical search area in pixels
1968 to search and match for the present Macroblock (MB) in the reference
1969 picture. This V4L2 control macro is used to set vertical search
1970 range for motion estimation module in video encoder.
1971
6aeb3f67 1972.. _v4l2-mpeg-video-force-key-frame:
5377d91f
MH
1973
1974``V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (button)``
1975 Force a key frame for the next queued buffer. Applicable to
1976 encoders. This is a general, codec-agnostic keyframe control.
1977
1978``V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE (integer)``
1979 The Coded Picture Buffer size in kilobytes, it is used as a
1980 limitation of frame skip. The CPB is defined in the H264 standard as
1981 a mean to verify that the produced stream will be successfully
1982 decoded. Applicable to the H264 encoder.
1983
1984``V4L2_CID_MPEG_VIDEO_H264_I_PERIOD (integer)``
1985 Period between I-frames in the open GOP for H264. In case of an open
1986 GOP this is the period between two I-frames. The period between IDR
1987 (Instantaneous Decoding Refresh) frames is taken from the GOP_SIZE
1988 control. An IDR frame, which stands for Instantaneous Decoding
1989 Refresh is an I-frame after which no prior frames are referenced.
1990 This means that a stream can be restarted from an IDR frame without
1991 the need to store or decode any previous frames. Applicable to the
1992 H264 encoder.
1993
6aeb3f67 1994.. _v4l2-mpeg-video-header-mode:
5377d91f 1995
0c046221
MCC
1996``V4L2_CID_MPEG_VIDEO_HEADER_MODE``
1997 (enum)
1998
1999enum v4l2_mpeg_video_header_mode -
5377d91f
MH
2000 Determines whether the header is returned as the first buffer or is
2001 it returned together with the first frame. Applicable to encoders.
2002 Possible values are:
2003
2004
2005
1300c930
MCC
2006.. tabularcolumns:: |p{10.3cm}|p{7.2cm}|
2007
5377d91f
MH
2008.. flat-table::
2009 :header-rows: 0
2010 :stub-columns: 0
2011
2012
2013 - .. row 1
2014
2015 - ``V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE``
2016
2017 - The stream header is returned separately in the first buffer.
2018
2019 - .. row 2
2020
2021 - ``V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME``
2022
2023 - The stream header is returned together with the first encoded
0579e6e3 2024 frame.
5377d91f
MH
2025
2026
2027
2028``V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (boolean)``
2029 Repeat the video sequence headers. Repeating these headers makes
2030 random access to the video stream easier. Applicable to the MPEG1, 2
2031 and 4 encoder.
2032
2033``V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (boolean)``
2034 Enabled the deblocking post processing filter for MPEG4 decoder.
2035 Applicable to the MPEG4 decoder.
2036
2037``V4L2_CID_MPEG_VIDEO_MPEG4_VOP_TIME_RES (integer)``
2038 vop_time_increment_resolution value for MPEG4. Applicable to the
2039 MPEG4 encoder.
2040
2041``V4L2_CID_MPEG_VIDEO_MPEG4_VOP_TIME_INC (integer)``
2042 vop_time_increment value for MPEG4. Applicable to the MPEG4
2043 encoder.
2044
2045``V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING (boolean)``
2046 Enable generation of frame packing supplemental enhancement
2047 information in the encoded bitstream. The frame packing SEI message
2048 contains the arrangement of L and R planes for 3D viewing.
2049 Applicable to the H264 encoder.
2050
2051``V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 (boolean)``
2052 Sets current frame as frame0 in frame packing SEI. Applicable to the
2053 H264 encoder.
2054
6aeb3f67 2055.. _v4l2-mpeg-video-h264-sei-fp-arrangement-type:
5377d91f 2056
0c046221
MCC
2057``V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE``
2058 (enum)
2059
2060enum v4l2_mpeg_video_h264_sei_fp_arrangement_type -
5377d91f
MH
2061 Frame packing arrangement type for H264 SEI. Applicable to the H264
2062 encoder. Possible values are:
2063
1300c930 2064.. tabularcolumns:: |p{12cm}|p{5.5cm}|
5377d91f
MH
2065
2066.. flat-table::
2067 :header-rows: 0
2068 :stub-columns: 0
2069
5377d91f
MH
2070 - .. row 1
2071
2072 - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHEKERBOARD``
2073
2074 - Pixels are alternatively from L and R.
2075
2076 - .. row 2
2077
2078 - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN``
2079
2080 - L and R are interlaced by column.
2081
2082 - .. row 3
2083
2084 - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_ROW``
2085
2086 - L and R are interlaced by row.
2087
2088 - .. row 4
2089
2090 - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_SIDE_BY_SIDE``
2091
2092 - L is on the left, R on the right.
2093
2094 - .. row 5
2095
2096 - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM``
2097
2098 - L is on top, R on bottom.
2099
2100 - .. row 6
2101
2102 - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL``
2103
2104 - One view per frame.
2105
2106
2107
2108``V4L2_CID_MPEG_VIDEO_H264_FMO (boolean)``
2109 Enables flexible macroblock ordering in the encoded bitstream. It is
2110 a technique used for restructuring the ordering of macroblocks in
2111 pictures. Applicable to the H264 encoder.
2112
6aeb3f67 2113.. _v4l2-mpeg-video-h264-fmo-map-type:
5377d91f 2114
2ba775d0
MCC
2115``V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE``
2116 (enum)
0c046221
MCC
2117
2118enum v4l2_mpeg_video_h264_fmo_map_type -
5377d91f
MH
2119 When using FMO, the map type divides the image in different scan
2120 patterns of macroblocks. Applicable to the H264 encoder. Possible
2121 values are:
2122
1300c930 2123.. tabularcolumns:: |p{12.5cm}|p{5.0cm}|
5377d91f
MH
2124
2125.. flat-table::
2126 :header-rows: 0
2127 :stub-columns: 0
2128
5377d91f
MH
2129 - .. row 1
2130
2131 - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES``
2132
2133 - Slices are interleaved one after other with macroblocks in run
0579e6e3 2134 length order.
5377d91f
MH
2135
2136 - .. row 2
2137
2138 - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES``
2139
2140 - Scatters the macroblocks based on a mathematical function known to
0579e6e3 2141 both encoder and decoder.
5377d91f
MH
2142
2143 - .. row 3
2144
2145 - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER``
2146
2147 - Macroblocks arranged in rectangular areas or regions of interest.
2148
2149 - .. row 4
2150
2151 - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT``
2152
2153 - Slice groups grow in a cyclic way from centre to outwards.
2154
2155 - .. row 5
2156
2157 - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN``
2158
2159 - Slice groups grow in raster scan pattern from left to right.
2160
2161 - .. row 6
2162
2163 - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN``
2164
2165 - Slice groups grow in wipe scan pattern from top to bottom.
2166
2167 - .. row 7
2168
2169 - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT``
2170
2171 - User defined map type.
2172
2173
2174
2175``V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP (integer)``
2176 Number of slice groups in FMO. Applicable to the H264 encoder.
2177
6aeb3f67 2178.. _v4l2-mpeg-video-h264-fmo-change-direction:
5377d91f 2179
0c046221
MCC
2180``V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION``
2181 (enum)
2182
2183enum v4l2_mpeg_video_h264_fmo_change_dir -
5377d91f
MH
2184 Specifies a direction of the slice group change for raster and wipe
2185 maps. Applicable to the H264 encoder. Possible values are:
2186
2187
2188
2189.. flat-table::
2190 :header-rows: 0
2191 :stub-columns: 0
2192
2193
2194 - .. row 1
2195
2196 - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT``
2197
2198 - Raster scan or wipe right.
2199
2200 - .. row 2
2201
2202 - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT``
2203
2204 - Reverse raster scan or wipe left.
2205
2206
2207
2208``V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE (integer)``
2209 Specifies the size of the first slice group for raster and wipe map.
2210 Applicable to the H264 encoder.
2211
2212``V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH (integer)``
2213 Specifies the number of consecutive macroblocks for the interleaved
2214 map. Applicable to the H264 encoder.
2215
2216``V4L2_CID_MPEG_VIDEO_H264_ASO (boolean)``
2217 Enables arbitrary slice ordering in encoded bitstream. Applicable to
2218 the H264 encoder.
2219
2220``V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER (integer)``
2221 Specifies the slice order in ASO. Applicable to the H264 encoder.
2222 The supplied 32-bit integer is interpreted as follows (bit 0 = least
2223 significant bit):
2224
2225
2226
2227.. flat-table::
2228 :header-rows: 0
2229 :stub-columns: 0
2230
2231
2232 - .. row 1
2233
2234 - Bit 0:15
2235
2236 - Slice ID
2237
2238 - .. row 2
2239
2240 - Bit 16:32
2241
2242 - Slice position or order
2243
2244
2245
2246``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING (boolean)``
2247 Enables H264 hierarchical coding. Applicable to the H264 encoder.
2248
6aeb3f67 2249.. _v4l2-mpeg-video-h264-hierarchical-coding-type:
5377d91f 2250
0c046221
MCC
2251``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE``
2252 (enum)
2253
2254enum v4l2_mpeg_video_h264_hierarchical_coding_type -
5377d91f
MH
2255 Specifies the hierarchical coding type. Applicable to the H264
2256 encoder. Possible values are:
2257
2258
2259
2260.. flat-table::
2261 :header-rows: 0
2262 :stub-columns: 0
2263
2264
2265 - .. row 1
2266
2267 - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B``
2268
2269 - Hierarchical B coding.
2270
2271 - .. row 2
2272
2273 - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P``
2274
2275 - Hierarchical P coding.
2276
2277
2278
2279``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (integer)``
2280 Specifies the number of hierarchical coding layers. Applicable to
2281 the H264 encoder.
2282
2283``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (integer)``
2284 Specifies a user defined QP for each layer. Applicable to the H264
2285 encoder. The supplied 32-bit integer is interpreted as follows (bit
2286 0 = least significant bit):
2287
2288
2289
2290.. flat-table::
2291 :header-rows: 0
2292 :stub-columns: 0
2293
2294
2295 - .. row 1
2296
2297 - Bit 0:15
2298
2299 - QP value
2300
2301 - .. row 2
2302
2303 - Bit 16:32
2304
2305 - Layer number
2306
2307
2308
2309
2310MFC 5.1 MPEG Controls
2311---------------------
2312
2313The following MPEG class controls deal with MPEG decoding and encoding
2314settings that are specific to the Multi Format Codec 5.1 device present
2315in the S5P family of SoCs by Samsung.
2316
2317
2318.. _mfc51-control-id:
2319
2320MFC 5.1 Control IDs
2321^^^^^^^^^^^^^^^^^^^
2322
2323``V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE (boolean)``
2324 If the display delay is enabled then the decoder is forced to return
2325 a CAPTURE buffer (decoded frame) after processing a certain number
2326 of OUTPUT buffers. The delay can be set through
2327 ``V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY``. This
2328 feature can be used for example for generating thumbnails of videos.
2329 Applicable to the H264 decoder.
2330
2331``V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY (integer)``
2332 Display delay value for H264 decoder. The decoder is forced to
2333 return a decoded frame after the set 'display delay' number of
2334 frames. If this number is low it may result in frames returned out
2335 of dispaly order, in addition the hardware may still be using the
2336 returned buffer as a reference picture for subsequent frames.
2337
2338``V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (integer)``
2339 The number of reference pictures used for encoding a P picture.
2340 Applicable to the H264 encoder.
2341
2342``V4L2_CID_MPEG_MFC51_VIDEO_PADDING (boolean)``
2343 Padding enable in the encoder - use a color instead of repeating
2344 border pixels. Applicable to encoders.
2345
2346``V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV (integer)``
2347 Padding color in the encoder. Applicable to encoders. The supplied
2348 32-bit integer is interpreted as follows (bit 0 = least significant
2349 bit):
2350
2351
2352
2353.. flat-table::
2354 :header-rows: 0
2355 :stub-columns: 0
2356
2357
2358 - .. row 1
2359
2360 - Bit 0:7
2361
2362 - V chrominance information
2363
2364 - .. row 2
2365
2366 - Bit 8:15
2367
2368 - U chrominance information
2369
2370 - .. row 3
2371
2372 - Bit 16:23
2373
2374 - Y luminance information
2375
2376 - .. row 4
2377
2378 - Bit 24:31
2379
2380 - Must be zero.
2381
2382
2383
2384``V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF (integer)``
2385 Reaction coefficient for MFC rate control. Applicable to encoders.
2386
706f8a99 2387 .. note::
5377d91f 2388
706f8a99 2389 #. Valid only when the frame level RC is enabled.
5377d91f 2390
706f8a99
MCC
2391 #. For tight CBR, this field must be small (ex. 2 ~ 10). For
2392 VBR, this field must be large (ex. 100 ~ 1000).
2393
2394 #. It is not recommended to use the greater number than
2395 FRAME_RATE * (10^9 / BIT_RATE).
5377d91f
MH
2396
2397``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK (boolean)``
2398 Adaptive rate control for dark region. Valid only when H.264 and
2399 macroblock level RC is enabled
2400 (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264
2401 encoder.
2402
2403``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH (boolean)``
2404 Adaptive rate control for smooth region. Valid only when H.264 and
2405 macroblock level RC is enabled
2406 (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264
2407 encoder.
2408
2409``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (boolean)``
2410 Adaptive rate control for static region. Valid only when H.264 and
2411 macroblock level RC is enabled
2412 (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264
2413 encoder.
2414
2415``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY (boolean)``
2416 Adaptive rate control for activity region. Valid only when H.264 and
2417 macroblock level RC is enabled
2418 (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264
2419 encoder.
2420
6aeb3f67 2421.. _v4l2-mpeg-mfc51-video-frame-skip-mode:
5377d91f 2422
0c046221
MCC
2423``V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE``
2424 (enum)
2425
2426enum v4l2_mpeg_mfc51_video_frame_skip_mode -
5377d91f
MH
2427 Indicates in what conditions the encoder should skip frames. If
2428 encoding a frame would cause the encoded stream to be larger then a
2429 chosen data limit then the frame will be skipped. Possible values
2430 are:
2431
2432
1300c930 2433.. tabularcolumns:: |p{9.0cm}|p{8.5cm}|
5377d91f
MH
2434
2435.. flat-table::
2436 :header-rows: 0
2437 :stub-columns: 0
2438
5377d91f
MH
2439 - .. row 1
2440
2441 - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_DISABLED``
2442
2443 - Frame skip mode is disabled.
2444
2445 - .. row 2
2446
2447 - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_LEVEL_LIMIT``
2448
2449 - Frame skip mode enabled and buffer limit is set by the chosen
0579e6e3 2450 level and is defined by the standard.
5377d91f
MH
2451
2452 - .. row 3
2453
2454 - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_BUF_LIMIT``
2455
2456 - Frame skip mode enabled and buffer limit is set by the VBV
0579e6e3 2457 (MPEG1/2/4) or CPB (H264) buffer size control.
5377d91f
MH
2458
2459
2460
2461``V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT (integer)``
2462 Enable rate-control with fixed target bit. If this setting is
2463 enabled, then the rate control logic of the encoder will calculate
2464 the average bitrate for a GOP and keep it below or equal the set
2465 bitrate target. Otherwise the rate control logic calculates the
2466 overall average bitrate for the stream and keeps it below or equal
2467 to the set bitrate. In the first case the average bitrate for the
2468 whole stream will be smaller then the set bitrate. This is caused
2469 because the average is calculated for smaller number of frames, on
2470 the other hand enabling this setting will ensure that the stream
2471 will meet tight bandwidth constraints. Applicable to encoders.
2472
6aeb3f67 2473.. _v4l2-mpeg-mfc51-video-force-frame-type:
5377d91f 2474
0c046221
MCC
2475``V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE``
2476 (enum)
2477
2478enum v4l2_mpeg_mfc51_video_force_frame_type -
5377d91f
MH
2479 Force a frame type for the next queued buffer. Applicable to
2480 encoders. Possible values are:
2481
2482
2483
2484.. flat-table::
2485 :header-rows: 0
2486 :stub-columns: 0
2487
2488
2489 - .. row 1
2490
2491 - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_DISABLED``
2492
2493 - Forcing a specific frame type disabled.
2494
2495 - .. row 2
2496
2497 - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_I_FRAME``
2498
2499 - Force an I-frame.
2500
2501 - .. row 3
2502
2503 - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_NOT_CODED``
2504
2505 - Force a non-coded frame.
2506
2507
2508
2509
2510CX2341x MPEG Controls
2511---------------------
2512
2513The following MPEG class controls deal with MPEG encoding settings that
2514are specific to the Conexant CX23415 and CX23416 MPEG encoding chips.
2515
2516
2517.. _cx2341x-control-id:
2518
2519CX2341x Control IDs
2520^^^^^^^^^^^^^^^^^^^
2521
6aeb3f67 2522.. _v4l2-mpeg-cx2341x-video-spatial-filter-mode:
5377d91f 2523
0c046221
MCC
2524``V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE``
2525 (enum)
2526
2527enum v4l2_mpeg_cx2341x_video_spatial_filter_mode -
5377d91f
MH
2528 Sets the Spatial Filter mode (default ``MANUAL``). Possible values
2529 are:
2530
2531
2532
2533.. flat-table::
2534 :header-rows: 0
2535 :stub-columns: 0
2536
2537
2538 - .. row 1
2539
2540 - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL``
2541
2542 - Choose the filter manually
2543
2544 - .. row 2
2545
2546 - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO``
2547
2548 - Choose the filter automatically
2549
2550
2551
2552``V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (integer (0-15))``
2553 The setting for the Spatial Filter. 0 = off, 15 = maximum. (Default
2554 is 0.)
2555
6aeb3f67 2556.. _luma-spatial-filter-type:
5377d91f 2557
0c046221
MCC
2558``V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE``
2559 (enum)
2560
2561enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type -
5377d91f
MH
2562 Select the algorithm to use for the Luma Spatial Filter (default
2563 ``1D_HOR``). Possible values:
2564
2565
2566
1300c930
MCC
2567.. tabularcolumns:: |p{14.5cm}|p{3.0cm}|
2568
5377d91f
MH
2569.. flat-table::
2570 :header-rows: 0
2571 :stub-columns: 0
2572
2573
2574 - .. row 1
2575
2576 - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF``
2577
2578 - No filter
2579
2580 - .. row 2
2581
2582 - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR``
2583
2584 - One-dimensional horizontal
2585
2586 - .. row 3
2587
2588 - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT``
2589
2590 - One-dimensional vertical
2591
2592 - .. row 4
2593
2594 - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE``
2595
2596 - Two-dimensional separable
2597
2598 - .. row 5
2599
2600 - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE``
2601
2602 - Two-dimensional symmetrical non-separable
2603
2604
2605
6aeb3f67 2606.. _chroma-spatial-filter-type:
5377d91f 2607
0c046221
MCC
2608``V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE``
2609 (enum)
2610
2611enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type -
5377d91f
MH
2612 Select the algorithm for the Chroma Spatial Filter (default
2613 ``1D_HOR``). Possible values are:
2614
2615
2616
2617.. flat-table::
2618 :header-rows: 0
2619 :stub-columns: 0
2620
2621
2622 - .. row 1
2623
2624 - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF``
2625
2626 - No filter
2627
2628 - .. row 2
2629
2630 - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR``
2631
2632 - One-dimensional horizontal
2633
2634
2635
6aeb3f67 2636.. _v4l2-mpeg-cx2341x-video-temporal-filter-mode:
5377d91f 2637
0c046221
MCC
2638``V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE``
2639 (enum)
2640
2641enum v4l2_mpeg_cx2341x_video_temporal_filter_mode -
5377d91f
MH
2642 Sets the Temporal Filter mode (default ``MANUAL``). Possible values
2643 are:
2644
2645
2646
2647.. flat-table::
2648 :header-rows: 0
2649 :stub-columns: 0
2650
2651
2652 - .. row 1
2653
2654 - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL``
2655
2656 - Choose the filter manually
2657
2658 - .. row 2
2659
2660 - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO``
2661
2662 - Choose the filter automatically
2663
2664
2665
2666``V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (integer (0-31))``
2667 The setting for the Temporal Filter. 0 = off, 31 = maximum. (Default
2668 is 8 for full-scale capturing and 0 for scaled capturing.)
2669
6aeb3f67 2670.. _v4l2-mpeg-cx2341x-video-median-filter-type:
5377d91f 2671
0c046221
MCC
2672``V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE``
2673 (enum)
2674
2675enum v4l2_mpeg_cx2341x_video_median_filter_type -
5377d91f
MH
2676 Median Filter Type (default ``OFF``). Possible values are:
2677
2678
2679
2680.. flat-table::
2681 :header-rows: 0
2682 :stub-columns: 0
2683
2684
2685 - .. row 1
2686
2687 - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF``
2688
2689 - No filter
2690
2691 - .. row 2
2692
2693 - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR``
2694
2695 - Horizontal filter
2696
2697 - .. row 3
2698
2699 - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT``
2700
2701 - Vertical filter
2702
2703 - .. row 4
2704
2705 - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT``
2706
2707 - Horizontal and vertical filter
2708
2709 - .. row 5
2710
2711 - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG``
2712
2713 - Diagonal filter
2714
2715
2716
2717``V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (integer (0-255))``
2718 Threshold above which the luminance median filter is enabled
2719 (default 0)
2720
2721``V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (integer (0-255))``
2722 Threshold below which the luminance median filter is enabled
2723 (default 255)
2724
2725``V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (integer (0-255))``
2726 Threshold above which the chroma median filter is enabled (default
2727 0)
2728
2729``V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (integer (0-255))``
2730 Threshold below which the chroma median filter is enabled (default
2731 255)
2732
2733``V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (boolean)``
2734 The CX2341X MPEG encoder can insert one empty MPEG-2 PES packet into
2735 the stream between every four video frames. The packet size is 2048
2736 bytes, including the packet_start_code_prefix and stream_id
2737 fields. The stream_id is 0xBF (private stream 2). The payload
2738 consists of 0x00 bytes, to be filled in by the application. 0 = do
2739 not insert, 1 = insert packets.
2740
2741
2742VPX Control Reference
2743---------------------
2744
2745The VPX controls include controls for encoding parameters of VPx video
2746codec.
2747
2748
2749.. _vpx-control-id:
2750
2751VPX Control IDs
2752^^^^^^^^^^^^^^^
2753
6aeb3f67 2754.. _v4l2-vpx-num-partitions:
5377d91f 2755
0c046221
MCC
2756``V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS``
2757 (enum)
2758
2759enum v4l2_vp8_num_partitions -
5377d91f
MH
2760 The number of token partitions to use in VP8 encoder. Possible
2761 values are:
2762
2763
2764
2765.. flat-table::
2766 :header-rows: 0
2767 :stub-columns: 0
2768
2769
2770 - .. row 1
2771
2772 - ``V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION``
2773
2774 - 1 coefficient partition
2775
2776 - .. row 2
2777
2778 - ``V4L2_CID_MPEG_VIDEO_VPX_2_PARTITIONS``
2779
2780 - 2 coefficient partitions
2781
2782 - .. row 3
2783
2784 - ``V4L2_CID_MPEG_VIDEO_VPX_4_PARTITIONS``
2785
2786 - 4 coefficient partitions
2787
2788 - .. row 4
2789
2790 - ``V4L2_CID_MPEG_VIDEO_VPX_8_PARTITIONS``
2791
2792 - 8 coefficient partitions
2793
2794
2795
2796``V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4 (boolean)``
2797 Setting this prevents intra 4x4 mode in the intra mode decision.
2798
6aeb3f67 2799.. _v4l2-vpx-num-ref-frames:
5377d91f 2800
0c046221
MCC
2801``V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES``
2802 (enum)
2803
2804enum v4l2_vp8_num_ref_frames -
5377d91f
MH
2805 The number of reference pictures for encoding P frames. Possible
2806 values are:
2807
1300c930 2808.. tabularcolumns:: |p{7.9cm}|p{9.6cm}|
5377d91f
MH
2809
2810.. flat-table::
2811 :header-rows: 0
2812 :stub-columns: 0
2813
5377d91f
MH
2814 - .. row 1
2815
2816 - ``V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME``
2817
2818 - Last encoded frame will be searched
2819
2820 - .. row 2
2821
2822 - ``V4L2_CID_MPEG_VIDEO_VPX_2_REF_FRAME``
2823
2824 - Two frames will be searched among the last encoded frame, the
0579e6e3
MCC
2825 golden frame and the alternate reference (altref) frame. The
2826 encoder implementation will decide which two are chosen.
5377d91f
MH
2827
2828 - .. row 3
2829
2830 - ``V4L2_CID_MPEG_VIDEO_VPX_3_REF_FRAME``
2831
2832 - The last encoded frame, the golden frame and the altref frame will
0579e6e3 2833 be searched.
5377d91f
MH
2834
2835
2836
2837``V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL (integer)``
2838 Indicates the loop filter level. The adjustment of the loop filter
2839 level is done via a delta value against a baseline loop filter
2840 value.
2841
2842``V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS (integer)``
2843 This parameter affects the loop filter. Anything above zero weakens
2844 the deblocking effect on the loop filter.
2845
2846``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD (integer)``
2847 Sets the refresh period for the golden frame. The period is defined
2848 in number of frames. For a value of 'n', every nth frame starting
2849 from the first key frame will be taken as a golden frame. For eg.
2850 for encoding sequence of 0, 1, 2, 3, 4, 5, 6, 7 where the golden
2851 frame refresh period is set as 4, the frames 0, 4, 8 etc will be
2852 taken as the golden frames as frame 0 is always a key frame.
2853
6aeb3f67 2854.. _v4l2-vpx-golden-frame-sel:
5377d91f 2855
0c046221
MCC
2856``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL``
2857 (enum)
2858
2859enum v4l2_vp8_golden_frame_sel -
5377d91f
MH
2860 Selects the golden frame for encoding. Possible values are:
2861
1300c930 2862.. raw:: latex
5377d91f 2863
1300c930
MCC
2864 \begin{adjustbox}{width=\columnwidth}
2865
2866.. tabularcolumns:: |p{11.0cm}|p{10.0cm}|
5377d91f
MH
2867
2868.. flat-table::
2869 :header-rows: 0
2870 :stub-columns: 0
2871
5377d91f
MH
2872 - .. row 1
2873
2874 - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV``
2875
2876 - Use the (n-2)th frame as a golden frame, current frame index being
0579e6e3 2877 'n'.
5377d91f
MH
2878
2879 - .. row 2
2880
2881 - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD``
2882
2883 - Use the previous specific frame indicated by
1300c930 2884 ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD`` as a
0579e6e3 2885 golden frame.
5377d91f 2886
1300c930
MCC
2887.. raw:: latex
2888
2889 \end{adjustbox}
5377d91f
MH
2890
2891
2892``V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (integer)``
2893 Minimum quantization parameter for VP8.
2894
2895``V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (integer)``
2896 Maximum quantization parameter for VP8.
2897
2898``V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (integer)``
2899 Quantization parameter for an I frame for VP8.
2900
2901``V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (integer)``
2902 Quantization parameter for a P frame for VP8.
2903
2904``V4L2_CID_MPEG_VIDEO_VPX_PROFILE (integer)``
2905 Select the desired profile for VPx encoder. Acceptable values are 0,
2906 1, 2 and 3 corresponding to encoder profiles 0, 1, 2 and 3.
2907
2908
2909.. _camera-controls:
2910
2911Camera Control Reference
2912========================
2913
2914The Camera class includes controls for mechanical (or equivalent
2915digital) features of a device such as controllable lenses or sensors.
2916
2917
2918.. _camera-control-id:
2919
2920Camera Control IDs
2921------------------
2922
2923``V4L2_CID_CAMERA_CLASS (class)``
2924 The Camera class descriptor. Calling
7347081e 2925 :ref:`VIDIOC_QUERYCTRL` for this control will
5377d91f
MH
2926 return a description of this control class.
2927
6aeb3f67 2928.. _v4l2-exposure-auto-type:
5377d91f 2929
0c046221
MCC
2930``V4L2_CID_EXPOSURE_AUTO``
2931 (enum)
2932
2933enum v4l2_exposure_auto_type -
5377d91f
MH
2934 Enables automatic adjustments of the exposure time and/or iris
2935 aperture. The effect of manual changes of the exposure time or iris
2936 aperture while these features are enabled is undefined, drivers
2937 should ignore such requests. Possible values are:
2938
2939
2940
2941.. flat-table::
2942 :header-rows: 0
2943 :stub-columns: 0
2944
2945
2946 - .. row 1
2947
2948 - ``V4L2_EXPOSURE_AUTO``
2949
2950 - Automatic exposure time, automatic iris aperture.
2951
2952 - .. row 2
2953
2954 - ``V4L2_EXPOSURE_MANUAL``
2955
2956 - Manual exposure time, manual iris.
2957
2958 - .. row 3
2959
2960 - ``V4L2_EXPOSURE_SHUTTER_PRIORITY``
2961
2962 - Manual exposure time, auto iris.
2963
2964 - .. row 4
2965
2966 - ``V4L2_EXPOSURE_APERTURE_PRIORITY``
2967
2968 - Auto exposure time, manual iris.
2969
2970
2971
2972``V4L2_CID_EXPOSURE_ABSOLUTE (integer)``
2973 Determines the exposure time of the camera sensor. The exposure time
2974 is limited by the frame interval. Drivers should interpret the
2975 values as 100 µs units, where the value 1 stands for 1/10000th of a
2976 second, 10000 for 1 second and 100000 for 10 seconds.
2977
2978``V4L2_CID_EXPOSURE_AUTO_PRIORITY (boolean)``
2979 When ``V4L2_CID_EXPOSURE_AUTO`` is set to ``AUTO`` or
2980 ``APERTURE_PRIORITY``, this control determines if the device may
2981 dynamically vary the frame rate. By default this feature is disabled
2982 (0) and the frame rate must remain constant.
2983
2984``V4L2_CID_EXPOSURE_BIAS (integer menu)``
2985 Determines the automatic exposure compensation, it is effective only
2986 when ``V4L2_CID_EXPOSURE_AUTO`` control is set to ``AUTO``,
2987 ``SHUTTER_PRIORITY`` or ``APERTURE_PRIORITY``. It is expressed in
2988 terms of EV, drivers should interpret the values as 0.001 EV units,
2989 where the value 1000 stands for +1 EV.
2990
2991 Increasing the exposure compensation value is equivalent to
2992 decreasing the exposure value (EV) and will increase the amount of
2993 light at the image sensor. The camera performs the exposure
2994 compensation by adjusting absolute exposure time and/or aperture.
2995
6aeb3f67 2996.. _v4l2-exposure-metering:
5377d91f 2997
0c046221
MCC
2998``V4L2_CID_EXPOSURE_METERING``
2999 (enum)
3000
3001enum v4l2_exposure_metering -
5377d91f
MH
3002 Determines how the camera measures the amount of light available for
3003 the frame exposure. Possible values are:
3004
1300c930 3005.. tabularcolumns:: |p{8.5cm}|p{9.0cm}|
5377d91f
MH
3006
3007.. flat-table::
3008 :header-rows: 0
3009 :stub-columns: 0
3010
5377d91f
MH
3011 - .. row 1
3012
3013 - ``V4L2_EXPOSURE_METERING_AVERAGE``
3014
3015 - Use the light information coming from the entire frame and average
0579e6e3 3016 giving no weighting to any particular portion of the metered area.
5377d91f
MH
3017
3018 - .. row 2
3019
3020 - ``V4L2_EXPOSURE_METERING_CENTER_WEIGHTED``
3021
3022 - Average the light information coming from the entire frame giving
0579e6e3 3023 priority to the center of the metered area.
5377d91f
MH
3024
3025 - .. row 3
3026
3027 - ``V4L2_EXPOSURE_METERING_SPOT``
3028
3029 - Measure only very small area at the center of the frame.
3030
3031 - .. row 4
3032
3033 - ``V4L2_EXPOSURE_METERING_MATRIX``
3034
3035 - A multi-zone metering. The light intensity is measured in several
0579e6e3
MCC
3036 points of the frame and the results are combined. The algorithm of
3037 the zones selection and their significance in calculating the
3038 final value is device dependent.
5377d91f
MH
3039
3040
3041
3042``V4L2_CID_PAN_RELATIVE (integer)``
3043 This control turns the camera horizontally by the specified amount.
3044 The unit is undefined. A positive value moves the camera to the
3045 right (clockwise when viewed from above), a negative value to the
3046 left. A value of zero does not cause motion. This is a write-only
3047 control.
3048
3049``V4L2_CID_TILT_RELATIVE (integer)``
3050 This control turns the camera vertically by the specified amount.
3051 The unit is undefined. A positive value moves the camera up, a
3052 negative value down. A value of zero does not cause motion. This is
3053 a write-only control.
3054
3055``V4L2_CID_PAN_RESET (button)``
3056 When this control is set, the camera moves horizontally to the
3057 default position.
3058
3059``V4L2_CID_TILT_RESET (button)``
3060 When this control is set, the camera moves vertically to the default
3061 position.
3062
3063``V4L2_CID_PAN_ABSOLUTE (integer)``
3064 This control turns the camera horizontally to the specified
3065 position. Positive values move the camera to the right (clockwise
3066 when viewed from above), negative values to the left. Drivers should
3067 interpret the values as arc seconds, with valid values between -180
3068 * 3600 and +180 * 3600 inclusive.
3069
3070``V4L2_CID_TILT_ABSOLUTE (integer)``
3071 This control turns the camera vertically to the specified position.
3072 Positive values move the camera up, negative values down. Drivers
3073 should interpret the values as arc seconds, with valid values
3074 between -180 * 3600 and +180 * 3600 inclusive.
3075
3076``V4L2_CID_FOCUS_ABSOLUTE (integer)``
3077 This control sets the focal point of the camera to the specified
3078 position. The unit is undefined. Positive values set the focus
3079 closer to the camera, negative values towards infinity.
3080
3081``V4L2_CID_FOCUS_RELATIVE (integer)``
3082 This control moves the focal point of the camera by the specified
3083 amount. The unit is undefined. Positive values move the focus closer
3084 to the camera, negative values towards infinity. This is a
3085 write-only control.
3086
3087``V4L2_CID_FOCUS_AUTO (boolean)``
3088 Enables continuous automatic focus adjustments. The effect of manual
3089 focus adjustments while this feature is enabled is undefined,
3090 drivers should ignore such requests.
3091
3092``V4L2_CID_AUTO_FOCUS_START (button)``
3093 Starts single auto focus process. The effect of setting this control
3094 when ``V4L2_CID_FOCUS_AUTO`` is set to ``TRUE`` (1) is undefined,
3095 drivers should ignore such requests.
3096
3097``V4L2_CID_AUTO_FOCUS_STOP (button)``
3098 Aborts automatic focusing started with ``V4L2_CID_AUTO_FOCUS_START``
3099 control. It is effective only when the continuous autofocus is
3100 disabled, that is when ``V4L2_CID_FOCUS_AUTO`` control is set to
3101 ``FALSE`` (0).
3102
6aeb3f67 3103.. _v4l2-auto-focus-status:
5377d91f
MH
3104
3105``V4L2_CID_AUTO_FOCUS_STATUS (bitmask)``
3106 The automatic focus status. This is a read-only control.
3107
3108 Setting ``V4L2_LOCK_FOCUS`` lock bit of the ``V4L2_CID_3A_LOCK``
3109 control may stop updates of the ``V4L2_CID_AUTO_FOCUS_STATUS``
3110 control value.
3111
1300c930 3112.. tabularcolumns:: |p{6.5cm}|p{11.0cm}|
5377d91f
MH
3113
3114.. flat-table::
3115 :header-rows: 0
3116 :stub-columns: 0
3117
5377d91f
MH
3118 - .. row 1
3119
3120 - ``V4L2_AUTO_FOCUS_STATUS_IDLE``
3121
3122 - Automatic focus is not active.
3123
3124 - .. row 2
3125
3126 - ``V4L2_AUTO_FOCUS_STATUS_BUSY``
3127
3128 - Automatic focusing is in progress.
3129
3130 - .. row 3
3131
3132 - ``V4L2_AUTO_FOCUS_STATUS_REACHED``
3133
3134 - Focus has been reached.
3135
3136 - .. row 4
3137
3138 - ``V4L2_AUTO_FOCUS_STATUS_FAILED``
3139
3140 - Automatic focus has failed, the driver will not transition from
0579e6e3 3141 this state until another action is performed by an application.
5377d91f
MH
3142
3143
3144
6aeb3f67 3145.. _v4l2-auto-focus-range:
5377d91f 3146
0c046221
MCC
3147``V4L2_CID_AUTO_FOCUS_RANGE``
3148 (enum)
3149
3150enum v4l2_auto_focus_range -
5377d91f
MH
3151 Determines auto focus distance range for which lens may be adjusted.
3152
1300c930 3153.. tabularcolumns:: |p{6.5cm}|p{11.0cm}|
5377d91f
MH
3154
3155.. flat-table::
3156 :header-rows: 0
3157 :stub-columns: 0
3158
3159
3160 - .. row 1
3161
3162 - ``V4L2_AUTO_FOCUS_RANGE_AUTO``
3163
3164 - The camera automatically selects the focus range.
3165
3166 - .. row 2
3167
3168 - ``V4L2_AUTO_FOCUS_RANGE_NORMAL``
3169
3170 - Normal distance range, limited for best automatic focus
0579e6e3 3171 performance.
5377d91f
MH
3172
3173 - .. row 3
3174
3175 - ``V4L2_AUTO_FOCUS_RANGE_MACRO``
3176
3177 - Macro (close-up) auto focus. The camera will use its minimum
0579e6e3 3178 possible distance for auto focus.
5377d91f
MH
3179
3180 - .. row 4
3181
3182 - ``V4L2_AUTO_FOCUS_RANGE_INFINITY``
3183
3184 - The lens is set to focus on an object at infinite distance.
3185
3186
3187
3188``V4L2_CID_ZOOM_ABSOLUTE (integer)``
3189 Specify the objective lens focal length as an absolute value. The
3190 zoom unit is driver-specific and its value should be a positive
3191 integer.
3192
3193``V4L2_CID_ZOOM_RELATIVE (integer)``
3194 Specify the objective lens focal length relatively to the current
3195 value. Positive values move the zoom lens group towards the
3196 telephoto direction, negative values towards the wide-angle
3197 direction. The zoom unit is driver-specific. This is a write-only
3198 control.
3199
3200``V4L2_CID_ZOOM_CONTINUOUS (integer)``
3201 Move the objective lens group at the specified speed until it
3202 reaches physical device limits or until an explicit request to stop
3203 the movement. A positive value moves the zoom lens group towards the
3204 telephoto direction. A value of zero stops the zoom lens group
3205 movement. A negative value moves the zoom lens group towards the
3206 wide-angle direction. The zoom speed unit is driver-specific.
3207
3208``V4L2_CID_IRIS_ABSOLUTE (integer)``
3209 This control sets the camera's aperture to the specified value. The
3210 unit is undefined. Larger values open the iris wider, smaller values
3211 close it.
3212
3213``V4L2_CID_IRIS_RELATIVE (integer)``
3214 This control modifies the camera's aperture by the specified amount.
3215 The unit is undefined. Positive values open the iris one step
3216 further, negative values close it one step further. This is a
3217 write-only control.
3218
3219``V4L2_CID_PRIVACY (boolean)``
3220 Prevent video from being acquired by the camera. When this control
3221 is set to ``TRUE`` (1), no image can be captured by the camera.
3222 Common means to enforce privacy are mechanical obturation of the
3223 sensor and firmware image processing, but the device is not
3224 restricted to these methods. Devices that implement the privacy
3225 control must support read access and may support write access.
3226
3227``V4L2_CID_BAND_STOP_FILTER (integer)``
3228 Switch the band-stop filter of a camera sensor on or off, or specify
3229 its strength. Such band-stop filters can be used, for example, to
3230 filter out the fluorescent light component.
3231
6aeb3f67 3232.. _v4l2-auto-n-preset-white-balance:
5377d91f 3233
0c046221
MCC
3234``V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE``
3235 (enum)
3236
3237enum v4l2_auto_n_preset_white_balance -
5377d91f
MH
3238 Sets white balance to automatic, manual or a preset. The presets
3239 determine color temperature of the light as a hint to the camera for
3240 white balance adjustments resulting in most accurate color
3241 representation. The following white balance presets are listed in
3242 order of increasing color temperature.
3243
1300c930 3244.. tabularcolumns:: |p{7.0 cm}|p{10.5cm}|
5377d91f
MH
3245
3246.. flat-table::
3247 :header-rows: 0
3248 :stub-columns: 0
3249
5377d91f
MH
3250 - .. row 1
3251
3252 - ``V4L2_WHITE_BALANCE_MANUAL``
3253
3254 - Manual white balance.
3255
3256 - .. row 2
3257
3258 - ``V4L2_WHITE_BALANCE_AUTO``
3259
3260 - Automatic white balance adjustments.
3261
3262 - .. row 3
3263
3264 - ``V4L2_WHITE_BALANCE_INCANDESCENT``
3265
3266 - White balance setting for incandescent (tungsten) lighting. It
0579e6e3
MCC
3267 generally cools down the colors and corresponds approximately to
3268 2500...3500 K color temperature range.
5377d91f
MH
3269
3270 - .. row 4
3271
3272 - ``V4L2_WHITE_BALANCE_FLUORESCENT``
3273
3274 - White balance preset for fluorescent lighting. It corresponds
0579e6e3 3275 approximately to 4000...5000 K color temperature.
5377d91f
MH
3276
3277 - .. row 5
3278
3279 - ``V4L2_WHITE_BALANCE_FLUORESCENT_H``
3280
3281 - With this setting the camera will compensate for fluorescent H
0579e6e3 3282 lighting.
5377d91f
MH
3283
3284 - .. row 6
3285
3286 - ``V4L2_WHITE_BALANCE_HORIZON``
3287
3288 - White balance setting for horizon daylight. It corresponds
0579e6e3 3289 approximately to 5000 K color temperature.
5377d91f
MH
3290
3291 - .. row 7
3292
3293 - ``V4L2_WHITE_BALANCE_DAYLIGHT``
3294
3295 - White balance preset for daylight (with clear sky). It corresponds
0579e6e3 3296 approximately to 5000...6500 K color temperature.
5377d91f
MH
3297
3298 - .. row 8
3299
3300 - ``V4L2_WHITE_BALANCE_FLASH``
3301
3302 - With this setting the camera will compensate for the flash light.
0579e6e3
MCC
3303 It slightly warms up the colors and corresponds roughly to
3304 5000...5500 K color temperature.
5377d91f
MH
3305
3306 - .. row 9
3307
3308 - ``V4L2_WHITE_BALANCE_CLOUDY``
3309
3310 - White balance preset for moderately overcast sky. This option
0579e6e3
MCC
3311 corresponds approximately to 6500...8000 K color temperature
3312 range.
5377d91f
MH
3313
3314 - .. row 10
3315
3316 - ``V4L2_WHITE_BALANCE_SHADE``
3317
3318 - White balance preset for shade or heavily overcast sky. It
0579e6e3 3319 corresponds approximately to 9000...10000 K color temperature.
5377d91f
MH
3320
3321
3322
6aeb3f67 3323.. _v4l2-wide-dynamic-range:
5377d91f
MH
3324
3325``V4L2_CID_WIDE_DYNAMIC_RANGE (boolean)``
3326 Enables or disables the camera's wide dynamic range feature. This
3327 feature allows to obtain clear images in situations where intensity
3328 of the illumination varies significantly throughout the scene, i.e.
3329 there are simultaneously very dark and very bright areas. It is most
3330 commonly realized in cameras by combining two subsequent frames with
4855307b 3331 different exposure times. [#f1]_
5377d91f 3332
6aeb3f67 3333.. _v4l2-image-stabilization:
5377d91f
MH
3334
3335``V4L2_CID_IMAGE_STABILIZATION (boolean)``
3336 Enables or disables image stabilization.
3337
3338``V4L2_CID_ISO_SENSITIVITY (integer menu)``
3339 Determines ISO equivalent of an image sensor indicating the sensor's
3340 sensitivity to light. The numbers are expressed in arithmetic scale,
3341 as per :ref:`iso12232` standard, where doubling the sensor
3342 sensitivity is represented by doubling the numerical ISO value.
3343 Applications should interpret the values as standard ISO values
3344 multiplied by 1000, e.g. control value 800 stands for ISO 0.8.
3345 Drivers will usually support only a subset of standard ISO values.
3346 The effect of setting this control while the
3347 ``V4L2_CID_ISO_SENSITIVITY_AUTO`` control is set to a value other
3348 than ``V4L2_CID_ISO_SENSITIVITY_MANUAL`` is undefined, drivers
3349 should ignore such requests.
3350
6aeb3f67 3351.. _v4l2-iso-sensitivity-auto-type:
5377d91f 3352
0c046221
MCC
3353``V4L2_CID_ISO_SENSITIVITY_AUTO``
3354 (enum)
3355
3356enum v4l2_iso_sensitivity_type -
5377d91f
MH
3357 Enables or disables automatic ISO sensitivity adjustments.
3358
3359
3360
3361.. flat-table::
3362 :header-rows: 0
3363 :stub-columns: 0
3364
3365
3366 - .. row 1
3367
3368 - ``V4L2_CID_ISO_SENSITIVITY_MANUAL``
3369
3370 - Manual ISO sensitivity.
3371
3372 - .. row 2
3373
3374 - ``V4L2_CID_ISO_SENSITIVITY_AUTO``
3375
3376 - Automatic ISO sensitivity adjustments.
3377
3378
3379
6aeb3f67 3380.. _v4l2-scene-mode:
5377d91f 3381
0c046221
MCC
3382``V4L2_CID_SCENE_MODE``
3383 (enum)
3384
3385enum v4l2_scene_mode -
5377d91f
MH
3386 This control allows to select scene programs as the camera automatic
3387 modes optimized for common shooting scenes. Within these modes the
3388 camera determines best exposure, aperture, focusing, light metering,
3389 white balance and equivalent sensitivity. The controls of those
3390 parameters are influenced by the scene mode control. An exact
3391 behavior in each mode is subject to the camera specification.
3392
3393 When the scene mode feature is not used, this control should be set
3394 to ``V4L2_SCENE_MODE_NONE`` to make sure the other possibly related
3395 controls are accessible. The following scene programs are defined:
3396
1300c930 3397.. tabularcolumns:: |p{6.0cm}|p{11.5cm}|
5377d91f
MH
3398
3399.. flat-table::
3400 :header-rows: 0
3401 :stub-columns: 0
3402
5377d91f
MH
3403 - .. row 1
3404
3405 - ``V4L2_SCENE_MODE_NONE``
3406
3407 - The scene mode feature is disabled.
3408
3409 - .. row 2
3410
3411 - ``V4L2_SCENE_MODE_BACKLIGHT``
3412
3413 - Backlight. Compensates for dark shadows when light is coming from
0579e6e3 3414 behind a subject, also by automatically turning on the flash.
5377d91f
MH
3415
3416 - .. row 3
3417
3418 - ``V4L2_SCENE_MODE_BEACH_SNOW``
3419
3420 - Beach and snow. This mode compensates for all-white or bright
0579e6e3
MCC
3421 scenes, which tend to look gray and low contrast, when camera's
3422 automatic exposure is based on an average scene brightness. To
3423 compensate, this mode automatically slightly overexposes the
3424 frames. The white balance may also be adjusted to compensate for
3425 the fact that reflected snow looks bluish rather than white.
5377d91f
MH
3426
3427 - .. row 4
3428
3429 - ``V4L2_SCENE_MODE_CANDLELIGHT``
3430
3431 - Candle light. The camera generally raises the ISO sensitivity and
0579e6e3
MCC
3432 lowers the shutter speed. This mode compensates for relatively
3433 close subject in the scene. The flash is disabled in order to
3434 preserve the ambiance of the light.
5377d91f
MH
3435
3436 - .. row 5
3437
3438 - ``V4L2_SCENE_MODE_DAWN_DUSK``
3439
3440 - Dawn and dusk. Preserves the colors seen in low natural light
0579e6e3
MCC
3441 before dusk and after down. The camera may turn off the flash, and
3442 automatically focus at infinity. It will usually boost saturation
3443 and lower the shutter speed.
5377d91f
MH
3444
3445 - .. row 6
3446
3447 - ``V4L2_SCENE_MODE_FALL_COLORS``
3448
3449 - Fall colors. Increases saturation and adjusts white balance for
0579e6e3
MCC
3450 color enhancement. Pictures of autumn leaves get saturated reds
3451 and yellows.
5377d91f
MH
3452
3453 - .. row 7
3454
3455 - ``V4L2_SCENE_MODE_FIREWORKS``
3456
3457 - Fireworks. Long exposure times are used to capture the expanding
0579e6e3
MCC
3458 burst of light from a firework. The camera may invoke image
3459 stabilization.
5377d91f
MH
3460
3461 - .. row 8
3462
3463 - ``V4L2_SCENE_MODE_LANDSCAPE``
3464
3465 - Landscape. The camera may choose a small aperture to provide deep
0579e6e3
MCC
3466 depth of field and long exposure duration to help capture detail
3467 in dim light conditions. The focus is fixed at infinity. Suitable
3468 for distant and wide scenery.
5377d91f
MH
3469
3470 - .. row 9
3471
3472 - ``V4L2_SCENE_MODE_NIGHT``
3473
3474 - Night, also known as Night Landscape. Designed for low light
0579e6e3
MCC
3475 conditions, it preserves detail in the dark areas without blowing
3476 out bright objects. The camera generally sets itself to a
3477 medium-to-high ISO sensitivity, with a relatively long exposure
3478 time, and turns flash off. As such, there will be increased image
3479 noise and the possibility of blurred image.
5377d91f
MH
3480
3481 - .. row 10
3482
3483 - ``V4L2_SCENE_MODE_PARTY_INDOOR``
3484
3485 - Party and indoor. Designed to capture indoor scenes that are lit
0579e6e3
MCC
3486 by indoor background lighting as well as the flash. The camera
3487 usually increases ISO sensitivity, and adjusts exposure for the
3488 low light conditions.
5377d91f
MH
3489
3490 - .. row 11
3491
3492 - ``V4L2_SCENE_MODE_PORTRAIT``
3493
3494 - Portrait. The camera adjusts the aperture so that the depth of
0579e6e3
MCC
3495 field is reduced, which helps to isolate the subject against a
3496 smooth background. Most cameras recognize the presence of faces in
3497 the scene and focus on them. The color hue is adjusted to enhance
3498 skin tones. The intensity of the flash is often reduced.
5377d91f
MH
3499
3500 - .. row 12
3501
3502 - ``V4L2_SCENE_MODE_SPORTS``
3503
3504 - Sports. Significantly increases ISO and uses a fast shutter speed
0579e6e3
MCC
3505 to freeze motion of rapidly-moving subjects. Increased image noise
3506 may be seen in this mode.
5377d91f
MH
3507
3508 - .. row 13
3509
3510 - ``V4L2_SCENE_MODE_SUNSET``
3511
3512 - Sunset. Preserves deep hues seen in sunsets and sunrises. It bumps
0579e6e3 3513 up the saturation.
5377d91f
MH
3514
3515 - .. row 14
3516
3517 - ``V4L2_SCENE_MODE_TEXT``
3518
3519 - Text. It applies extra contrast and sharpness, it is typically a
0579e6e3
MCC
3520 black-and-white mode optimized for readability. Automatic focus
3521 may be switched to close-up mode and this setting may also involve
3522 some lens-distortion correction.
5377d91f
MH
3523
3524
3525
3526``V4L2_CID_3A_LOCK (bitmask)``
3527 This control locks or unlocks the automatic focus, exposure and
3528 white balance. The automatic adjustments can be paused independently
3529 by setting the corresponding lock bit to 1. The camera then retains
3530 the settings until the lock bit is cleared. The following lock bits
3531 are defined:
3532
3533 When a given algorithm is not enabled, drivers should ignore
3534 requests to lock it and should return no error. An example might be
3535 an application setting bit ``V4L2_LOCK_WHITE_BALANCE`` when the
3536 ``V4L2_CID_AUTO_WHITE_BALANCE`` control is set to ``FALSE``. The
3537 value of this control may be changed by exposure, white balance or
3538 focus controls.
3539
3540
3541
3542.. flat-table::
3543 :header-rows: 0
3544 :stub-columns: 0
3545
3546
3547 - .. row 1
3548
3549 - ``V4L2_LOCK_EXPOSURE``
3550
3551 - Automatic exposure adjustments lock.
3552
3553 - .. row 2
3554
3555 - ``V4L2_LOCK_WHITE_BALANCE``
3556
3557 - Automatic white balance adjustments lock.
3558
3559 - .. row 3
3560
3561 - ``V4L2_LOCK_FOCUS``
3562
3563 - Automatic focus lock.
3564
3565
3566
3567``V4L2_CID_PAN_SPEED (integer)``
3568 This control turns the camera horizontally at the specific speed.
3569 The unit is undefined. A positive value moves the camera to the
3570 right (clockwise when viewed from above), a negative value to the
3571 left. A value of zero stops the motion if one is in progress and has
3572 no effect otherwise.
3573
3574``V4L2_CID_TILT_SPEED (integer)``
3575 This control turns the camera vertically at the specified speed. The
3576 unit is undefined. A positive value moves the camera up, a negative
3577 value down. A value of zero stops the motion if one is in progress
3578 and has no effect otherwise.
3579
3580
3581.. _fm-tx-controls:
3582
3583FM Transmitter Control Reference
3584================================
3585
3586The FM Transmitter (FM_TX) class includes controls for common features
3587of FM transmissions capable devices. Currently this class includes
3588parameters for audio compression, pilot tone generation, audio deviation
3589limiter, RDS transmission and tuning power features.
3590
3591
3592.. _fm-tx-control-id:
3593
3594FM_TX Control IDs
3595-----------------
3596
3597``V4L2_CID_FM_TX_CLASS (class)``
3598 The FM_TX class descriptor. Calling
7347081e 3599 :ref:`VIDIOC_QUERYCTRL` for this control will
5377d91f
MH
3600 return a description of this control class.
3601
3602``V4L2_CID_RDS_TX_DEVIATION (integer)``
3603 Configures RDS signal frequency deviation level in Hz. The range and
3604 step are driver-specific.
3605
3606``V4L2_CID_RDS_TX_PI (integer)``
3607 Sets the RDS Programme Identification field for transmission.
3608
3609``V4L2_CID_RDS_TX_PTY (integer)``
3610 Sets the RDS Programme Type field for transmission. This encodes up
3611 to 31 pre-defined programme types.
3612
3613``V4L2_CID_RDS_TX_PS_NAME (string)``
3614 Sets the Programme Service name (PS_NAME) for transmission. It is
3615 intended for static display on a receiver. It is the primary aid to
3616 listeners in programme service identification and selection. In
3617 Annex E of :ref:`iec62106`, the RDS specification, there is a full
3618 description of the correct character encoding for Programme Service
3619 name strings. Also from RDS specification, PS is usually a single
3620 eight character text. However, it is also possible to find receivers
3621 which can scroll strings sized as 8 x N characters. So, this control
3622 must be configured with steps of 8 characters. The result is it must
3623 always contain a string with size multiple of 8.
3624
3625``V4L2_CID_RDS_TX_RADIO_TEXT (string)``
3626 Sets the Radio Text info for transmission. It is a textual
3627 description of what is being broadcasted. RDS Radio Text can be
3628 applied when broadcaster wishes to transmit longer PS names,
3629 programme-related information or any other text. In these cases,
3630 RadioText should be used in addition to ``V4L2_CID_RDS_TX_PS_NAME``.
3631 The encoding for Radio Text strings is also fully described in Annex
3632 E of :ref:`iec62106`. The length of Radio Text strings depends on
3633 which RDS Block is being used to transmit it, either 32 (2A block)
3634 or 64 (2B block). However, it is also possible to find receivers
3635 which can scroll strings sized as 32 x N or 64 x N characters. So,
3636 this control must be configured with steps of 32 or 64 characters.
3637 The result is it must always contain a string with size multiple of
3638 32 or 64.
3639
3640``V4L2_CID_RDS_TX_MONO_STEREO (boolean)``
3641 Sets the Mono/Stereo bit of the Decoder Identification code. If set,
3642 then the audio was recorded as stereo.
3643
3644``V4L2_CID_RDS_TX_ARTIFICIAL_HEAD (boolean)``
3645 Sets the
3646 `Artificial Head <http://en.wikipedia.org/wiki/Artificial_head>`__
3647 bit of the Decoder Identification code. If set, then the audio was
3648 recorded using an artificial head.
3649
3650``V4L2_CID_RDS_TX_COMPRESSED (boolean)``
3651 Sets the Compressed bit of the Decoder Identification code. If set,
3652 then the audio is compressed.
3653
3654``V4L2_CID_RDS_TX_DYNAMIC_PTY (boolean)``
3655 Sets the Dynamic PTY bit of the Decoder Identification code. If set,
3656 then the PTY code is dynamically switched.
3657
3658``V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT (boolean)``
3659 If set, then a traffic announcement is in progress.
3660
3661``V4L2_CID_RDS_TX_TRAFFIC_PROGRAM (boolean)``
3662 If set, then the tuned programme carries traffic announcements.
3663
3664``V4L2_CID_RDS_TX_MUSIC_SPEECH (boolean)``
3665 If set, then this channel broadcasts music. If cleared, then it
3666 broadcasts speech. If the transmitter doesn't make this distinction,
3667 then it should be set.
3668
3669``V4L2_CID_RDS_TX_ALT_FREQS_ENABLE (boolean)``
3670 If set, then transmit alternate frequencies.
3671
3672``V4L2_CID_RDS_TX_ALT_FREQS (__u32 array)``
3673 The alternate frequencies in kHz units. The RDS standard allows for
3674 up to 25 frequencies to be defined. Drivers may support fewer
3675 frequencies so check the array size.
3676
3677``V4L2_CID_AUDIO_LIMITER_ENABLED (boolean)``
3678 Enables or disables the audio deviation limiter feature. The limiter
3679 is useful when trying to maximize the audio volume, minimize
3680 receiver-generated distortion and prevent overmodulation.
3681
3682``V4L2_CID_AUDIO_LIMITER_RELEASE_TIME (integer)``
3683 Sets the audio deviation limiter feature release time. Unit is in
3684 useconds. Step and range are driver-specific.
3685
3686``V4L2_CID_AUDIO_LIMITER_DEVIATION (integer)``
3687 Configures audio frequency deviation level in Hz. The range and step
3688 are driver-specific.
3689
3690``V4L2_CID_AUDIO_COMPRESSION_ENABLED (boolean)``
3691 Enables or disables the audio compression feature. This feature
3692 amplifies signals below the threshold by a fixed gain and compresses
3693 audio signals above the threshold by the ratio of Threshold/(Gain +
3694 Threshold).
3695
3696``V4L2_CID_AUDIO_COMPRESSION_GAIN (integer)``
3697 Sets the gain for audio compression feature. It is a dB value. The
3698 range and step are driver-specific.
3699
3700``V4L2_CID_AUDIO_COMPRESSION_THRESHOLD (integer)``
3701 Sets the threshold level for audio compression freature. It is a dB
3702 value. The range and step are driver-specific.
3703
3704``V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME (integer)``
3705 Sets the attack time for audio compression feature. It is a useconds
3706 value. The range and step are driver-specific.
3707
3708``V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME (integer)``
3709 Sets the release time for audio compression feature. It is a
3710 useconds value. The range and step are driver-specific.
3711
3712``V4L2_CID_PILOT_TONE_ENABLED (boolean)``
3713 Enables or disables the pilot tone generation feature.
3714
3715``V4L2_CID_PILOT_TONE_DEVIATION (integer)``
3716 Configures pilot tone frequency deviation level. Unit is in Hz. The
3717 range and step are driver-specific.
3718
3719``V4L2_CID_PILOT_TONE_FREQUENCY (integer)``
3720 Configures pilot tone frequency value. Unit is in Hz. The range and
3721 step are driver-specific.
3722
0c046221
MCC
3723``V4L2_CID_TUNE_PREEMPHASIS``
3724 (enum)
3725
3726enum v4l2_preemphasis -
5377d91f
MH
3727 Configures the pre-emphasis value for broadcasting. A pre-emphasis
3728 filter is applied to the broadcast to accentuate the high audio
3729 frequencies. Depending on the region, a time constant of either 50
3730 or 75 useconds is used. The enum v4l2_preemphasis defines possible
3731 values for pre-emphasis. Here they are:
3732
3733
3734
3735.. flat-table::
3736 :header-rows: 0
3737 :stub-columns: 0
3738
3739
3740 - .. row 1
3741
3742 - ``V4L2_PREEMPHASIS_DISABLED``
3743
3744 - No pre-emphasis is applied.
3745
3746 - .. row 2
3747
3748 - ``V4L2_PREEMPHASIS_50_uS``
3749
3750 - A pre-emphasis of 50 uS is used.
3751
3752 - .. row 3
3753
3754 - ``V4L2_PREEMPHASIS_75_uS``
3755
3756 - A pre-emphasis of 75 uS is used.
3757
3758
3759
3760``V4L2_CID_TUNE_POWER_LEVEL (integer)``
3761 Sets the output power level for signal transmission. Unit is in
3762 dBuV. Range and step are driver-specific.
3763
3764``V4L2_CID_TUNE_ANTENNA_CAPACITOR (integer)``
3765 This selects the value of antenna tuning capacitor manually or
3766 automatically if set to zero. Unit, range and step are
3767 driver-specific.
3768
3769For more details about RDS specification, refer to :ref:`iec62106`
3770document, from CENELEC.
3771
3772
3773.. _flash-controls:
3774
3775Flash Control Reference
3776=======================
3777
3778The V4L2 flash controls are intended to provide generic access to flash
3779controller devices. Flash controller devices are typically used in
3780digital cameras.
3781
3782The interface can support both LED and xenon flash devices. As of
3783writing this, there is no xenon flash driver using this interface.
3784
3785
3786.. _flash-controls-use-cases:
3787
3788Supported use cases
3789-------------------
3790
3791
3792Unsynchronised LED flash (software strobe)
3793^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3794
3795Unsynchronised LED flash is controlled directly by the host as the
3796sensor. The flash must be enabled by the host before the exposure of the
3797image starts and disabled once it ends. The host is fully responsible
3798for the timing of the flash.
3799
3800Example of such device: Nokia N900.
3801
3802
3803Synchronised LED flash (hardware strobe)
3804^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3805
3806The synchronised LED flash is pre-programmed by the host (power and
3807timeout) but controlled by the sensor through a strobe signal from the
3808sensor to the flash.
3809
3810The sensor controls the flash duration and timing. This information
3811typically must be made available to the sensor.
3812
3813
3814LED flash as torch
3815^^^^^^^^^^^^^^^^^^
3816
3817LED flash may be used as torch in conjunction with another use case
3818involving camera or individually.
3819
3820
3821.. _flash-control-id:
3822
3823Flash Control IDs
3824"""""""""""""""""
3825
3826``V4L2_CID_FLASH_CLASS (class)``
3827 The FLASH class descriptor.
3828
3829``V4L2_CID_FLASH_LED_MODE (menu)``
3830 Defines the mode of the flash LED, the high-power white LED attached
3831 to the flash controller. Setting this control may not be possible in
3832 presence of some faults. See V4L2_CID_FLASH_FAULT.
3833
3834
3835
3836.. flat-table::
3837 :header-rows: 0
3838 :stub-columns: 0
3839
3840
3841 - .. row 1
3842
3843 - ``V4L2_FLASH_LED_MODE_NONE``
3844
3845 - Off.
3846
3847 - .. row 2
3848
3849 - ``V4L2_FLASH_LED_MODE_FLASH``
3850
3851 - Flash mode.
3852
3853 - .. row 3
3854
3855 - ``V4L2_FLASH_LED_MODE_TORCH``
3856
3857 - Torch mode. See V4L2_CID_FLASH_TORCH_INTENSITY.
3858
3859
3860
3861``V4L2_CID_FLASH_STROBE_SOURCE (menu)``
3862 Defines the source of the flash LED strobe.
3863
1300c930 3864.. tabularcolumns:: |p{7.0cm}|p{10.5cm}|
5377d91f
MH
3865
3866.. flat-table::
3867 :header-rows: 0
3868 :stub-columns: 0
3869
5377d91f
MH
3870 - .. row 1
3871
3872 - ``V4L2_FLASH_STROBE_SOURCE_SOFTWARE``
3873
3874 - The flash strobe is triggered by using the
0579e6e3 3875 V4L2_CID_FLASH_STROBE control.
5377d91f
MH
3876
3877 - .. row 2
3878
3879 - ``V4L2_FLASH_STROBE_SOURCE_EXTERNAL``
3880
3881 - The flash strobe is triggered by an external source. Typically
0579e6e3
MCC
3882 this is a sensor, which makes it possible to synchronises the
3883 flash strobe start to exposure start.
5377d91f
MH
3884
3885
3886
3887``V4L2_CID_FLASH_STROBE (button)``
3888 Strobe flash. Valid when V4L2_CID_FLASH_LED_MODE is set to
3889 V4L2_FLASH_LED_MODE_FLASH and V4L2_CID_FLASH_STROBE_SOURCE
3890 is set to V4L2_FLASH_STROBE_SOURCE_SOFTWARE. Setting this
3891 control may not be possible in presence of some faults. See
3892 V4L2_CID_FLASH_FAULT.
3893
3894``V4L2_CID_FLASH_STROBE_STOP (button)``
3895 Stop flash strobe immediately.
3896
3897``V4L2_CID_FLASH_STROBE_STATUS (boolean)``
3898 Strobe status: whether the flash is strobing at the moment or not.
3899 This is a read-only control.
3900
3901``V4L2_CID_FLASH_TIMEOUT (integer)``
3902 Hardware timeout for flash. The flash strobe is stopped after this
3903 period of time has passed from the start of the strobe.
3904
3905``V4L2_CID_FLASH_INTENSITY (integer)``
3906 Intensity of the flash strobe when the flash LED is in flash mode
3907 (V4L2_FLASH_LED_MODE_FLASH). The unit should be milliamps (mA)
3908 if possible.
3909
3910``V4L2_CID_FLASH_TORCH_INTENSITY (integer)``
3911 Intensity of the flash LED in torch mode
3912 (V4L2_FLASH_LED_MODE_TORCH). The unit should be milliamps (mA)
3913 if possible. Setting this control may not be possible in presence of
3914 some faults. See V4L2_CID_FLASH_FAULT.
3915
3916``V4L2_CID_FLASH_INDICATOR_INTENSITY (integer)``
3917 Intensity of the indicator LED. The indicator LED may be fully
3918 independent of the flash LED. The unit should be microamps (uA) if
3919 possible.
3920
3921``V4L2_CID_FLASH_FAULT (bitmask)``
3922 Faults related to the flash. The faults tell about specific problems
3923 in the flash chip itself or the LEDs attached to it. Faults may
3924 prevent further use of some of the flash controls. In particular,
3925 V4L2_CID_FLASH_LED_MODE is set to V4L2_FLASH_LED_MODE_NONE
3926 if the fault affects the flash LED. Exactly which faults have such
3927 an effect is chip dependent. Reading the faults resets the control
3928 and returns the chip to a usable state if possible.
3929
1300c930 3930.. tabularcolumns:: |p{8.0cm}|p{9.5cm}|
5377d91f
MH
3931
3932.. flat-table::
3933 :header-rows: 0
3934 :stub-columns: 0
3935
3936
3937 - .. row 1
3938
3939 - ``V4L2_FLASH_FAULT_OVER_VOLTAGE``
3940
3941 - Flash controller voltage to the flash LED has exceeded the limit
0579e6e3 3942 specific to the flash controller.
5377d91f
MH
3943
3944 - .. row 2
3945
3946 - ``V4L2_FLASH_FAULT_TIMEOUT``
3947
3948 - The flash strobe was still on when the timeout set by the user ---
0579e6e3
MCC
3949 V4L2_CID_FLASH_TIMEOUT control --- has expired. Not all flash
3950 controllers may set this in all such conditions.
5377d91f
MH
3951
3952 - .. row 3
3953
3954 - ``V4L2_FLASH_FAULT_OVER_TEMPERATURE``
3955
3956 - The flash controller has overheated.
3957
3958 - .. row 4
3959
3960 - ``V4L2_FLASH_FAULT_SHORT_CIRCUIT``
3961
3962 - The short circuit protection of the flash controller has been
0579e6e3 3963 triggered.
5377d91f
MH
3964
3965 - .. row 5
3966
3967 - ``V4L2_FLASH_FAULT_OVER_CURRENT``
3968
3969 - Current in the LED power supply has exceeded the limit specific to
0579e6e3 3970 the flash controller.
5377d91f
MH
3971
3972 - .. row 6
3973
3974 - ``V4L2_FLASH_FAULT_INDICATOR``
3975
3976 - The flash controller has detected a short or open circuit
0579e6e3 3977 condition on the indicator LED.
5377d91f
MH
3978
3979 - .. row 7
3980
3981 - ``V4L2_FLASH_FAULT_UNDER_VOLTAGE``
3982
3983 - Flash controller voltage to the flash LED has been below the
0579e6e3 3984 minimum limit specific to the flash controller.
5377d91f
MH
3985
3986 - .. row 8
3987
3988 - ``V4L2_FLASH_FAULT_INPUT_VOLTAGE``
3989
3990 - The input voltage of the flash controller is below the limit under
0579e6e3
MCC
3991 which strobing the flash at full current will not be possible.The
3992 condition persists until this flag is no longer set.
5377d91f
MH
3993
3994 - .. row 9
3995
3996 - ``V4L2_FLASH_FAULT_LED_OVER_TEMPERATURE``
3997
3998 - The temperature of the LED has exceeded its allowed upper limit.
3999
4000
4001
4002``V4L2_CID_FLASH_CHARGE (boolean)``
4003 Enable or disable charging of the xenon flash capacitor.
4004
4005``V4L2_CID_FLASH_READY (boolean)``
4006 Is the flash ready to strobe? Xenon flashes require their capacitors
4007 charged before strobing. LED flashes often require a cooldown period
4008 after strobe during which another strobe will not be possible. This
4009 is a read-only control.
4010
4011
4012.. _jpeg-controls:
4013
4014JPEG Control Reference
4015======================
4016
4017The JPEG class includes controls for common features of JPEG encoders
4018and decoders. Currently it includes features for codecs implementing
4019progressive baseline DCT compression process with Huffman entrophy
4020coding.
4021
4022
4023.. _jpeg-control-id:
4024
4025JPEG Control IDs
4026----------------
4027
4028``V4L2_CID_JPEG_CLASS (class)``
4029 The JPEG class descriptor. Calling
7347081e 4030 :ref:`VIDIOC_QUERYCTRL` for this control will
5377d91f
MH
4031 return a description of this control class.
4032
4033``V4L2_CID_JPEG_CHROMA_SUBSAMPLING (menu)``
4034 The chroma subsampling factors describe how each component of an
4035 input image is sampled, in respect to maximum sample rate in each
4036 spatial dimension. See :ref:`itu-t81`, clause A.1.1. for more
4037 details. The ``V4L2_CID_JPEG_CHROMA_SUBSAMPLING`` control determines
4038 how Cb and Cr components are downsampled after coverting an input
4039 image from RGB to Y'CbCr color space.
4040
1300c930 4041.. tabularcolumns:: |p{7.0cm}|p{10.5cm}|
5377d91f
MH
4042
4043.. flat-table::
4044 :header-rows: 0
4045 :stub-columns: 0
4046
4047
4048 - .. row 1
4049
4050 - ``V4L2_JPEG_CHROMA_SUBSAMPLING_444``
4051
4052 - No chroma subsampling, each pixel has Y, Cr and Cb values.
4053
4054 - .. row 2
4055
4056 - ``V4L2_JPEG_CHROMA_SUBSAMPLING_422``
4057
4058 - Horizontally subsample Cr, Cb components by a factor of 2.
4059
4060 - .. row 3
4061
4062 - ``V4L2_JPEG_CHROMA_SUBSAMPLING_420``
4063
4064 - Subsample Cr, Cb components horizontally and vertically by 2.
4065
4066 - .. row 4
4067
4068 - ``V4L2_JPEG_CHROMA_SUBSAMPLING_411``
4069
4070 - Horizontally subsample Cr, Cb components by a factor of 4.
4071
4072 - .. row 5
4073
4074 - ``V4L2_JPEG_CHROMA_SUBSAMPLING_410``
4075
4076 - Subsample Cr, Cb components horizontally by 4 and vertically by 2.
4077
4078 - .. row 6
4079
4080 - ``V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY``
4081
4082 - Use only luminance component.
4083
4084
4085
4086``V4L2_CID_JPEG_RESTART_INTERVAL (integer)``
4087 The restart interval determines an interval of inserting RSTm
4088 markers (m = 0..7). The purpose of these markers is to additionally
4089 reinitialize the encoder process, in order to process blocks of an
4090 image independently. For the lossy compression processes the restart
4091 interval unit is MCU (Minimum Coded Unit) and its value is contained
4092 in DRI (Define Restart Interval) marker. If
4093 ``V4L2_CID_JPEG_RESTART_INTERVAL`` control is set to 0, DRI and RSTm
4094 markers will not be inserted.
4095
6aeb3f67 4096.. _jpeg-quality-control:
5377d91f
MH
4097
4098``V4L2_CID_JPEG_COMPRESSION_QUALITY (integer)``
4099 ``V4L2_CID_JPEG_COMPRESSION_QUALITY`` control determines trade-off
4100 between image quality and size. It provides simpler method for
4101 applications to control image quality, without a need for direct
4102 reconfiguration of luminance and chrominance quantization tables. In
4103 cases where a driver uses quantization tables configured directly by
4104 an application, using interfaces defined elsewhere,
4105 ``V4L2_CID_JPEG_COMPRESSION_QUALITY`` control should be set by
4106 driver to 0.
4107
4108 The value range of this control is driver-specific. Only positive,
4109 non-zero values are meaningful. The recommended range is 1 - 100,
4110 where larger values correspond to better image quality.
4111
6aeb3f67 4112.. _jpeg-active-marker-control:
5377d91f
MH
4113
4114``V4L2_CID_JPEG_ACTIVE_MARKER (bitmask)``
4115 Specify which JPEG markers are included in compressed stream. This
4116 control is valid only for encoders.
4117
4118
4119
4120.. flat-table::
4121 :header-rows: 0
4122 :stub-columns: 0
4123
4124
4125 - .. row 1
4126
4127 - ``V4L2_JPEG_ACTIVE_MARKER_APP0``
4128
4129 - Application data segment APP\ :sub:`0`.
4130
4131 - .. row 2
4132
4133 - ``V4L2_JPEG_ACTIVE_MARKER_APP1``
4134
4135 - Application data segment APP\ :sub:`1`.
4136
4137 - .. row 3
4138
4139 - ``V4L2_JPEG_ACTIVE_MARKER_COM``
4140
4141 - Comment segment.
4142
4143 - .. row 4
4144
4145 - ``V4L2_JPEG_ACTIVE_MARKER_DQT``
4146
4147 - Quantization tables segment.
4148
4149 - .. row 5
4150
4151 - ``V4L2_JPEG_ACTIVE_MARKER_DHT``
4152
4153 - Huffman tables segment.
4154
4155
4156
4157For more details about JPEG specification, refer to :ref:`itu-t81`,
4158:ref:`jfif`, :ref:`w3c-jpeg-jfif`.
4159
4160
4161.. _image-source-controls:
4162
4163Image Source Control Reference
4164==============================
4165
4166The Image Source control class is intended for low-level control of
4167image source devices such as image sensors. The devices feature an
4168analogue to digital converter and a bus transmitter to transmit the
4169image data out of the device.
4170
4171
4172.. _image-source-control-id:
4173
4174Image Source Control IDs
4175------------------------
4176
4177``V4L2_CID_IMAGE_SOURCE_CLASS (class)``
4178 The IMAGE_SOURCE class descriptor.
4179
4180``V4L2_CID_VBLANK (integer)``
4181 Vertical blanking. The idle period after every frame during which no
4182 image data is produced. The unit of vertical blanking is a line.
4183 Every line has length of the image width plus horizontal blanking at
4184 the pixel rate defined by ``V4L2_CID_PIXEL_RATE`` control in the
4185 same sub-device.
4186
4187``V4L2_CID_HBLANK (integer)``
4188 Horizontal blanking. The idle period after every line of image data
4189 during which no image data is produced. The unit of horizontal
4190 blanking is pixels.
4191
4192``V4L2_CID_ANALOGUE_GAIN (integer)``
4193 Analogue gain is gain affecting all colour components in the pixel
4194 matrix. The gain operation is performed in the analogue domain
4195 before A/D conversion.
4196
4197``V4L2_CID_TEST_PATTERN_RED (integer)``
4198 Test pattern red colour component.
4199
4200``V4L2_CID_TEST_PATTERN_GREENR (integer)``
4201 Test pattern green (next to red) colour component.
4202
4203``V4L2_CID_TEST_PATTERN_BLUE (integer)``
4204 Test pattern blue colour component.
4205
4206``V4L2_CID_TEST_PATTERN_GREENB (integer)``
4207 Test pattern green (next to blue) colour component.
4208
4209
4210.. _image-process-controls:
4211
4212Image Process Control Reference
4213===============================
4214
4215The Image Process control class is intended for low-level control of
4216image processing functions. Unlike ``V4L2_CID_IMAGE_SOURCE_CLASS``, the
4217controls in this class affect processing the image, and do not control
4218capturing of it.
4219
4220
4221.. _image-process-control-id:
4222
4223Image Process Control IDs
4224-------------------------
4225
4226``V4L2_CID_IMAGE_PROC_CLASS (class)``
4227 The IMAGE_PROC class descriptor.
4228
4229``V4L2_CID_LINK_FREQ (integer menu)``
4230 Data bus frequency. Together with the media bus pixel code, bus type
4231 (clock cycles per sample), the data bus frequency defines the pixel
4232 rate (``V4L2_CID_PIXEL_RATE``) in the pixel array (or possibly
4233 elsewhere, if the device is not an image sensor). The frame rate can
4234 be calculated from the pixel clock, image width and height and
4235 horizontal and vertical blanking. While the pixel rate control may
4236 be defined elsewhere than in the subdev containing the pixel array,
4237 the frame rate cannot be obtained from that information. This is
4238 because only on the pixel array it can be assumed that the vertical
4239 and horizontal blanking information is exact: no other blanking is
4240 allowed in the pixel array. The selection of frame rate is performed
4241 by selecting the desired horizontal and vertical blanking. The unit
4242 of this control is Hz.
4243
4244``V4L2_CID_PIXEL_RATE (64-bit integer)``
4245 Pixel rate in the source pads of the subdev. This control is
4246 read-only and its unit is pixels / second.
4247
4248``V4L2_CID_TEST_PATTERN (menu)``
4249 Some capture/display/sensor devices have the capability to generate
4250 test pattern images. These hardware specific test patterns can be
4251 used to test if a device is working properly.
4252
4253
4254.. _dv-controls:
4255
4256Digital Video Control Reference
4257===============================
4258
4259The Digital Video control class is intended to control receivers and
4260transmitters for `VGA <http://en.wikipedia.org/wiki/Vga>`__,
4261`DVI <http://en.wikipedia.org/wiki/Digital_Visual_Interface>`__
4262(Digital Visual Interface), HDMI (:ref:`hdmi`) and DisplayPort
4263(:ref:`dp`). These controls are generally expected to be private to
4264the receiver or transmitter subdevice that implements them, so they are
4265only exposed on the ``/dev/v4l-subdev*`` device node.
4266
706f8a99
MCC
4267.. note::
4268
4269 Note that these devices can have multiple input or output pads which are
4270 hooked up to e.g. HDMI connectors. Even though the subdevice will
4271 receive or transmit video from/to only one of those pads, the other pads
4272 can still be active when it comes to EDID (Extended Display
4273 Identification Data, :ref:`vesaedid`) and HDCP (High-bandwidth Digital
4274 Content Protection System, :ref:`hdcp`) processing, allowing the
4275 device to do the fairly slow EDID/HDCP handling in advance. This allows
4276 for quick switching between connectors.
5377d91f
MH
4277
4278These pads appear in several of the controls in this section as
4279bitmasks, one bit for each pad. Bit 0 corresponds to pad 0, bit 1 to pad
42801, etc. The maximum value of the control is the set of valid pads.
4281
4282
4283.. _dv-control-id:
4284
4285Digital Video Control IDs
4286-------------------------
4287
4288``V4L2_CID_DV_CLASS (class)``
4289 The Digital Video class descriptor.
4290
4291``V4L2_CID_DV_TX_HOTPLUG (bitmask)``
4292 Many connectors have a hotplug pin which is high if EDID information
4293 is available from the source. This control shows the state of the
4294 hotplug pin as seen by the transmitter. Each bit corresponds to an
4295 output pad on the transmitter. If an output pad does not have an
4296 associated hotplug pin, then the bit for that pad will be 0. This
4297 read-only control is applicable to DVI-D, HDMI and DisplayPort
4298 connectors.
4299
4300``V4L2_CID_DV_TX_RXSENSE (bitmask)``
4301 Rx Sense is the detection of pull-ups on the TMDS clock lines. This
4302 normally means that the sink has left/entered standby (i.e. the
4303 transmitter can sense that the receiver is ready to receive video).
4304 Each bit corresponds to an output pad on the transmitter. If an
4305 output pad does not have an associated Rx Sense, then the bit for
4306 that pad will be 0. This read-only control is applicable to DVI-D
4307 and HDMI devices.
4308
4309``V4L2_CID_DV_TX_EDID_PRESENT (bitmask)``
4310 When the transmitter sees the hotplug signal from the receiver it
4311 will attempt to read the EDID. If set, then the transmitter has read
4312 at least the first block (= 128 bytes). Each bit corresponds to an
4313 output pad on the transmitter. If an output pad does not support
4314 EDIDs, then the bit for that pad will be 0. This read-only control
4315 is applicable to VGA, DVI-A/D, HDMI and DisplayPort connectors.
4316
0c046221
MCC
4317``V4L2_CID_DV_TX_MODE``
4318 (enum)
4319
4320enum v4l2_dv_tx_mode -
5377d91f
MH
4321 HDMI transmitters can transmit in DVI-D mode (just video) or in HDMI
4322 mode (video + audio + auxiliary data). This control selects which
4323 mode to use: V4L2_DV_TX_MODE_DVI_D or V4L2_DV_TX_MODE_HDMI.
4324 This control is applicable to HDMI connectors.
4325
0c046221
MCC
4326``V4L2_CID_DV_TX_RGB_RANGE``
4327 (enum)
4328
4329enum v4l2_dv_rgb_range -
5377d91f
MH
4330 Select the quantization range for RGB output. V4L2_DV_RANGE_AUTO
4331 follows the RGB quantization range specified in the standard for the
4332 video interface (ie. :ref:`cea861` for HDMI).
4333 V4L2_DV_RANGE_LIMITED and V4L2_DV_RANGE_FULL override the
4334 standard to be compatible with sinks that have not implemented the
4335 standard correctly (unfortunately quite common for HDMI and DVI-D).
4336 Full range allows all possible values to be used whereas limited
4337 range sets the range to (16 << (N-8)) - (235 << (N-8)) where N is
4338 the number of bits per component. This control is applicable to VGA,
4339 DVI-A/D, HDMI and DisplayPort connectors.
4340
0c046221
MCC
4341``V4L2_CID_DV_TX_IT_CONTENT_TYPE``
4342 (enum)
4343
4344enum v4l2_dv_it_content_type -
5377d91f
MH
4345 Configures the IT Content Type of the transmitted video. This
4346 information is sent over HDMI and DisplayPort connectors as part of
4347 the AVI InfoFrame. The term 'IT Content' is used for content that
4348 originates from a computer as opposed to content from a TV broadcast
4349 or an analog source. The enum v4l2_dv_it_content_type defines
4350 the possible content types:
4351
1300c930 4352.. tabularcolumns:: |p{7.0cm}|p{10.5cm}|
5377d91f
MH
4353
4354.. flat-table::
4355 :header-rows: 0
4356 :stub-columns: 0
4357
4358
4359 - .. row 1
4360
4361 - ``V4L2_DV_IT_CONTENT_TYPE_GRAPHICS``
4362
4363 - Graphics content. Pixel data should be passed unfiltered and
0579e6e3 4364 without analog reconstruction.
5377d91f
MH
4365
4366 - .. row 2
4367
4368 - ``V4L2_DV_IT_CONTENT_TYPE_PHOTO``
4369
4370 - Photo content. The content is derived from digital still pictures.
0579e6e3
MCC
4371 The content should be passed through with minimal scaling and
4372 picture enhancements.
5377d91f
MH
4373
4374 - .. row 3
4375
4376 - ``V4L2_DV_IT_CONTENT_TYPE_CINEMA``
4377
4378 - Cinema content.
4379
4380 - .. row 4
4381
4382 - ``V4L2_DV_IT_CONTENT_TYPE_GAME``
4383
4384 - Game content. Audio and video latency should be minimized.
4385
4386 - .. row 5
4387
4388 - ``V4L2_DV_IT_CONTENT_TYPE_NO_ITC``
4389
4390 - No IT Content information is available and the ITC bit in the AVI
0579e6e3 4391 InfoFrame is set to 0.
5377d91f
MH
4392
4393
4394
4395``V4L2_CID_DV_RX_POWER_PRESENT (bitmask)``
4396 Detects whether the receiver receives power from the source (e.g.
4397 HDMI carries 5V on one of the pins). This is often used to power an
4398 eeprom which contains EDID information, such that the source can
4399 read the EDID even if the sink is in standby/power off. Each bit
4400 corresponds to an input pad on the transmitter. If an input pad
4401 cannot detect whether power is present, then the bit for that pad
4402 will be 0. This read-only control is applicable to DVI-D, HDMI and
4403 DisplayPort connectors.
4404
0c046221
MCC
4405``V4L2_CID_DV_RX_RGB_RANGE``
4406 (enum)
4407
4408enum v4l2_dv_rgb_range -
5377d91f
MH
4409 Select the quantization range for RGB input. V4L2_DV_RANGE_AUTO
4410 follows the RGB quantization range specified in the standard for the
4411 video interface (ie. :ref:`cea861` for HDMI).
4412 V4L2_DV_RANGE_LIMITED and V4L2_DV_RANGE_FULL override the
4413 standard to be compatible with sources that have not implemented the
4414 standard correctly (unfortunately quite common for HDMI and DVI-D).
4415 Full range allows all possible values to be used whereas limited
4416 range sets the range to (16 << (N-8)) - (235 << (N-8)) where N is
4417 the number of bits per component. This control is applicable to VGA,
4418 DVI-A/D, HDMI and DisplayPort connectors.
4419
0c046221
MCC
4420``V4L2_CID_DV_RX_IT_CONTENT_TYPE``
4421 (enum)
4422
4423enum v4l2_dv_it_content_type -
5377d91f
MH
4424 Reads the IT Content Type of the received video. This information is
4425 sent over HDMI and DisplayPort connectors as part of the AVI
4426 InfoFrame. The term 'IT Content' is used for content that originates
4427 from a computer as opposed to content from a TV broadcast or an
4428 analog source. See ``V4L2_CID_DV_TX_IT_CONTENT_TYPE`` for the
4429 available content types.
4430
4431
4432.. _fm-rx-controls:
4433
4434FM Receiver Control Reference
4435=============================
4436
4437The FM Receiver (FM_RX) class includes controls for common features of
4438FM Reception capable devices.
4439
4440
4441.. _fm-rx-control-id:
4442
4443FM_RX Control IDs
4444-----------------
4445
4446``V4L2_CID_FM_RX_CLASS (class)``
4447 The FM_RX class descriptor. Calling
7347081e 4448 :ref:`VIDIOC_QUERYCTRL` for this control will
5377d91f
MH
4449 return a description of this control class.
4450
4451``V4L2_CID_RDS_RECEPTION (boolean)``
4452 Enables/disables RDS reception by the radio tuner
4453
4454``V4L2_CID_RDS_RX_PTY (integer)``
4455 Gets RDS Programme Type field. This encodes up to 31 pre-defined
4456 programme types.
4457
4458``V4L2_CID_RDS_RX_PS_NAME (string)``
4459 Gets the Programme Service name (PS_NAME). It is intended for
4460 static display on a receiver. It is the primary aid to listeners in
4461 programme service identification and selection. In Annex E of
4462 :ref:`iec62106`, the RDS specification, there is a full
4463 description of the correct character encoding for Programme Service
4464 name strings. Also from RDS specification, PS is usually a single
4465 eight character text. However, it is also possible to find receivers
4466 which can scroll strings sized as 8 x N characters. So, this control
4467 must be configured with steps of 8 characters. The result is it must
4468 always contain a string with size multiple of 8.
4469
4470``V4L2_CID_RDS_RX_RADIO_TEXT (string)``
4471 Gets the Radio Text info. It is a textual description of what is
4472 being broadcasted. RDS Radio Text can be applied when broadcaster
4473 wishes to transmit longer PS names, programme-related information or
4474 any other text. In these cases, RadioText can be used in addition to
4475 ``V4L2_CID_RDS_RX_PS_NAME``. The encoding for Radio Text strings is
4476 also fully described in Annex E of :ref:`iec62106`. The length of
4477 Radio Text strings depends on which RDS Block is being used to
4478 transmit it, either 32 (2A block) or 64 (2B block). However, it is
4479 also possible to find receivers which can scroll strings sized as 32
4480 x N or 64 x N characters. So, this control must be configured with
4481 steps of 32 or 64 characters. The result is it must always contain a
4482 string with size multiple of 32 or 64.
4483
4484``V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT (boolean)``
4485 If set, then a traffic announcement is in progress.
4486
4487``V4L2_CID_RDS_RX_TRAFFIC_PROGRAM (boolean)``
4488 If set, then the tuned programme carries traffic announcements.
4489
4490``V4L2_CID_RDS_RX_MUSIC_SPEECH (boolean)``
4491 If set, then this channel broadcasts music. If cleared, then it
4492 broadcasts speech. If the transmitter doesn't make this distinction,
4493 then it will be set.
4494
0c046221
MCC
4495``V4L2_CID_TUNE_DEEMPHASIS``
4496 (enum)
4497
4498enum v4l2_deemphasis -
5377d91f
MH
4499 Configures the de-emphasis value for reception. A de-emphasis filter
4500 is applied to the broadcast to accentuate the high audio
4501 frequencies. Depending on the region, a time constant of either 50
4502 or 75 useconds is used. The enum v4l2_deemphasis defines possible
4503 values for de-emphasis. Here they are:
4504
4505
4506
4507.. flat-table::
4508 :header-rows: 0
4509 :stub-columns: 0
4510
4511
4512 - .. row 1
4513
4514 - ``V4L2_DEEMPHASIS_DISABLED``
4515
4516 - No de-emphasis is applied.
4517
4518 - .. row 2
4519
4520 - ``V4L2_DEEMPHASIS_50_uS``
4521
4522 - A de-emphasis of 50 uS is used.
4523
4524 - .. row 3
4525
4526 - ``V4L2_DEEMPHASIS_75_uS``
4527
4528 - A de-emphasis of 75 uS is used.
4529
4530
4531
4532
4533.. _detect-controls:
4534
4535Detect Control Reference
4536========================
4537
4538The Detect class includes controls for common features of various motion
4539or object detection capable devices.
4540
4541
4542.. _detect-control-id:
4543
4544Detect Control IDs
4545------------------
4546
4547``V4L2_CID_DETECT_CLASS (class)``
4548 The Detect class descriptor. Calling
7347081e 4549 :ref:`VIDIOC_QUERYCTRL` for this control will
5377d91f
MH
4550 return a description of this control class.
4551
4552``V4L2_CID_DETECT_MD_MODE (menu)``
4553 Sets the motion detection mode.
4554
1300c930 4555.. tabularcolumns:: |p{7.5cm}|p{10.0cm}|
5377d91f
MH
4556
4557.. flat-table::
4558 :header-rows: 0
4559 :stub-columns: 0
4560
4561
4562 - .. row 1
4563
4564 - ``V4L2_DETECT_MD_MODE_DISABLED``
4565
4566 - Disable motion detection.
4567
4568 - .. row 2
4569
4570 - ``V4L2_DETECT_MD_MODE_GLOBAL``
4571
4572 - Use a single motion detection threshold.
4573
4574 - .. row 3
4575
4576 - ``V4L2_DETECT_MD_MODE_THRESHOLD_GRID``
4577
4578 - The image is divided into a grid, each cell with its own motion
0579e6e3
MCC
4579 detection threshold. These thresholds are set through the
4580 ``V4L2_CID_DETECT_MD_THRESHOLD_GRID`` matrix control.
5377d91f
MH
4581
4582 - .. row 4
4583
4584 - ``V4L2_DETECT_MD_MODE_REGION_GRID``
4585
4586 - The image is divided into a grid, each cell with its own region
0579e6e3
MCC
4587 value that specifies which per-region motion detection thresholds
4588 should be used. Each region has its own thresholds. How these
4589 per-region thresholds are set up is driver-specific. The region
4590 values for the grid are set through the
4591 ``V4L2_CID_DETECT_MD_REGION_GRID`` matrix control.
5377d91f
MH
4592
4593
4594
4595``V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD (integer)``
4596 Sets the global motion detection threshold to be used with the
4597 ``V4L2_DETECT_MD_MODE_GLOBAL`` motion detection mode.
4598
4599``V4L2_CID_DETECT_MD_THRESHOLD_GRID (__u16 matrix)``
4600 Sets the motion detection thresholds for each cell in the grid. To
4601 be used with the ``V4L2_DETECT_MD_MODE_THRESHOLD_GRID`` motion
4602 detection mode. Matrix element (0, 0) represents the cell at the
4603 top-left of the grid.
4604
4605``V4L2_CID_DETECT_MD_REGION_GRID (__u8 matrix)``
4606 Sets the motion detection region value for each cell in the grid. To
4607 be used with the ``V4L2_DETECT_MD_MODE_REGION_GRID`` motion
4608 detection mode. Matrix element (0, 0) represents the cell at the
4609 top-left of the grid.
4610
4611
4612.. _rf-tuner-controls:
4613
4614RF Tuner Control Reference
4615==========================
4616
4617The RF Tuner (RF_TUNER) class includes controls for common features of
4618devices having RF tuner.
4619
4620In this context, RF tuner is radio receiver circuit between antenna and
4621demodulator. It receives radio frequency (RF) from the antenna and
4622converts that received signal to lower intermediate frequency (IF) or
4623baseband frequency (BB). Tuners that could do baseband output are often
4624called Zero-IF tuners. Older tuners were typically simple PLL tuners
4625inside a metal box, whilst newer ones are highly integrated chips
4626without a metal box "silicon tuners". These controls are mostly
4627applicable for new feature rich silicon tuners, just because older
4628tuners does not have much adjustable features.
4629
4630For more information about RF tuners see
4631`Tuner (radio) <http://en.wikipedia.org/wiki/Tuner_%28radio%29>`__
4632and `RF front end <http://en.wikipedia.org/wiki/RF_front_end>`__
4633from Wikipedia.
4634
4635
4636.. _rf-tuner-control-id:
4637
4638RF_TUNER Control IDs
4639--------------------
4640
4641``V4L2_CID_RF_TUNER_CLASS (class)``
4642 The RF_TUNER class descriptor. Calling
7347081e 4643 :ref:`VIDIOC_QUERYCTRL` for this control will
5377d91f
MH
4644 return a description of this control class.
4645
4646``V4L2_CID_RF_TUNER_BANDWIDTH_AUTO (boolean)``
4647 Enables/disables tuner radio channel bandwidth configuration. In
4648 automatic mode bandwidth configuration is performed by the driver.
4649
4650``V4L2_CID_RF_TUNER_BANDWIDTH (integer)``
4651 Filter(s) on tuner signal path are used to filter signal according
4652 to receiving party needs. Driver configures filters to fulfill
4653 desired bandwidth requirement. Used when
4654 V4L2_CID_RF_TUNER_BANDWIDTH_AUTO is not set. Unit is in Hz. The
4655 range and step are driver-specific.
4656
4657``V4L2_CID_RF_TUNER_LNA_GAIN_AUTO (boolean)``
4658 Enables/disables LNA automatic gain control (AGC)
4659
4660``V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO (boolean)``
4661 Enables/disables mixer automatic gain control (AGC)
4662
4663``V4L2_CID_RF_TUNER_IF_GAIN_AUTO (boolean)``
4664 Enables/disables IF automatic gain control (AGC)
4665
4666``V4L2_CID_RF_TUNER_RF_GAIN (integer)``
4667 The RF amplifier is the very first amplifier on the receiver signal
4668 path, just right after the antenna input. The difference between the
4669 LNA gain and the RF gain in this document is that the LNA gain is
4670 integrated in the tuner chip while the RF gain is a separate chip.
4671 There may be both RF and LNA gain controls in the same device. The
4672 range and step are driver-specific.
4673
4674``V4L2_CID_RF_TUNER_LNA_GAIN (integer)``
4675 LNA (low noise amplifier) gain is first gain stage on the RF tuner
4676 signal path. It is located very close to tuner antenna input. Used
4677 when ``V4L2_CID_RF_TUNER_LNA_GAIN_AUTO`` is not set. See
4678 ``V4L2_CID_RF_TUNER_RF_GAIN`` to understand how RF gain and LNA gain
4679 differs from the each others. The range and step are
4680 driver-specific.
4681
4682``V4L2_CID_RF_TUNER_MIXER_GAIN (integer)``
4683 Mixer gain is second gain stage on the RF tuner signal path. It is
4684 located inside mixer block, where RF signal is down-converted by the
4685 mixer. Used when ``V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO`` is not set.
4686 The range and step are driver-specific.
4687
4688``V4L2_CID_RF_TUNER_IF_GAIN (integer)``
4689 IF gain is last gain stage on the RF tuner signal path. It is
4690 located on output of RF tuner. It controls signal level of
4691 intermediate frequency output or baseband output. Used when
4692 ``V4L2_CID_RF_TUNER_IF_GAIN_AUTO`` is not set. The range and step
4693 are driver-specific.
4694
4695``V4L2_CID_RF_TUNER_PLL_LOCK (boolean)``
4696 Is synthesizer PLL locked? RF tuner is receiving given frequency
4697 when that control is set. This is a read-only control.
4698
4855307b 4699.. [#f1]
5377d91f
MH
4700 This control may be changed to a menu control in the future, if more
4701 options are required.
This page took 0.316411 seconds and 5 git commands to generate.