Fix a typo on a word inside it. Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
		
			
				
	
	
		
			3425 lines
		
	
	
		
			113 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			3425 lines
		
	
	
		
			113 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. -*- coding: utf-8; mode: rst -*-
 | |
| 
 | |
| .. _extended-controls:
 | |
| 
 | |
| *****************
 | |
| Extended Controls
 | |
| *****************
 | |
| 
 | |
| 
 | |
| Introduction
 | |
| ============
 | |
| 
 | |
| The control mechanism as originally designed was meant to be used for
 | |
| user settings (brightness, saturation, etc). However, it turned out to
 | |
| be a very useful model for implementing more complicated driver APIs
 | |
| where each driver implements only a subset of a larger API.
 | |
| 
 | |
| The MPEG encoding API was the driving force behind designing and
 | |
| implementing this extended control mechanism: the MPEG standard is quite
 | |
| large and the currently supported hardware MPEG encoders each only
 | |
| implement a subset of this standard. Further more, many parameters
 | |
| relating to how the video is encoded into an MPEG stream are specific to
 | |
| the MPEG encoding chip since the MPEG standard only defines the format
 | |
| of the resulting MPEG stream, not how the video is actually encoded into
 | |
| that format.
 | |
| 
 | |
| Unfortunately, the original control API lacked some features needed for
 | |
| these new uses and so it was extended into the (not terribly originally
 | |
| named) extended control API.
 | |
| 
 | |
| Even though the MPEG encoding API was the first effort to use the
 | |
| Extended Control API, nowadays there are also other classes of Extended
 | |
| Controls, such as Camera Controls and FM Transmitter Controls. The
 | |
| Extended Controls API as well as all Extended Controls classes are
 | |
| described in the following text.
 | |
| 
 | |
| 
 | |
| The Extended Control API
 | |
| ========================
 | |
| 
 | |
| Three new ioctls are available:
 | |
| :ref:`VIDIOC_G_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>`,
 | |
| :ref:`VIDIOC_S_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` and
 | |
| :ref:`VIDIOC_TRY_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>`. These ioctls act
 | |
| on arrays of controls (as opposed to the
 | |
| :ref:`VIDIOC_G_CTRL <VIDIOC_G_CTRL>` and
 | |
| :ref:`VIDIOC_S_CTRL <VIDIOC_G_CTRL>` ioctls that act on a single
 | |
| control). This is needed since it is often required to atomically change
 | |
| several controls at once.
 | |
| 
 | |
| Each of the new ioctls expects a pointer to a struct
 | |
| :c:type:`v4l2_ext_controls`. This structure
 | |
| contains a pointer to the control array, a count of the number of
 | |
| controls in that array and a control class. Control classes are used to
 | |
| group similar controls into a single class. For example, control class
 | |
| ``V4L2_CTRL_CLASS_USER`` contains all user controls (i. e. all controls
 | |
| that can also be set using the old :ref:`VIDIOC_S_CTRL <VIDIOC_G_CTRL>`
 | |
| ioctl). Control class ``V4L2_CTRL_CLASS_MPEG`` contains all controls
 | |
| relating to MPEG encoding, etc.
 | |
| 
 | |
| All controls in the control array must belong to the specified control
 | |
| class. An error is returned if this is not the case.
 | |
| 
 | |
| It is also possible to use an empty control array (``count`` == 0) to check
 | |
| whether the specified control class is supported.
 | |
| 
 | |
| The control array is a struct
 | |
| :c:type:`v4l2_ext_control` array. The
 | |
| struct :c:type:`v4l2_ext_control` is very similar to
 | |
| struct :c:type:`v4l2_control`, except for the fact that
 | |
| it also allows for 64-bit values and pointers to be passed.
 | |
| 
 | |
| Since the struct :c:type:`v4l2_ext_control` supports
 | |
| pointers it is now also possible to have controls with compound types
 | |
| such as N-dimensional arrays and/or structures. You need to specify the
 | |
| ``V4L2_CTRL_FLAG_NEXT_COMPOUND`` when enumerating controls to actually
 | |
| be able to see such compound controls. In other words, these controls
 | |
| with compound types should only be used programmatically.
 | |
| 
 | |
| Since such compound controls need to expose more information about
 | |
| themselves than is possible with
 | |
| :ref:`VIDIOC_QUERYCTRL` the
 | |
| :ref:`VIDIOC_QUERY_EXT_CTRL <VIDIOC_QUERYCTRL>` ioctl was added. In
 | |
| particular, this ioctl gives the dimensions of the N-dimensional array
 | |
| if this control consists of more than one element.
 | |
| 
 | |
| .. note::
 | |
| 
 | |
|    #. It is important to realize that due to the flexibility of controls it is
 | |
|       necessary to check whether the control you want to set actually is
 | |
|       supported in the driver and what the valid range of values is. So use
 | |
|       the :ref:`VIDIOC_QUERYCTRL` (or :ref:`VIDIOC_QUERY_EXT_CTRL
 | |
|       <VIDIOC_QUERYCTRL>`) and :ref:`VIDIOC_QUERYMENU <VIDIOC_QUERYCTRL>`
 | |
|       ioctls to check this.
 | |
| 
 | |
|    #. It is possible that some of the menu indices in a control of
 | |
|       type ``V4L2_CTRL_TYPE_MENU`` may not be supported (``VIDIOC_QUERYMENU``
 | |
|       will return an error). A good example is the list of supported MPEG
 | |
|       audio bitrates. Some drivers only support one or two bitrates, others
 | |
|       support a wider range.
 | |
| 
 | |
| All controls use machine endianness.
 | |
| 
 | |
| 
 | |
| Enumerating Extended Controls
 | |
| =============================
 | |
| 
 | |
| The recommended way to enumerate over the extended controls is by using
 | |
| :ref:`VIDIOC_QUERYCTRL` in combination with the
 | |
| ``V4L2_CTRL_FLAG_NEXT_CTRL`` flag:
 | |
| 
 | |
| 
 | |
| .. code-block:: c
 | |
| 
 | |
|     struct v4l2_queryctrl qctrl;
 | |
| 
 | |
|     qctrl.id = V4L2_CTRL_FLAG_NEXT_CTRL;
 | |
|     while (0 == ioctl (fd, VIDIOC_QUERYCTRL, &qctrl)) {
 | |
| 	/* ... */
 | |
| 	qctrl.id |= V4L2_CTRL_FLAG_NEXT_CTRL;
 | |
|     }
 | |
| 
 | |
| The initial control ID is set to 0 ORed with the
 | |
| ``V4L2_CTRL_FLAG_NEXT_CTRL`` flag. The ``VIDIOC_QUERYCTRL`` ioctl will
 | |
| return the first control with a higher ID than the specified one. When
 | |
| no such controls are found an error is returned.
 | |
| 
 | |
| If you want to get all controls within a specific control class, then
 | |
| you can set the initial ``qctrl.id`` value to the control class and add
 | |
| an extra check to break out of the loop when a control of another
 | |
| control class is found:
 | |
| 
 | |
| 
 | |
| .. code-block:: c
 | |
| 
 | |
|     qctrl.id = V4L2_CTRL_CLASS_MPEG | V4L2_CTRL_FLAG_NEXT_CTRL;
 | |
|     while (0 == ioctl(fd, VIDIOC_QUERYCTRL, &qctrl)) {
 | |
| 	if (V4L2_CTRL_ID2CLASS(qctrl.id) != V4L2_CTRL_CLASS_MPEG)
 | |
| 	    break;
 | |
| 	    /* ... */
 | |
| 	qctrl.id |= V4L2_CTRL_FLAG_NEXT_CTRL;
 | |
|     }
 | |
| 
 | |
| The 32-bit ``qctrl.id`` value is subdivided into three bit ranges: the
 | |
| top 4 bits are reserved for flags (e. g. ``V4L2_CTRL_FLAG_NEXT_CTRL``)
 | |
| and are not actually part of the ID. The remaining 28 bits form the
 | |
| control ID, of which the most significant 12 bits define the control
 | |
| class and the least significant 16 bits identify the control within the
 | |
| control class. It is guaranteed that these last 16 bits are always
 | |
| non-zero for controls. The range of 0x1000 and up are reserved for
 | |
| driver-specific controls. The macro ``V4L2_CTRL_ID2CLASS(id)`` returns
 | |
| the control class ID based on a control ID.
 | |
| 
 | |
| If the driver does not support extended controls, then
 | |
| ``VIDIOC_QUERYCTRL`` will fail when used in combination with
 | |
| ``V4L2_CTRL_FLAG_NEXT_CTRL``. In that case the old method of enumerating
 | |
| control should be used (see :ref:`enum_all_controls`). But if it is
 | |
| supported, then it is guaranteed to enumerate over all controls,
 | |
| including driver-private controls.
 | |
| 
 | |
| 
 | |
| Creating Control Panels
 | |
| =======================
 | |
| 
 | |
| It is possible to create control panels for a graphical user interface
 | |
| where the user can select the various controls. Basically you will have
 | |
| to iterate over all controls using the method described above. Each
 | |
| control class starts with a control of type
 | |
| ``V4L2_CTRL_TYPE_CTRL_CLASS``. ``VIDIOC_QUERYCTRL`` will return the name
 | |
| of this control class which can be used as the title of a tab page
 | |
| within a control panel.
 | |
| 
 | |
| The flags field of struct :ref:`v4l2_queryctrl <v4l2-queryctrl>` also
 | |
| contains hints on the behavior of the control. See the
 | |
| :ref:`VIDIOC_QUERYCTRL` documentation for more
 | |
| details.
 | |
| 
 | |
| 
 | |
| .. _mpeg-controls:
 | |
| 
 | |
| Codec Control Reference
 | |
| =======================
 | |
| 
 | |
| Below all controls within the Codec control class are described. First
 | |
| the generic controls, then controls specific for certain hardware.
 | |
| 
 | |
| .. note::
 | |
| 
 | |
|    These controls are applicable to all codecs and not just MPEG. The
 | |
|    defines are prefixed with V4L2_CID_MPEG/V4L2_MPEG as the controls
 | |
|    were originally made for MPEG codecs and later extended to cover all
 | |
|    encoding formats.
 | |
| 
 | |
| 
 | |
| Generic Codec Controls
 | |
| ----------------------
 | |
| 
 | |
| 
 | |
| .. _mpeg-control-id:
 | |
| 
 | |
| Codec Control IDs
 | |
| ^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| ``V4L2_CID_MPEG_CLASS (class)``
 | |
|     The Codec class descriptor. Calling
 | |
|     :ref:`VIDIOC_QUERYCTRL` for this control will
 | |
|     return a description of this control class. This description can be
 | |
|     used as the caption of a Tab page in a GUI, for example.
 | |
| 
 | |
| .. _v4l2-mpeg-stream-type:
 | |
| 
 | |
| ``V4L2_CID_MPEG_STREAM_TYPE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_stream_type -
 | |
|     The MPEG-1, -2 or -4 output stream type. One cannot assume anything
 | |
|     here. Each hardware MPEG encoder tends to support different subsets
 | |
|     of the available MPEG stream types. This control is specific to
 | |
|     multiplexed MPEG streams. The currently defined stream types are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_PS``
 | |
|       - MPEG-2 program stream
 | |
|     * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_TS``
 | |
|       - MPEG-2 transport stream
 | |
|     * - ``V4L2_MPEG_STREAM_TYPE_MPEG1_SS``
 | |
|       - MPEG-1 system stream
 | |
|     * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_DVD``
 | |
|       - MPEG-2 DVD-compatible stream
 | |
|     * - ``V4L2_MPEG_STREAM_TYPE_MPEG1_VCD``
 | |
|       - MPEG-1 VCD-compatible stream
 | |
|     * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD``
 | |
|       - MPEG-2 SVCD-compatible stream
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_STREAM_PID_PMT (integer)``
 | |
|     Program Map Table Packet ID for the MPEG transport stream (default
 | |
|     16)
 | |
| 
 | |
| ``V4L2_CID_MPEG_STREAM_PID_AUDIO (integer)``
 | |
|     Audio Packet ID for the MPEG transport stream (default 256)
 | |
| 
 | |
| ``V4L2_CID_MPEG_STREAM_PID_VIDEO (integer)``
 | |
|     Video Packet ID for the MPEG transport stream (default 260)
 | |
| 
 | |
| ``V4L2_CID_MPEG_STREAM_PID_PCR (integer)``
 | |
|     Packet ID for the MPEG transport stream carrying PCR fields (default
 | |
|     259)
 | |
| 
 | |
| ``V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (integer)``
 | |
|     Audio ID for MPEG PES
 | |
| 
 | |
| ``V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (integer)``
 | |
|     Video ID for MPEG PES
 | |
| 
 | |
| .. _v4l2-mpeg-stream-vbi-fmt:
 | |
| 
 | |
| ``V4L2_CID_MPEG_STREAM_VBI_FMT``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_stream_vbi_fmt -
 | |
|     Some cards can embed VBI data (e. g. Closed Caption, Teletext) into
 | |
|     the MPEG stream. This control selects whether VBI data should be
 | |
|     embedded, and if so, what embedding method should be used. The list
 | |
|     of possible VBI formats depends on the driver. The currently defined
 | |
|     VBI format types are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. tabularcolumns:: |p{6 cm}|p{11.5cm}|
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_STREAM_VBI_FMT_NONE``
 | |
|       - No VBI in the MPEG stream
 | |
|     * - ``V4L2_MPEG_STREAM_VBI_FMT_IVTV``
 | |
|       - VBI in private packets, IVTV format (documented in the kernel
 | |
| 	sources in the file
 | |
| 	``Documentation/video4linux/cx2341x/README.vbi``)
 | |
| 
 | |
| 
 | |
| 
 | |
| .. _v4l2-mpeg-audio-sampling-freq:
 | |
| 
 | |
| ``V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_audio_sampling_freq -
 | |
|     MPEG Audio sampling frequency. Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100``
 | |
|       - 44.1 kHz
 | |
|     * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000``
 | |
|       - 48 kHz
 | |
|     * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000``
 | |
|       - 32 kHz
 | |
| 
 | |
| 
 | |
| 
 | |
| .. _v4l2-mpeg-audio-encoding:
 | |
| 
 | |
| ``V4L2_CID_MPEG_AUDIO_ENCODING``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_audio_encoding -
 | |
|     MPEG Audio encoding. This control is specific to multiplexed MPEG
 | |
|     streams. Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_1``
 | |
|       - MPEG-1/2 Layer I encoding
 | |
|     * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_2``
 | |
|       - MPEG-1/2 Layer II encoding
 | |
|     * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_3``
 | |
|       - MPEG-1/2 Layer III encoding
 | |
|     * - ``V4L2_MPEG_AUDIO_ENCODING_AAC``
 | |
|       - MPEG-2/4 AAC (Advanced Audio Coding)
 | |
|     * - ``V4L2_MPEG_AUDIO_ENCODING_AC3``
 | |
|       - AC-3 aka ATSC A/52 encoding
 | |
| 
 | |
| 
 | |
| 
 | |
| .. _v4l2-mpeg-audio-l1-bitrate:
 | |
| 
 | |
| ``V4L2_CID_MPEG_AUDIO_L1_BITRATE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_audio_l1_bitrate -
 | |
|     MPEG-1/2 Layer I bitrate. Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_AUDIO_L1_BITRATE_32K``
 | |
|       - 32 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L1_BITRATE_64K``
 | |
|       - 64 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L1_BITRATE_96K``
 | |
|       - 96 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L1_BITRATE_128K``
 | |
|       - 128 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L1_BITRATE_160K``
 | |
|       - 160 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L1_BITRATE_192K``
 | |
|       - 192 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L1_BITRATE_224K``
 | |
|       - 224 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L1_BITRATE_256K``
 | |
|       - 256 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L1_BITRATE_288K``
 | |
|       - 288 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L1_BITRATE_320K``
 | |
|       - 320 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L1_BITRATE_352K``
 | |
|       - 352 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L1_BITRATE_384K``
 | |
|       - 384 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L1_BITRATE_416K``
 | |
|       - 416 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L1_BITRATE_448K``
 | |
|       - 448 kbit/s
 | |
| 
 | |
| 
 | |
| 
 | |
| .. _v4l2-mpeg-audio-l2-bitrate:
 | |
| 
 | |
| ``V4L2_CID_MPEG_AUDIO_L2_BITRATE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_audio_l2_bitrate -
 | |
|     MPEG-1/2 Layer II bitrate. Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_AUDIO_L2_BITRATE_32K``
 | |
|       - 32 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L2_BITRATE_48K``
 | |
|       - 48 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L2_BITRATE_56K``
 | |
|       - 56 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L2_BITRATE_64K``
 | |
|       - 64 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L2_BITRATE_80K``
 | |
|       - 80 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L2_BITRATE_96K``
 | |
|       - 96 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L2_BITRATE_112K``
 | |
|       - 112 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L2_BITRATE_128K``
 | |
|       - 128 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L2_BITRATE_160K``
 | |
|       - 160 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L2_BITRATE_192K``
 | |
|       - 192 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L2_BITRATE_224K``
 | |
|       - 224 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L2_BITRATE_256K``
 | |
|       - 256 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L2_BITRATE_320K``
 | |
|       - 320 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L2_BITRATE_384K``
 | |
|       - 384 kbit/s
 | |
| 
 | |
| 
 | |
| 
 | |
| .. _v4l2-mpeg-audio-l3-bitrate:
 | |
| 
 | |
| ``V4L2_CID_MPEG_AUDIO_L3_BITRATE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_audio_l3_bitrate -
 | |
|     MPEG-1/2 Layer III bitrate. Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_AUDIO_L3_BITRATE_32K``
 | |
|       - 32 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L3_BITRATE_40K``
 | |
|       - 40 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L3_BITRATE_48K``
 | |
|       - 48 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L3_BITRATE_56K``
 | |
|       - 56 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L3_BITRATE_64K``
 | |
|       - 64 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L3_BITRATE_80K``
 | |
|       - 80 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L3_BITRATE_96K``
 | |
|       - 96 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L3_BITRATE_112K``
 | |
|       - 112 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L3_BITRATE_128K``
 | |
|       - 128 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L3_BITRATE_160K``
 | |
|       - 160 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L3_BITRATE_192K``
 | |
|       - 192 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L3_BITRATE_224K``
 | |
|       - 224 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L3_BITRATE_256K``
 | |
|       - 256 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_L3_BITRATE_320K``
 | |
|       - 320 kbit/s
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_AUDIO_AAC_BITRATE (integer)``
 | |
|     AAC bitrate in bits per second.
 | |
| 
 | |
| .. _v4l2-mpeg-audio-ac3-bitrate:
 | |
| 
 | |
| ``V4L2_CID_MPEG_AUDIO_AC3_BITRATE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_audio_ac3_bitrate -
 | |
|     AC-3 bitrate. Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_32K``
 | |
|       - 32 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_40K``
 | |
|       - 40 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_48K``
 | |
|       - 48 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_56K``
 | |
|       - 56 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_64K``
 | |
|       - 64 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_80K``
 | |
|       - 80 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_96K``
 | |
|       - 96 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_112K``
 | |
|       - 112 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_128K``
 | |
|       - 128 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_160K``
 | |
|       - 160 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_192K``
 | |
|       - 192 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_224K``
 | |
|       - 224 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_256K``
 | |
|       - 256 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_320K``
 | |
|       - 320 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_384K``
 | |
|       - 384 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_448K``
 | |
|       - 448 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_512K``
 | |
|       - 512 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_576K``
 | |
|       - 576 kbit/s
 | |
|     * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_640K``
 | |
|       - 640 kbit/s
 | |
| 
 | |
| 
 | |
| 
 | |
| .. _v4l2-mpeg-audio-mode:
 | |
| 
 | |
| ``V4L2_CID_MPEG_AUDIO_MODE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_audio_mode -
 | |
|     MPEG Audio mode. Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_AUDIO_MODE_STEREO``
 | |
|       - Stereo
 | |
|     * - ``V4L2_MPEG_AUDIO_MODE_JOINT_STEREO``
 | |
|       - Joint Stereo
 | |
|     * - ``V4L2_MPEG_AUDIO_MODE_DUAL``
 | |
|       - Bilingual
 | |
|     * - ``V4L2_MPEG_AUDIO_MODE_MONO``
 | |
|       - Mono
 | |
| 
 | |
| 
 | |
| 
 | |
| .. _v4l2-mpeg-audio-mode-extension:
 | |
| 
 | |
| ``V4L2_CID_MPEG_AUDIO_MODE_EXTENSION``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_audio_mode_extension -
 | |
|     Joint Stereo audio mode extension. In Layer I and II they indicate
 | |
|     which subbands are in intensity stereo. All other subbands are coded
 | |
|     in stereo. Layer III is not (yet) supported. Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4``
 | |
|       - Subbands 4-31 in intensity stereo
 | |
|     * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8``
 | |
|       - Subbands 8-31 in intensity stereo
 | |
|     * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12``
 | |
|       - Subbands 12-31 in intensity stereo
 | |
|     * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16``
 | |
|       - Subbands 16-31 in intensity stereo
 | |
| 
 | |
| 
 | |
| 
 | |
| .. _v4l2-mpeg-audio-emphasis:
 | |
| 
 | |
| ``V4L2_CID_MPEG_AUDIO_EMPHASIS``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_audio_emphasis -
 | |
|     Audio Emphasis. Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_AUDIO_EMPHASIS_NONE``
 | |
|       - None
 | |
|     * - ``V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS``
 | |
|       - 50/15 microsecond emphasis
 | |
|     * - ``V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17``
 | |
|       - CCITT J.17
 | |
| 
 | |
| 
 | |
| 
 | |
| .. _v4l2-mpeg-audio-crc:
 | |
| 
 | |
| ``V4L2_CID_MPEG_AUDIO_CRC``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_audio_crc -
 | |
|     CRC method. Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_AUDIO_CRC_NONE``
 | |
|       - None
 | |
|     * - ``V4L2_MPEG_AUDIO_CRC_CRC16``
 | |
|       - 16 bit parity check
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_AUDIO_MUTE (boolean)``
 | |
|     Mutes the audio when capturing. This is not done by muting audio
 | |
|     hardware, which can still produce a slight hiss, but in the encoder
 | |
|     itself, guaranteeing a fixed and reproducible audio bitstream. 0 =
 | |
|     unmuted, 1 = muted.
 | |
| 
 | |
| .. _v4l2-mpeg-audio-dec-playback:
 | |
| 
 | |
| ``V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_audio_dec_playback -
 | |
|     Determines how monolingual audio should be played back. Possible
 | |
|     values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. tabularcolumns:: |p{9.0cm}|p{8.5cm}|
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_AUTO``
 | |
|       - Automatically determines the best playback mode.
 | |
|     * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_STEREO``
 | |
|       - Stereo playback.
 | |
|     * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_LEFT``
 | |
|       - Left channel playback.
 | |
|     * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_RIGHT``
 | |
|       - Right channel playback.
 | |
|     * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_MONO``
 | |
|       - Mono playback.
 | |
|     * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_SWAPPED_STEREO``
 | |
|       - Stereo playback with swapped left and right channels.
 | |
| 
 | |
| 
 | |
| 
 | |
| .. _v4l2-mpeg-audio-dec-multilingual-playback:
 | |
| 
 | |
| ``V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_audio_dec_playback -
 | |
|     Determines how multilingual audio should be played back.
 | |
| 
 | |
| .. _v4l2-mpeg-video-encoding:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_ENCODING``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_video_encoding -
 | |
|     MPEG Video encoding method. This control is specific to multiplexed
 | |
|     MPEG streams. Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_1``
 | |
|       - MPEG-1 Video encoding
 | |
|     * - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_2``
 | |
|       - MPEG-2 Video encoding
 | |
|     * - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC``
 | |
|       - MPEG-4 AVC (H.264) Video encoding
 | |
| 
 | |
| 
 | |
| 
 | |
| .. _v4l2-mpeg-video-aspect:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_ASPECT``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_video_aspect -
 | |
|     Video aspect. Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_VIDEO_ASPECT_1x1``
 | |
|     * - ``V4L2_MPEG_VIDEO_ASPECT_4x3``
 | |
|     * - ``V4L2_MPEG_VIDEO_ASPECT_16x9``
 | |
|     * - ``V4L2_MPEG_VIDEO_ASPECT_221x100``
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_B_FRAMES (integer)``
 | |
|     Number of B-Frames (default 2)
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_GOP_SIZE (integer)``
 | |
|     GOP size (default 12)
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (boolean)``
 | |
|     GOP closure (default 1)
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_PULLDOWN (boolean)``
 | |
|     Enable 3:2 pulldown (default 0)
 | |
| 
 | |
| .. _v4l2-mpeg-video-bitrate-mode:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_BITRATE_MODE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_video_bitrate_mode -
 | |
|     Video bitrate mode. Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_VIDEO_BITRATE_MODE_VBR``
 | |
|       - Variable bitrate
 | |
|     * - ``V4L2_MPEG_VIDEO_BITRATE_MODE_CBR``
 | |
|       - Constant bitrate
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_BITRATE (integer)``
 | |
|     Video bitrate in bits per second.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (integer)``
 | |
|     Peak video bitrate in bits per second. Must be larger or equal to
 | |
|     the average video bitrate. It is ignored if the video bitrate mode
 | |
|     is set to constant bitrate.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (integer)``
 | |
|     For every captured frame, skip this many subsequent frames (default
 | |
|     0).
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_MUTE (boolean)``
 | |
|     "Mutes" the video to a fixed color when capturing. This is useful
 | |
|     for testing, to produce a fixed video bitstream. 0 = unmuted, 1 =
 | |
|     muted.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_MUTE_YUV (integer)``
 | |
|     Sets the "mute" color of the video. The supplied 32-bit integer is
 | |
|     interpreted as follows (bit 0 = least significant bit):
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - Bit 0:7
 | |
|       - V chrominance information
 | |
|     * - Bit 8:15
 | |
|       - U chrominance information
 | |
|     * - Bit 16:23
 | |
|       - Y luminance information
 | |
|     * - Bit 24:31
 | |
|       - Must be zero.
 | |
| 
 | |
| 
 | |
| 
 | |
| .. _v4l2-mpeg-video-dec-pts:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_DEC_PTS (integer64)``
 | |
|     This read-only control returns the 33-bit video Presentation Time
 | |
|     Stamp as defined in ITU T-REC-H.222.0 and ISO/IEC 13818-1 of the
 | |
|     currently displayed frame. This is the same PTS as is used in
 | |
|     :ref:`VIDIOC_DECODER_CMD`.
 | |
| 
 | |
| .. _v4l2-mpeg-video-dec-frame:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_DEC_FRAME (integer64)``
 | |
|     This read-only control returns the frame counter of the frame that
 | |
|     is currently displayed (decoded). This value is reset to 0 whenever
 | |
|     the decoder is started.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (boolean)``
 | |
|     If enabled the decoder expects to receive a single slice per buffer,
 | |
|     otherwise the decoder expects a single frame in per buffer.
 | |
|     Applicable to the decoder, all codecs.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (boolean)``
 | |
|     Enable writing sample aspect ratio in the Video Usability
 | |
|     Information. Applicable to the H264 encoder.
 | |
| 
 | |
| .. _v4l2-mpeg-video-h264-vui-sar-idc:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_video_h264_vui_sar_idc -
 | |
|     VUI sample aspect ratio indicator for H.264 encoding. The value is
 | |
|     defined in the table E-1 in the standard. Applicable to the H264
 | |
|     encoder.
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED``
 | |
|       - Unspecified
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1``
 | |
|       - 1x1
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_12x11``
 | |
|       - 12x11
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_10x11``
 | |
|       - 10x11
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_16x11``
 | |
|       - 16x11
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_40x33``
 | |
|       - 40x33
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_24x11``
 | |
|       - 24x11
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_20x11``
 | |
|       - 20x11
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_32x11``
 | |
|       - 32x11
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_80x33``
 | |
|       - 80x33
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_18x11``
 | |
|       - 18x11
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_15x11``
 | |
|       - 15x11
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_64x33``
 | |
|       - 64x33
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_160x99``
 | |
|       - 160x99
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_4x3``
 | |
|       - 4x3
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_3x2``
 | |
|       - 3x2
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1``
 | |
|       - 2x1
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED``
 | |
|       - Extended SAR
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (integer)``
 | |
|     Extended sample aspect ratio width for H.264 VUI encoding.
 | |
|     Applicable to the H264 encoder.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (integer)``
 | |
|     Extended sample aspect ratio height for H.264 VUI encoding.
 | |
|     Applicable to the H264 encoder.
 | |
| 
 | |
| .. _v4l2-mpeg-video-h264-level:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_LEVEL``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_video_h264_level -
 | |
|     The level information for the H264 video elementary stream.
 | |
|     Applicable to the H264 encoder. Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_0``
 | |
|       - Level 1.0
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1B``
 | |
|       - Level 1B
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_1``
 | |
|       - Level 1.1
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_2``
 | |
|       - Level 1.2
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_3``
 | |
|       - Level 1.3
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_0``
 | |
|       - Level 2.0
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_1``
 | |
|       - Level 2.1
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_2``
 | |
|       - Level 2.2
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_0``
 | |
|       - Level 3.0
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_1``
 | |
|       - Level 3.1
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_2``
 | |
|       - Level 3.2
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_0``
 | |
|       - Level 4.0
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_1``
 | |
|       - Level 4.1
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_2``
 | |
|       - Level 4.2
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_0``
 | |
|       - Level 5.0
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_1``
 | |
|       - Level 5.1
 | |
| 
 | |
| 
 | |
| 
 | |
| .. _v4l2-mpeg-video-mpeg4-level:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_video_mpeg4_level -
 | |
|     The level information for the MPEG4 elementary stream. Applicable to
 | |
|     the MPEG4 encoder. Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_VIDEO_LEVEL_0``
 | |
|       - Level 0
 | |
|     * - ``V4L2_MPEG_VIDEO_LEVEL_0B``
 | |
|       - Level 0b
 | |
|     * - ``V4L2_MPEG_VIDEO_LEVEL_1``
 | |
|       - Level 1
 | |
|     * - ``V4L2_MPEG_VIDEO_LEVEL_2``
 | |
|       - Level 2
 | |
|     * - ``V4L2_MPEG_VIDEO_LEVEL_3``
 | |
|       - Level 3
 | |
|     * - ``V4L2_MPEG_VIDEO_LEVEL_3B``
 | |
|       - Level 3b
 | |
|     * - ``V4L2_MPEG_VIDEO_LEVEL_4``
 | |
|       - Level 4
 | |
|     * - ``V4L2_MPEG_VIDEO_LEVEL_5``
 | |
|       - Level 5
 | |
| 
 | |
| 
 | |
| 
 | |
| .. _v4l2-mpeg-video-h264-profile:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_PROFILE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_video_h264_profile -
 | |
|     The profile information for H264. Applicable to the H264 encoder.
 | |
|     Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE``
 | |
|       - Baseline profile
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE``
 | |
|       - Constrained Baseline profile
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_PROFILE_MAIN``
 | |
|       - Main profile
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED``
 | |
|       - Extended profile
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH``
 | |
|       - High profile
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10``
 | |
|       - High 10 profile
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422``
 | |
|       - High 422 profile
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE``
 | |
|       - High 444 Predictive profile
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA``
 | |
|       - High 10 Intra profile
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA``
 | |
|       - High 422 Intra profile
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_INTRA``
 | |
|       - High 444 Intra profile
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_PROFILE_CAVLC_444_INTRA``
 | |
|       - CAVLC 444 Intra profile
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_BASELINE``
 | |
|       - Scalable Baseline profile
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH``
 | |
|       - Scalable High profile
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA``
 | |
|       - Scalable High Intra profile
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH``
 | |
|       - Stereo High profile
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH``
 | |
|       - Multiview High profile
 | |
| 
 | |
| 
 | |
| 
 | |
| .. _v4l2-mpeg-video-mpeg4-profile:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_video_mpeg4_profile -
 | |
|     The profile information for MPEG4. Applicable to the MPEG4 encoder.
 | |
|     Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_VIDEO_PROFILE_SIMPLE``
 | |
|       - Simple profile
 | |
|     * - ``V4L2_MPEG_VIDEO_PROFILE_ADVANCED_SIMPLE``
 | |
|       - Advanced Simple profile
 | |
|     * - ``V4L2_MPEG_VIDEO_PROFILE_CORE``
 | |
|       - Core profile
 | |
|     * - ``V4L2_MPEG_VIDEO_PROFILE_SIMPLE_SCALABLE``
 | |
|       - Simple Scalable profile
 | |
|     * - ``V4L2_MPEG_VIDEO_PROFILE_ADVANCED_CODING_EFFICIENCY``
 | |
|       -
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_MAX_REF_PIC (integer)``
 | |
|     The maximum number of reference pictures used for encoding.
 | |
|     Applicable to the encoder.
 | |
| 
 | |
| .. _v4l2-mpeg-video-multi-slice-mode:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_video_multi_slice_mode -
 | |
|     Determines how the encoder should handle division of frame into
 | |
|     slices. Applicable to the encoder. Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. tabularcolumns:: |p{8.7cm}|p{8.8cm}|
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE``
 | |
|       - Single slice per frame.
 | |
|     * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB``
 | |
|       - Multiple slices with set maximum number of macroblocks per slice.
 | |
|     * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES``
 | |
|       - Multiple slice with set maximum size in bytes per slice.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB (integer)``
 | |
|     The maximum number of macroblocks in a slice. Used when
 | |
|     ``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE`` is set to
 | |
|     ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB``. Applicable to the
 | |
|     encoder.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES (integer)``
 | |
|     The maximum size of a slice in bytes. Used when
 | |
|     ``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE`` is set to
 | |
|     ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES``. Applicable to the
 | |
|     encoder.
 | |
| 
 | |
| .. _v4l2-mpeg-video-h264-loop-filter-mode:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_video_h264_loop_filter_mode -
 | |
|     Loop filter mode for H264 encoder. Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. tabularcolumns:: |p{14.0cm}|p{3.5cm}|
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED``
 | |
|       - Loop filter is enabled.
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED``
 | |
|       - Loop filter is disabled.
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY``
 | |
|       - Loop filter is disabled at the slice boundary.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA (integer)``
 | |
|     Loop filter alpha coefficient, defined in the H264 standard.
 | |
|     Applicable to the H264 encoder.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA (integer)``
 | |
|     Loop filter beta coefficient, defined in the H264 standard.
 | |
|     Applicable to the H264 encoder.
 | |
| 
 | |
| .. _v4l2-mpeg-video-h264-entropy-mode:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_video_h264_entropy_mode -
 | |
|     Entropy coding mode for H264 - CABAC/CAVALC. Applicable to the H264
 | |
|     encoder. Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC``
 | |
|       - Use CAVLC entropy coding.
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC``
 | |
|       - Use CABAC entropy coding.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM (boolean)``
 | |
|     Enable 8X8 transform for H264. Applicable to the H264 encoder.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (integer)``
 | |
|     Cyclic intra macroblock refresh. This is the number of continuous
 | |
|     macroblocks refreshed every frame. Each frame a successive set of
 | |
|     macroblocks is refreshed until the cycle completes and starts from
 | |
|     the top of the frame. Applicable to H264, H263 and MPEG4 encoder.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE (boolean)``
 | |
|     Frame level rate control enable. If this control is disabled then
 | |
|     the quantization parameter for each frame type is constant and set
 | |
|     with appropriate controls (e.g.
 | |
|     ``V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP``). If frame rate control is
 | |
|     enabled then quantization parameter is adjusted to meet the chosen
 | |
|     bitrate. Minimum and maximum value for the quantization parameter
 | |
|     can be set with appropriate controls (e.g.
 | |
|     ``V4L2_CID_MPEG_VIDEO_H263_MIN_QP``). Applicable to encoders.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE (boolean)``
 | |
|     Macroblock level rate control enable. Applicable to the MPEG4 and
 | |
|     H264 encoders.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_MPEG4_QPEL (boolean)``
 | |
|     Quarter pixel motion estimation for MPEG4. Applicable to the MPEG4
 | |
|     encoder.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (integer)``
 | |
|     Quantization parameter for an I frame for H263. Valid range: from 1
 | |
|     to 31.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H263_MIN_QP (integer)``
 | |
|     Minimum quantization parameter for H263. Valid range: from 1 to 31.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H263_MAX_QP (integer)``
 | |
|     Maximum quantization parameter for H263. Valid range: from 1 to 31.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (integer)``
 | |
|     Quantization parameter for an P frame for H263. Valid range: from 1
 | |
|     to 31.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (integer)``
 | |
|     Quantization parameter for an B frame for H263. Valid range: from 1
 | |
|     to 31.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP (integer)``
 | |
|     Quantization parameter for an I frame for H264. Valid range: from 0
 | |
|     to 51.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_MIN_QP (integer)``
 | |
|     Minimum quantization parameter for H264. Valid range: from 0 to 51.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_MAX_QP (integer)``
 | |
|     Maximum quantization parameter for H264. Valid range: from 0 to 51.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP (integer)``
 | |
|     Quantization parameter for an P frame for H264. Valid range: from 0
 | |
|     to 51.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP (integer)``
 | |
|     Quantization parameter for an B frame for H264. Valid range: from 0
 | |
|     to 51.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (integer)``
 | |
|     Quantization parameter for an I frame for MPEG4. Valid range: from 1
 | |
|     to 31.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP (integer)``
 | |
|     Minimum quantization parameter for MPEG4. Valid range: from 1 to 31.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP (integer)``
 | |
|     Maximum quantization parameter for MPEG4. Valid range: from 1 to 31.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (integer)``
 | |
|     Quantization parameter for an P frame for MPEG4. Valid range: from 1
 | |
|     to 31.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (integer)``
 | |
|     Quantization parameter for an B frame for MPEG4. Valid range: from 1
 | |
|     to 31.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_VBV_SIZE (integer)``
 | |
|     The Video Buffer Verifier size in kilobytes, it is used as a
 | |
|     limitation of frame skip. The VBV is defined in the standard as a
 | |
|     mean to verify that the produced stream will be successfully
 | |
|     decoded. The standard describes it as "Part of a hypothetical
 | |
|     decoder that is conceptually connected to the output of the encoder.
 | |
|     Its purpose is to provide a constraint on the variability of the
 | |
|     data rate that an encoder or editing process may produce.".
 | |
|     Applicable to the MPEG1, MPEG2, MPEG4 encoders.
 | |
| 
 | |
| .. _v4l2-mpeg-video-vbv-delay:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_VBV_DELAY (integer)``
 | |
|     Sets the initial delay in milliseconds for VBV buffer control.
 | |
| 
 | |
| .. _v4l2-mpeg-video-hor-search-range:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (integer)``
 | |
|     Horizontal search range defines maximum horizontal search area in
 | |
|     pixels to search and match for the present Macroblock (MB) in the
 | |
|     reference picture. This V4L2 control macro is used to set horizontal
 | |
|     search range for motion estimation module in video encoder.
 | |
| 
 | |
| .. _v4l2-mpeg-video-vert-search-range:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (integer)``
 | |
|     Vertical search range defines maximum vertical search area in pixels
 | |
|     to search and match for the present Macroblock (MB) in the reference
 | |
|     picture. This V4L2 control macro is used to set vertical search
 | |
|     range for motion estimation module in video encoder.
 | |
| 
 | |
| .. _v4l2-mpeg-video-force-key-frame:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (button)``
 | |
|     Force a key frame for the next queued buffer. Applicable to
 | |
|     encoders. This is a general, codec-agnostic keyframe control.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE (integer)``
 | |
|     The Coded Picture Buffer size in kilobytes, it is used as a
 | |
|     limitation of frame skip. The CPB is defined in the H264 standard as
 | |
|     a mean to verify that the produced stream will be successfully
 | |
|     decoded. Applicable to the H264 encoder.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_I_PERIOD (integer)``
 | |
|     Period between I-frames in the open GOP for H264. In case of an open
 | |
|     GOP this is the period between two I-frames. The period between IDR
 | |
|     (Instantaneous Decoding Refresh) frames is taken from the GOP_SIZE
 | |
|     control. An IDR frame, which stands for Instantaneous Decoding
 | |
|     Refresh is an I-frame after which no prior frames are referenced.
 | |
|     This means that a stream can be restarted from an IDR frame without
 | |
|     the need to store or decode any previous frames. Applicable to the
 | |
|     H264 encoder.
 | |
| 
 | |
| .. _v4l2-mpeg-video-header-mode:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_HEADER_MODE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_video_header_mode -
 | |
|     Determines whether the header is returned as the first buffer or is
 | |
|     it returned together with the first frame. Applicable to encoders.
 | |
|     Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. tabularcolumns:: |p{10.3cm}|p{7.2cm}|
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE``
 | |
|       - The stream header is returned separately in the first buffer.
 | |
|     * - ``V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME``
 | |
|       - The stream header is returned together with the first encoded
 | |
| 	frame.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (boolean)``
 | |
|     Repeat the video sequence headers. Repeating these headers makes
 | |
|     random access to the video stream easier. Applicable to the MPEG1, 2
 | |
|     and 4 encoder.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (boolean)``
 | |
|     Enabled the deblocking post processing filter for MPEG4 decoder.
 | |
|     Applicable to the MPEG4 decoder.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_MPEG4_VOP_TIME_RES (integer)``
 | |
|     vop_time_increment_resolution value for MPEG4. Applicable to the
 | |
|     MPEG4 encoder.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_MPEG4_VOP_TIME_INC (integer)``
 | |
|     vop_time_increment value for MPEG4. Applicable to the MPEG4
 | |
|     encoder.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING (boolean)``
 | |
|     Enable generation of frame packing supplemental enhancement
 | |
|     information in the encoded bitstream. The frame packing SEI message
 | |
|     contains the arrangement of L and R planes for 3D viewing.
 | |
|     Applicable to the H264 encoder.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 (boolean)``
 | |
|     Sets current frame as frame0 in frame packing SEI. Applicable to the
 | |
|     H264 encoder.
 | |
| 
 | |
| .. _v4l2-mpeg-video-h264-sei-fp-arrangement-type:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_video_h264_sei_fp_arrangement_type -
 | |
|     Frame packing arrangement type for H264 SEI. Applicable to the H264
 | |
|     encoder. Possible values are:
 | |
| 
 | |
| .. tabularcolumns:: |p{12cm}|p{5.5cm}|
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHEKERBOARD``
 | |
|       - Pixels are alternatively from L and R.
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN``
 | |
|       - L and R are interlaced by column.
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_ROW``
 | |
|       - L and R are interlaced by row.
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_SIDE_BY_SIDE``
 | |
|       - L is on the left, R on the right.
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM``
 | |
|       - L is on top, R on bottom.
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL``
 | |
|       - One view per frame.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_FMO (boolean)``
 | |
|     Enables flexible macroblock ordering in the encoded bitstream. It is
 | |
|     a technique used for restructuring the ordering of macroblocks in
 | |
|     pictures. Applicable to the H264 encoder.
 | |
| 
 | |
| .. _v4l2-mpeg-video-h264-fmo-map-type:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE``
 | |
|    (enum)
 | |
| 
 | |
| enum v4l2_mpeg_video_h264_fmo_map_type -
 | |
|     When using FMO, the map type divides the image in different scan
 | |
|     patterns of macroblocks. Applicable to the H264 encoder. Possible
 | |
|     values are:
 | |
| 
 | |
| .. tabularcolumns:: |p{12.5cm}|p{5.0cm}|
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES``
 | |
|       - Slices are interleaved one after other with macroblocks in run
 | |
| 	length order.
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES``
 | |
|       - Scatters the macroblocks based on a mathematical function known to
 | |
| 	both encoder and decoder.
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER``
 | |
|       - Macroblocks arranged in rectangular areas or regions of interest.
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT``
 | |
|       - Slice groups grow in a cyclic way from centre to outwards.
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN``
 | |
|       - Slice groups grow in raster scan pattern from left to right.
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN``
 | |
|       - Slice groups grow in wipe scan pattern from top to bottom.
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT``
 | |
|       - User defined map type.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP (integer)``
 | |
|     Number of slice groups in FMO. Applicable to the H264 encoder.
 | |
| 
 | |
| .. _v4l2-mpeg-video-h264-fmo-change-direction:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_video_h264_fmo_change_dir -
 | |
|     Specifies a direction of the slice group change for raster and wipe
 | |
|     maps. Applicable to the H264 encoder. Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT``
 | |
|       - Raster scan or wipe right.
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT``
 | |
|       - Reverse raster scan or wipe left.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE (integer)``
 | |
|     Specifies the size of the first slice group for raster and wipe map.
 | |
|     Applicable to the H264 encoder.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH (integer)``
 | |
|     Specifies the number of consecutive macroblocks for the interleaved
 | |
|     map. Applicable to the H264 encoder.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_ASO (boolean)``
 | |
|     Enables arbitrary slice ordering in encoded bitstream. Applicable to
 | |
|     the H264 encoder.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER (integer)``
 | |
|     Specifies the slice order in ASO. Applicable to the H264 encoder.
 | |
|     The supplied 32-bit integer is interpreted as follows (bit 0 = least
 | |
|     significant bit):
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - Bit 0:15
 | |
|       - Slice ID
 | |
|     * - Bit 16:32
 | |
|       - Slice position or order
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING (boolean)``
 | |
|     Enables H264 hierarchical coding. Applicable to the H264 encoder.
 | |
| 
 | |
| .. _v4l2-mpeg-video-h264-hierarchical-coding-type:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_video_h264_hierarchical_coding_type -
 | |
|     Specifies the hierarchical coding type. Applicable to the H264
 | |
|     encoder. Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B``
 | |
|       - Hierarchical B coding.
 | |
|     * - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P``
 | |
|       - Hierarchical P coding.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (integer)``
 | |
|     Specifies the number of hierarchical coding layers. Applicable to
 | |
|     the H264 encoder.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (integer)``
 | |
|     Specifies a user defined QP for each layer. Applicable to the H264
 | |
|     encoder. The supplied 32-bit integer is interpreted as follows (bit
 | |
|     0 = least significant bit):
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - Bit 0:15
 | |
|       - QP value
 | |
|     * - Bit 16:32
 | |
|       - Layer number
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| MFC 5.1 MPEG Controls
 | |
| ---------------------
 | |
| 
 | |
| The following MPEG class controls deal with MPEG decoding and encoding
 | |
| settings that are specific to the Multi Format Codec 5.1 device present
 | |
| in the S5P family of SoCs by Samsung.
 | |
| 
 | |
| 
 | |
| .. _mfc51-control-id:
 | |
| 
 | |
| MFC 5.1 Control IDs
 | |
| ^^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| ``V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE (boolean)``
 | |
|     If the display delay is enabled then the decoder is forced to return
 | |
|     a CAPTURE buffer (decoded frame) after processing a certain number
 | |
|     of OUTPUT buffers. The delay can be set through
 | |
|     ``V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY``. This
 | |
|     feature can be used for example for generating thumbnails of videos.
 | |
|     Applicable to the H264 decoder.
 | |
| 
 | |
| ``V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY (integer)``
 | |
|     Display delay value for H264 decoder. The decoder is forced to
 | |
|     return a decoded frame after the set 'display delay' number of
 | |
|     frames. If this number is low it may result in frames returned out
 | |
|     of dispaly order, in addition the hardware may still be using the
 | |
|     returned buffer as a reference picture for subsequent frames.
 | |
| 
 | |
| ``V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (integer)``
 | |
|     The number of reference pictures used for encoding a P picture.
 | |
|     Applicable to the H264 encoder.
 | |
| 
 | |
| ``V4L2_CID_MPEG_MFC51_VIDEO_PADDING (boolean)``
 | |
|     Padding enable in the encoder - use a color instead of repeating
 | |
|     border pixels. Applicable to encoders.
 | |
| 
 | |
| ``V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV (integer)``
 | |
|     Padding color in the encoder. Applicable to encoders. The supplied
 | |
|     32-bit integer is interpreted as follows (bit 0 = least significant
 | |
|     bit):
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - Bit 0:7
 | |
|       - V chrominance information
 | |
|     * - Bit 8:15
 | |
|       - U chrominance information
 | |
|     * - Bit 16:23
 | |
|       - Y luminance information
 | |
|     * - Bit 24:31
 | |
|       - Must be zero.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF (integer)``
 | |
|     Reaction coefficient for MFC rate control. Applicable to encoders.
 | |
| 
 | |
|     .. note::
 | |
| 
 | |
|        #. Valid only when the frame level RC is enabled.
 | |
| 
 | |
|        #. For tight CBR, this field must be small (ex. 2 ~ 10). For
 | |
| 	  VBR, this field must be large (ex. 100 ~ 1000).
 | |
| 
 | |
|        #. It is not recommended to use the greater number than
 | |
| 	  FRAME_RATE * (10^9 / BIT_RATE).
 | |
| 
 | |
| ``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK (boolean)``
 | |
|     Adaptive rate control for dark region. Valid only when H.264 and
 | |
|     macroblock level RC is enabled
 | |
|     (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264
 | |
|     encoder.
 | |
| 
 | |
| ``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH (boolean)``
 | |
|     Adaptive rate control for smooth region. Valid only when H.264 and
 | |
|     macroblock level RC is enabled
 | |
|     (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264
 | |
|     encoder.
 | |
| 
 | |
| ``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (boolean)``
 | |
|     Adaptive rate control for static region. Valid only when H.264 and
 | |
|     macroblock level RC is enabled
 | |
|     (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264
 | |
|     encoder.
 | |
| 
 | |
| ``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY (boolean)``
 | |
|     Adaptive rate control for activity region. Valid only when H.264 and
 | |
|     macroblock level RC is enabled
 | |
|     (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264
 | |
|     encoder.
 | |
| 
 | |
| .. _v4l2-mpeg-mfc51-video-frame-skip-mode:
 | |
| 
 | |
| ``V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_mfc51_video_frame_skip_mode -
 | |
|     Indicates in what conditions the encoder should skip frames. If
 | |
|     encoding a frame would cause the encoded stream to be larger then a
 | |
|     chosen data limit then the frame will be skipped. Possible values
 | |
|     are:
 | |
| 
 | |
| 
 | |
| .. tabularcolumns:: |p{9.0cm}|p{8.5cm}|
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_DISABLED``
 | |
|       - Frame skip mode is disabled.
 | |
|     * - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_LEVEL_LIMIT``
 | |
|       - Frame skip mode enabled and buffer limit is set by the chosen
 | |
| 	level and is defined by the standard.
 | |
|     * - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_BUF_LIMIT``
 | |
|       - Frame skip mode enabled and buffer limit is set by the VBV
 | |
| 	(MPEG1/2/4) or CPB (H264) buffer size control.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT (integer)``
 | |
|     Enable rate-control with fixed target bit. If this setting is
 | |
|     enabled, then the rate control logic of the encoder will calculate
 | |
|     the average bitrate for a GOP and keep it below or equal the set
 | |
|     bitrate target. Otherwise the rate control logic calculates the
 | |
|     overall average bitrate for the stream and keeps it below or equal
 | |
|     to the set bitrate. In the first case the average bitrate for the
 | |
|     whole stream will be smaller then the set bitrate. This is caused
 | |
|     because the average is calculated for smaller number of frames, on
 | |
|     the other hand enabling this setting will ensure that the stream
 | |
|     will meet tight bandwidth constraints. Applicable to encoders.
 | |
| 
 | |
| .. _v4l2-mpeg-mfc51-video-force-frame-type:
 | |
| 
 | |
| ``V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_mfc51_video_force_frame_type -
 | |
|     Force a frame type for the next queued buffer. Applicable to
 | |
|     encoders. Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_DISABLED``
 | |
|       - Forcing a specific frame type disabled.
 | |
|     * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_I_FRAME``
 | |
|       - Force an I-frame.
 | |
|     * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_NOT_CODED``
 | |
|       - Force a non-coded frame.
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| CX2341x MPEG Controls
 | |
| ---------------------
 | |
| 
 | |
| The following MPEG class controls deal with MPEG encoding settings that
 | |
| are specific to the Conexant CX23415 and CX23416 MPEG encoding chips.
 | |
| 
 | |
| 
 | |
| .. _cx2341x-control-id:
 | |
| 
 | |
| CX2341x Control IDs
 | |
| ^^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| .. _v4l2-mpeg-cx2341x-video-spatial-filter-mode:
 | |
| 
 | |
| ``V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_cx2341x_video_spatial_filter_mode -
 | |
|     Sets the Spatial Filter mode (default ``MANUAL``). Possible values
 | |
|     are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL``
 | |
|       - Choose the filter manually
 | |
|     * - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO``
 | |
|       - Choose the filter automatically
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (integer (0-15))``
 | |
|     The setting for the Spatial Filter. 0 = off, 15 = maximum. (Default
 | |
|     is 0.)
 | |
| 
 | |
| .. _luma-spatial-filter-type:
 | |
| 
 | |
| ``V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type -
 | |
|     Select the algorithm to use for the Luma Spatial Filter (default
 | |
|     ``1D_HOR``). Possible values:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. tabularcolumns:: |p{14.5cm}|p{3.0cm}|
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF``
 | |
|       - No filter
 | |
|     * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR``
 | |
|       - One-dimensional horizontal
 | |
|     * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT``
 | |
|       - One-dimensional vertical
 | |
|     * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE``
 | |
|       - Two-dimensional separable
 | |
|     * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE``
 | |
|       - Two-dimensional symmetrical non-separable
 | |
| 
 | |
| 
 | |
| 
 | |
| .. _chroma-spatial-filter-type:
 | |
| 
 | |
| ``V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type -
 | |
|     Select the algorithm for the Chroma Spatial Filter (default
 | |
|     ``1D_HOR``). Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF``
 | |
|       - No filter
 | |
|     * - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR``
 | |
|       - One-dimensional horizontal
 | |
| 
 | |
| 
 | |
| 
 | |
| .. _v4l2-mpeg-cx2341x-video-temporal-filter-mode:
 | |
| 
 | |
| ``V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_cx2341x_video_temporal_filter_mode -
 | |
|     Sets the Temporal Filter mode (default ``MANUAL``). Possible values
 | |
|     are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL``
 | |
|       - Choose the filter manually
 | |
|     * - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO``
 | |
|       - Choose the filter automatically
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (integer (0-31))``
 | |
|     The setting for the Temporal Filter. 0 = off, 31 = maximum. (Default
 | |
|     is 8 for full-scale capturing and 0 for scaled capturing.)
 | |
| 
 | |
| .. _v4l2-mpeg-cx2341x-video-median-filter-type:
 | |
| 
 | |
| ``V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_mpeg_cx2341x_video_median_filter_type -
 | |
|     Median Filter Type (default ``OFF``). Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF``
 | |
|       - No filter
 | |
|     * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR``
 | |
|       - Horizontal filter
 | |
|     * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT``
 | |
|       - Vertical filter
 | |
|     * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT``
 | |
|       - Horizontal and vertical filter
 | |
|     * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG``
 | |
|       - Diagonal filter
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (integer (0-255))``
 | |
|     Threshold above which the luminance median filter is enabled
 | |
|     (default 0)
 | |
| 
 | |
| ``V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (integer (0-255))``
 | |
|     Threshold below which the luminance median filter is enabled
 | |
|     (default 255)
 | |
| 
 | |
| ``V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (integer (0-255))``
 | |
|     Threshold above which the chroma median filter is enabled (default
 | |
|     0)
 | |
| 
 | |
| ``V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (integer (0-255))``
 | |
|     Threshold below which the chroma median filter is enabled (default
 | |
|     255)
 | |
| 
 | |
| ``V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (boolean)``
 | |
|     The CX2341X MPEG encoder can insert one empty MPEG-2 PES packet into
 | |
|     the stream between every four video frames. The packet size is 2048
 | |
|     bytes, including the packet_start_code_prefix and stream_id
 | |
|     fields. The stream_id is 0xBF (private stream 2). The payload
 | |
|     consists of 0x00 bytes, to be filled in by the application. 0 = do
 | |
|     not insert, 1 = insert packets.
 | |
| 
 | |
| 
 | |
| VPX Control Reference
 | |
| ---------------------
 | |
| 
 | |
| The VPX controls include controls for encoding parameters of VPx video
 | |
| codec.
 | |
| 
 | |
| 
 | |
| .. _vpx-control-id:
 | |
| 
 | |
| VPX Control IDs
 | |
| ^^^^^^^^^^^^^^^
 | |
| 
 | |
| .. _v4l2-vpx-num-partitions:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_vp8_num_partitions -
 | |
|     The number of token partitions to use in VP8 encoder. Possible
 | |
|     values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION``
 | |
|       - 1 coefficient partition
 | |
|     * - ``V4L2_CID_MPEG_VIDEO_VPX_2_PARTITIONS``
 | |
|       - 2 coefficient partitions
 | |
|     * - ``V4L2_CID_MPEG_VIDEO_VPX_4_PARTITIONS``
 | |
|       - 4 coefficient partitions
 | |
|     * - ``V4L2_CID_MPEG_VIDEO_VPX_8_PARTITIONS``
 | |
|       - 8 coefficient partitions
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4 (boolean)``
 | |
|     Setting this prevents intra 4x4 mode in the intra mode decision.
 | |
| 
 | |
| .. _v4l2-vpx-num-ref-frames:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_vp8_num_ref_frames -
 | |
|     The number of reference pictures for encoding P frames. Possible
 | |
|     values are:
 | |
| 
 | |
| .. tabularcolumns:: |p{7.9cm}|p{9.6cm}|
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME``
 | |
|       - Last encoded frame will be searched
 | |
|     * - ``V4L2_CID_MPEG_VIDEO_VPX_2_REF_FRAME``
 | |
|       - Two frames will be searched among the last encoded frame, the
 | |
| 	golden frame and the alternate reference (altref) frame. The
 | |
| 	encoder implementation will decide which two are chosen.
 | |
|     * - ``V4L2_CID_MPEG_VIDEO_VPX_3_REF_FRAME``
 | |
|       - The last encoded frame, the golden frame and the altref frame will
 | |
| 	be searched.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL (integer)``
 | |
|     Indicates the loop filter level. The adjustment of the loop filter
 | |
|     level is done via a delta value against a baseline loop filter
 | |
|     value.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS (integer)``
 | |
|     This parameter affects the loop filter. Anything above zero weakens
 | |
|     the deblocking effect on the loop filter.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD (integer)``
 | |
|     Sets the refresh period for the golden frame. The period is defined
 | |
|     in number of frames. For a value of 'n', every nth frame starting
 | |
|     from the first key frame will be taken as a golden frame. For eg.
 | |
|     for encoding sequence of 0, 1, 2, 3, 4, 5, 6, 7 where the golden
 | |
|     frame refresh period is set as 4, the frames 0, 4, 8 etc will be
 | |
|     taken as the golden frames as frame 0 is always a key frame.
 | |
| 
 | |
| .. _v4l2-vpx-golden-frame-sel:
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_vp8_golden_frame_sel -
 | |
|     Selects the golden frame for encoding. Possible values are:
 | |
| 
 | |
| .. raw:: latex
 | |
| 
 | |
|     \begin{adjustbox}{width=\columnwidth}
 | |
| 
 | |
| .. tabularcolumns:: |p{11.0cm}|p{10.0cm}|
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV``
 | |
|       - Use the (n-2)th frame as a golden frame, current frame index being
 | |
| 	'n'.
 | |
|     * - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD``
 | |
|       - Use the previous specific frame indicated by
 | |
| 	``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD`` as a
 | |
| 	golden frame.
 | |
| 
 | |
| .. raw:: latex
 | |
| 
 | |
|     \end{adjustbox}
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (integer)``
 | |
|     Minimum quantization parameter for VP8.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (integer)``
 | |
|     Maximum quantization parameter for VP8.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (integer)``
 | |
|     Quantization parameter for an I frame for VP8.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (integer)``
 | |
|     Quantization parameter for a P frame for VP8.
 | |
| 
 | |
| ``V4L2_CID_MPEG_VIDEO_VPX_PROFILE (integer)``
 | |
|     Select the desired profile for VPx encoder. Acceptable values are 0,
 | |
|     1, 2 and 3 corresponding to encoder profiles 0, 1, 2 and 3.
 | |
| 
 | |
| 
 | |
| .. _camera-controls:
 | |
| 
 | |
| Camera Control Reference
 | |
| ========================
 | |
| 
 | |
| The Camera class includes controls for mechanical (or equivalent
 | |
| digital) features of a device such as controllable lenses or sensors.
 | |
| 
 | |
| 
 | |
| .. _camera-control-id:
 | |
| 
 | |
| Camera Control IDs
 | |
| ------------------
 | |
| 
 | |
| ``V4L2_CID_CAMERA_CLASS (class)``
 | |
|     The Camera class descriptor. Calling
 | |
|     :ref:`VIDIOC_QUERYCTRL` for this control will
 | |
|     return a description of this control class.
 | |
| 
 | |
| .. _v4l2-exposure-auto-type:
 | |
| 
 | |
| ``V4L2_CID_EXPOSURE_AUTO``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_exposure_auto_type -
 | |
|     Enables automatic adjustments of the exposure time and/or iris
 | |
|     aperture. The effect of manual changes of the exposure time or iris
 | |
|     aperture while these features are enabled is undefined, drivers
 | |
|     should ignore such requests. Possible values are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_EXPOSURE_AUTO``
 | |
|       - Automatic exposure time, automatic iris aperture.
 | |
|     * - ``V4L2_EXPOSURE_MANUAL``
 | |
|       - Manual exposure time, manual iris.
 | |
|     * - ``V4L2_EXPOSURE_SHUTTER_PRIORITY``
 | |
|       - Manual exposure time, auto iris.
 | |
|     * - ``V4L2_EXPOSURE_APERTURE_PRIORITY``
 | |
|       - Auto exposure time, manual iris.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_EXPOSURE_ABSOLUTE (integer)``
 | |
|     Determines the exposure time of the camera sensor. The exposure time
 | |
|     is limited by the frame interval. Drivers should interpret the
 | |
|     values as 100 µs units, where the value 1 stands for 1/10000th of a
 | |
|     second, 10000 for 1 second and 100000 for 10 seconds.
 | |
| 
 | |
| ``V4L2_CID_EXPOSURE_AUTO_PRIORITY (boolean)``
 | |
|     When ``V4L2_CID_EXPOSURE_AUTO`` is set to ``AUTO`` or
 | |
|     ``APERTURE_PRIORITY``, this control determines if the device may
 | |
|     dynamically vary the frame rate. By default this feature is disabled
 | |
|     (0) and the frame rate must remain constant.
 | |
| 
 | |
| ``V4L2_CID_EXPOSURE_BIAS (integer menu)``
 | |
|     Determines the automatic exposure compensation, it is effective only
 | |
|     when ``V4L2_CID_EXPOSURE_AUTO`` control is set to ``AUTO``,
 | |
|     ``SHUTTER_PRIORITY`` or ``APERTURE_PRIORITY``. It is expressed in
 | |
|     terms of EV, drivers should interpret the values as 0.001 EV units,
 | |
|     where the value 1000 stands for +1 EV.
 | |
| 
 | |
|     Increasing the exposure compensation value is equivalent to
 | |
|     decreasing the exposure value (EV) and will increase the amount of
 | |
|     light at the image sensor. The camera performs the exposure
 | |
|     compensation by adjusting absolute exposure time and/or aperture.
 | |
| 
 | |
| .. _v4l2-exposure-metering:
 | |
| 
 | |
| ``V4L2_CID_EXPOSURE_METERING``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_exposure_metering -
 | |
|     Determines how the camera measures the amount of light available for
 | |
|     the frame exposure. Possible values are:
 | |
| 
 | |
| .. tabularcolumns:: |p{8.5cm}|p{9.0cm}|
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_EXPOSURE_METERING_AVERAGE``
 | |
|       - Use the light information coming from the entire frame and average
 | |
| 	giving no weighting to any particular portion of the metered area.
 | |
|     * - ``V4L2_EXPOSURE_METERING_CENTER_WEIGHTED``
 | |
|       - Average the light information coming from the entire frame giving
 | |
| 	priority to the center of the metered area.
 | |
|     * - ``V4L2_EXPOSURE_METERING_SPOT``
 | |
|       - Measure only very small area at the center of the frame.
 | |
|     * - ``V4L2_EXPOSURE_METERING_MATRIX``
 | |
|       - A multi-zone metering. The light intensity is measured in several
 | |
| 	points of the frame and the results are combined. The algorithm of
 | |
| 	the zones selection and their significance in calculating the
 | |
| 	final value is device dependent.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_PAN_RELATIVE (integer)``
 | |
|     This control turns the camera horizontally by the specified amount.
 | |
|     The unit is undefined. A positive value moves the camera to the
 | |
|     right (clockwise when viewed from above), a negative value to the
 | |
|     left. A value of zero does not cause motion. This is a write-only
 | |
|     control.
 | |
| 
 | |
| ``V4L2_CID_TILT_RELATIVE (integer)``
 | |
|     This control turns the camera vertically by the specified amount.
 | |
|     The unit is undefined. A positive value moves the camera up, a
 | |
|     negative value down. A value of zero does not cause motion. This is
 | |
|     a write-only control.
 | |
| 
 | |
| ``V4L2_CID_PAN_RESET (button)``
 | |
|     When this control is set, the camera moves horizontally to the
 | |
|     default position.
 | |
| 
 | |
| ``V4L2_CID_TILT_RESET (button)``
 | |
|     When this control is set, the camera moves vertically to the default
 | |
|     position.
 | |
| 
 | |
| ``V4L2_CID_PAN_ABSOLUTE (integer)``
 | |
|     This control turns the camera horizontally to the specified
 | |
|     position. Positive values move the camera to the right (clockwise
 | |
|     when viewed from above), negative values to the left. Drivers should
 | |
|     interpret the values as arc seconds, with valid values between -180
 | |
|     * 3600 and +180 * 3600 inclusive.
 | |
| 
 | |
| ``V4L2_CID_TILT_ABSOLUTE (integer)``
 | |
|     This control turns the camera vertically to the specified position.
 | |
|     Positive values move the camera up, negative values down. Drivers
 | |
|     should interpret the values as arc seconds, with valid values
 | |
|     between -180 * 3600 and +180 * 3600 inclusive.
 | |
| 
 | |
| ``V4L2_CID_FOCUS_ABSOLUTE (integer)``
 | |
|     This control sets the focal point of the camera to the specified
 | |
|     position. The unit is undefined. Positive values set the focus
 | |
|     closer to the camera, negative values towards infinity.
 | |
| 
 | |
| ``V4L2_CID_FOCUS_RELATIVE (integer)``
 | |
|     This control moves the focal point of the camera by the specified
 | |
|     amount. The unit is undefined. Positive values move the focus closer
 | |
|     to the camera, negative values towards infinity. This is a
 | |
|     write-only control.
 | |
| 
 | |
| ``V4L2_CID_FOCUS_AUTO (boolean)``
 | |
|     Enables continuous automatic focus adjustments. The effect of manual
 | |
|     focus adjustments while this feature is enabled is undefined,
 | |
|     drivers should ignore such requests.
 | |
| 
 | |
| ``V4L2_CID_AUTO_FOCUS_START (button)``
 | |
|     Starts single auto focus process. The effect of setting this control
 | |
|     when ``V4L2_CID_FOCUS_AUTO`` is set to ``TRUE`` (1) is undefined,
 | |
|     drivers should ignore such requests.
 | |
| 
 | |
| ``V4L2_CID_AUTO_FOCUS_STOP (button)``
 | |
|     Aborts automatic focusing started with ``V4L2_CID_AUTO_FOCUS_START``
 | |
|     control. It is effective only when the continuous autofocus is
 | |
|     disabled, that is when ``V4L2_CID_FOCUS_AUTO`` control is set to
 | |
|     ``FALSE`` (0).
 | |
| 
 | |
| .. _v4l2-auto-focus-status:
 | |
| 
 | |
| ``V4L2_CID_AUTO_FOCUS_STATUS (bitmask)``
 | |
|     The automatic focus status. This is a read-only control.
 | |
| 
 | |
|     Setting ``V4L2_LOCK_FOCUS`` lock bit of the ``V4L2_CID_3A_LOCK``
 | |
|     control may stop updates of the ``V4L2_CID_AUTO_FOCUS_STATUS``
 | |
|     control value.
 | |
| 
 | |
| .. tabularcolumns:: |p{6.5cm}|p{11.0cm}|
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_AUTO_FOCUS_STATUS_IDLE``
 | |
|       - Automatic focus is not active.
 | |
|     * - ``V4L2_AUTO_FOCUS_STATUS_BUSY``
 | |
|       - Automatic focusing is in progress.
 | |
|     * - ``V4L2_AUTO_FOCUS_STATUS_REACHED``
 | |
|       - Focus has been reached.
 | |
|     * - ``V4L2_AUTO_FOCUS_STATUS_FAILED``
 | |
|       - Automatic focus has failed, the driver will not transition from
 | |
| 	this state until another action is performed by an application.
 | |
| 
 | |
| 
 | |
| 
 | |
| .. _v4l2-auto-focus-range:
 | |
| 
 | |
| ``V4L2_CID_AUTO_FOCUS_RANGE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_auto_focus_range -
 | |
|     Determines auto focus distance range for which lens may be adjusted.
 | |
| 
 | |
| .. tabularcolumns:: |p{6.5cm}|p{11.0cm}|
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_AUTO_FOCUS_RANGE_AUTO``
 | |
|       - The camera automatically selects the focus range.
 | |
|     * - ``V4L2_AUTO_FOCUS_RANGE_NORMAL``
 | |
|       - Normal distance range, limited for best automatic focus
 | |
| 	performance.
 | |
|     * - ``V4L2_AUTO_FOCUS_RANGE_MACRO``
 | |
|       - Macro (close-up) auto focus. The camera will use its minimum
 | |
| 	possible distance for auto focus.
 | |
|     * - ``V4L2_AUTO_FOCUS_RANGE_INFINITY``
 | |
|       - The lens is set to focus on an object at infinite distance.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_ZOOM_ABSOLUTE (integer)``
 | |
|     Specify the objective lens focal length as an absolute value. The
 | |
|     zoom unit is driver-specific and its value should be a positive
 | |
|     integer.
 | |
| 
 | |
| ``V4L2_CID_ZOOM_RELATIVE (integer)``
 | |
|     Specify the objective lens focal length relatively to the current
 | |
|     value. Positive values move the zoom lens group towards the
 | |
|     telephoto direction, negative values towards the wide-angle
 | |
|     direction. The zoom unit is driver-specific. This is a write-only
 | |
|     control.
 | |
| 
 | |
| ``V4L2_CID_ZOOM_CONTINUOUS (integer)``
 | |
|     Move the objective lens group at the specified speed until it
 | |
|     reaches physical device limits or until an explicit request to stop
 | |
|     the movement. A positive value moves the zoom lens group towards the
 | |
|     telephoto direction. A value of zero stops the zoom lens group
 | |
|     movement. A negative value moves the zoom lens group towards the
 | |
|     wide-angle direction. The zoom speed unit is driver-specific.
 | |
| 
 | |
| ``V4L2_CID_IRIS_ABSOLUTE (integer)``
 | |
|     This control sets the camera's aperture to the specified value. The
 | |
|     unit is undefined. Larger values open the iris wider, smaller values
 | |
|     close it.
 | |
| 
 | |
| ``V4L2_CID_IRIS_RELATIVE (integer)``
 | |
|     This control modifies the camera's aperture by the specified amount.
 | |
|     The unit is undefined. Positive values open the iris one step
 | |
|     further, negative values close it one step further. This is a
 | |
|     write-only control.
 | |
| 
 | |
| ``V4L2_CID_PRIVACY (boolean)``
 | |
|     Prevent video from being acquired by the camera. When this control
 | |
|     is set to ``TRUE`` (1), no image can be captured by the camera.
 | |
|     Common means to enforce privacy are mechanical obturation of the
 | |
|     sensor and firmware image processing, but the device is not
 | |
|     restricted to these methods. Devices that implement the privacy
 | |
|     control must support read access and may support write access.
 | |
| 
 | |
| ``V4L2_CID_BAND_STOP_FILTER (integer)``
 | |
|     Switch the band-stop filter of a camera sensor on or off, or specify
 | |
|     its strength. Such band-stop filters can be used, for example, to
 | |
|     filter out the fluorescent light component.
 | |
| 
 | |
| .. _v4l2-auto-n-preset-white-balance:
 | |
| 
 | |
| ``V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_auto_n_preset_white_balance -
 | |
|     Sets white balance to automatic, manual or a preset. The presets
 | |
|     determine color temperature of the light as a hint to the camera for
 | |
|     white balance adjustments resulting in most accurate color
 | |
|     representation. The following white balance presets are listed in
 | |
|     order of increasing color temperature.
 | |
| 
 | |
| .. tabularcolumns:: |p{7.0 cm}|p{10.5cm}|
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_WHITE_BALANCE_MANUAL``
 | |
|       - Manual white balance.
 | |
|     * - ``V4L2_WHITE_BALANCE_AUTO``
 | |
|       - Automatic white balance adjustments.
 | |
|     * - ``V4L2_WHITE_BALANCE_INCANDESCENT``
 | |
|       - White balance setting for incandescent (tungsten) lighting. It
 | |
| 	generally cools down the colors and corresponds approximately to
 | |
| 	2500...3500 K color temperature range.
 | |
|     * - ``V4L2_WHITE_BALANCE_FLUORESCENT``
 | |
|       - White balance preset for fluorescent lighting. It corresponds
 | |
| 	approximately to 4000...5000 K color temperature.
 | |
|     * - ``V4L2_WHITE_BALANCE_FLUORESCENT_H``
 | |
|       - With this setting the camera will compensate for fluorescent H
 | |
| 	lighting.
 | |
|     * - ``V4L2_WHITE_BALANCE_HORIZON``
 | |
|       - White balance setting for horizon daylight. It corresponds
 | |
| 	approximately to 5000 K color temperature.
 | |
|     * - ``V4L2_WHITE_BALANCE_DAYLIGHT``
 | |
|       - White balance preset for daylight (with clear sky). It corresponds
 | |
| 	approximately to 5000...6500 K color temperature.
 | |
|     * - ``V4L2_WHITE_BALANCE_FLASH``
 | |
|       - With this setting the camera will compensate for the flash light.
 | |
| 	It slightly warms up the colors and corresponds roughly to
 | |
| 	5000...5500 K color temperature.
 | |
|     * - ``V4L2_WHITE_BALANCE_CLOUDY``
 | |
|       - White balance preset for moderately overcast sky. This option
 | |
| 	corresponds approximately to 6500...8000 K color temperature
 | |
| 	range.
 | |
|     * - ``V4L2_WHITE_BALANCE_SHADE``
 | |
|       - White balance preset for shade or heavily overcast sky. It
 | |
| 	corresponds approximately to 9000...10000 K color temperature.
 | |
| 
 | |
| 
 | |
| 
 | |
| .. _v4l2-wide-dynamic-range:
 | |
| 
 | |
| ``V4L2_CID_WIDE_DYNAMIC_RANGE (boolean)``
 | |
|     Enables or disables the camera's wide dynamic range feature. This
 | |
|     feature allows to obtain clear images in situations where intensity
 | |
|     of the illumination varies significantly throughout the scene, i.e.
 | |
|     there are simultaneously very dark and very bright areas. It is most
 | |
|     commonly realized in cameras by combining two subsequent frames with
 | |
|     different exposure times.  [#f1]_
 | |
| 
 | |
| .. _v4l2-image-stabilization:
 | |
| 
 | |
| ``V4L2_CID_IMAGE_STABILIZATION (boolean)``
 | |
|     Enables or disables image stabilization.
 | |
| 
 | |
| ``V4L2_CID_ISO_SENSITIVITY (integer menu)``
 | |
|     Determines ISO equivalent of an image sensor indicating the sensor's
 | |
|     sensitivity to light. The numbers are expressed in arithmetic scale,
 | |
|     as per :ref:`iso12232` standard, where doubling the sensor
 | |
|     sensitivity is represented by doubling the numerical ISO value.
 | |
|     Applications should interpret the values as standard ISO values
 | |
|     multiplied by 1000, e.g. control value 800 stands for ISO 0.8.
 | |
|     Drivers will usually support only a subset of standard ISO values.
 | |
|     The effect of setting this control while the
 | |
|     ``V4L2_CID_ISO_SENSITIVITY_AUTO`` control is set to a value other
 | |
|     than ``V4L2_CID_ISO_SENSITIVITY_MANUAL`` is undefined, drivers
 | |
|     should ignore such requests.
 | |
| 
 | |
| .. _v4l2-iso-sensitivity-auto-type:
 | |
| 
 | |
| ``V4L2_CID_ISO_SENSITIVITY_AUTO``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_iso_sensitivity_type -
 | |
|     Enables or disables automatic ISO sensitivity adjustments.
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_CID_ISO_SENSITIVITY_MANUAL``
 | |
|       - Manual ISO sensitivity.
 | |
|     * - ``V4L2_CID_ISO_SENSITIVITY_AUTO``
 | |
|       - Automatic ISO sensitivity adjustments.
 | |
| 
 | |
| 
 | |
| 
 | |
| .. _v4l2-scene-mode:
 | |
| 
 | |
| ``V4L2_CID_SCENE_MODE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_scene_mode -
 | |
|     This control allows to select scene programs as the camera automatic
 | |
|     modes optimized for common shooting scenes. Within these modes the
 | |
|     camera determines best exposure, aperture, focusing, light metering,
 | |
|     white balance and equivalent sensitivity. The controls of those
 | |
|     parameters are influenced by the scene mode control. An exact
 | |
|     behavior in each mode is subject to the camera specification.
 | |
| 
 | |
|     When the scene mode feature is not used, this control should be set
 | |
|     to ``V4L2_SCENE_MODE_NONE`` to make sure the other possibly related
 | |
|     controls are accessible. The following scene programs are defined:
 | |
| 
 | |
| .. tabularcolumns:: |p{6.0cm}|p{11.5cm}|
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_SCENE_MODE_NONE``
 | |
|       - The scene mode feature is disabled.
 | |
|     * - ``V4L2_SCENE_MODE_BACKLIGHT``
 | |
|       - Backlight. Compensates for dark shadows when light is coming from
 | |
| 	behind a subject, also by automatically turning on the flash.
 | |
|     * - ``V4L2_SCENE_MODE_BEACH_SNOW``
 | |
|       - Beach and snow. This mode compensates for all-white or bright
 | |
| 	scenes, which tend to look gray and low contrast, when camera's
 | |
| 	automatic exposure is based on an average scene brightness. To
 | |
| 	compensate, this mode automatically slightly overexposes the
 | |
| 	frames. The white balance may also be adjusted to compensate for
 | |
| 	the fact that reflected snow looks bluish rather than white.
 | |
|     * - ``V4L2_SCENE_MODE_CANDLELIGHT``
 | |
|       - Candle light. The camera generally raises the ISO sensitivity and
 | |
| 	lowers the shutter speed. This mode compensates for relatively
 | |
| 	close subject in the scene. The flash is disabled in order to
 | |
| 	preserve the ambiance of the light.
 | |
|     * - ``V4L2_SCENE_MODE_DAWN_DUSK``
 | |
|       - Dawn and dusk. Preserves the colors seen in low natural light
 | |
| 	before dusk and after down. The camera may turn off the flash, and
 | |
| 	automatically focus at infinity. It will usually boost saturation
 | |
| 	and lower the shutter speed.
 | |
|     * - ``V4L2_SCENE_MODE_FALL_COLORS``
 | |
|       - Fall colors. Increases saturation and adjusts white balance for
 | |
| 	color enhancement. Pictures of autumn leaves get saturated reds
 | |
| 	and yellows.
 | |
|     * - ``V4L2_SCENE_MODE_FIREWORKS``
 | |
|       - Fireworks. Long exposure times are used to capture the expanding
 | |
| 	burst of light from a firework. The camera may invoke image
 | |
| 	stabilization.
 | |
|     * - ``V4L2_SCENE_MODE_LANDSCAPE``
 | |
|       - Landscape. The camera may choose a small aperture to provide deep
 | |
| 	depth of field and long exposure duration to help capture detail
 | |
| 	in dim light conditions. The focus is fixed at infinity. Suitable
 | |
| 	for distant and wide scenery.
 | |
|     * - ``V4L2_SCENE_MODE_NIGHT``
 | |
|       - Night, also known as Night Landscape. Designed for low light
 | |
| 	conditions, it preserves detail in the dark areas without blowing
 | |
| 	out bright objects. The camera generally sets itself to a
 | |
| 	medium-to-high ISO sensitivity, with a relatively long exposure
 | |
| 	time, and turns flash off. As such, there will be increased image
 | |
| 	noise and the possibility of blurred image.
 | |
|     * - ``V4L2_SCENE_MODE_PARTY_INDOOR``
 | |
|       - Party and indoor. Designed to capture indoor scenes that are lit
 | |
| 	by indoor background lighting as well as the flash. The camera
 | |
| 	usually increases ISO sensitivity, and adjusts exposure for the
 | |
| 	low light conditions.
 | |
|     * - ``V4L2_SCENE_MODE_PORTRAIT``
 | |
|       - Portrait. The camera adjusts the aperture so that the depth of
 | |
| 	field is reduced, which helps to isolate the subject against a
 | |
| 	smooth background. Most cameras recognize the presence of faces in
 | |
| 	the scene and focus on them. The color hue is adjusted to enhance
 | |
| 	skin tones. The intensity of the flash is often reduced.
 | |
|     * - ``V4L2_SCENE_MODE_SPORTS``
 | |
|       - Sports. Significantly increases ISO and uses a fast shutter speed
 | |
| 	to freeze motion of rapidly-moving subjects. Increased image noise
 | |
| 	may be seen in this mode.
 | |
|     * - ``V4L2_SCENE_MODE_SUNSET``
 | |
|       - Sunset. Preserves deep hues seen in sunsets and sunrises. It bumps
 | |
| 	up the saturation.
 | |
|     * - ``V4L2_SCENE_MODE_TEXT``
 | |
|       - Text. It applies extra contrast and sharpness, it is typically a
 | |
| 	black-and-white mode optimized for readability. Automatic focus
 | |
| 	may be switched to close-up mode and this setting may also involve
 | |
| 	some lens-distortion correction.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_3A_LOCK (bitmask)``
 | |
|     This control locks or unlocks the automatic focus, exposure and
 | |
|     white balance. The automatic adjustments can be paused independently
 | |
|     by setting the corresponding lock bit to 1. The camera then retains
 | |
|     the settings until the lock bit is cleared. The following lock bits
 | |
|     are defined:
 | |
| 
 | |
|     When a given algorithm is not enabled, drivers should ignore
 | |
|     requests to lock it and should return no error. An example might be
 | |
|     an application setting bit ``V4L2_LOCK_WHITE_BALANCE`` when the
 | |
|     ``V4L2_CID_AUTO_WHITE_BALANCE`` control is set to ``FALSE``. The
 | |
|     value of this control may be changed by exposure, white balance or
 | |
|     focus controls.
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_LOCK_EXPOSURE``
 | |
|       - Automatic exposure adjustments lock.
 | |
|     * - ``V4L2_LOCK_WHITE_BALANCE``
 | |
|       - Automatic white balance adjustments lock.
 | |
|     * - ``V4L2_LOCK_FOCUS``
 | |
|       - Automatic focus lock.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_PAN_SPEED (integer)``
 | |
|     This control turns the camera horizontally at the specific speed.
 | |
|     The unit is undefined. A positive value moves the camera to the
 | |
|     right (clockwise when viewed from above), a negative value to the
 | |
|     left. A value of zero stops the motion if one is in progress and has
 | |
|     no effect otherwise.
 | |
| 
 | |
| ``V4L2_CID_TILT_SPEED (integer)``
 | |
|     This control turns the camera vertically at the specified speed. The
 | |
|     unit is undefined. A positive value moves the camera up, a negative
 | |
|     value down. A value of zero stops the motion if one is in progress
 | |
|     and has no effect otherwise.
 | |
| 
 | |
| 
 | |
| .. _fm-tx-controls:
 | |
| 
 | |
| FM Transmitter Control Reference
 | |
| ================================
 | |
| 
 | |
| The FM Transmitter (FM_TX) class includes controls for common features
 | |
| of FM transmissions capable devices. Currently this class includes
 | |
| parameters for audio compression, pilot tone generation, audio deviation
 | |
| limiter, RDS transmission and tuning power features.
 | |
| 
 | |
| 
 | |
| .. _fm-tx-control-id:
 | |
| 
 | |
| FM_TX Control IDs
 | |
| -----------------
 | |
| 
 | |
| ``V4L2_CID_FM_TX_CLASS (class)``
 | |
|     The FM_TX class descriptor. Calling
 | |
|     :ref:`VIDIOC_QUERYCTRL` for this control will
 | |
|     return a description of this control class.
 | |
| 
 | |
| ``V4L2_CID_RDS_TX_DEVIATION (integer)``
 | |
|     Configures RDS signal frequency deviation level in Hz. The range and
 | |
|     step are driver-specific.
 | |
| 
 | |
| ``V4L2_CID_RDS_TX_PI (integer)``
 | |
|     Sets the RDS Programme Identification field for transmission.
 | |
| 
 | |
| ``V4L2_CID_RDS_TX_PTY (integer)``
 | |
|     Sets the RDS Programme Type field for transmission. This encodes up
 | |
|     to 31 pre-defined programme types.
 | |
| 
 | |
| ``V4L2_CID_RDS_TX_PS_NAME (string)``
 | |
|     Sets the Programme Service name (PS_NAME) for transmission. It is
 | |
|     intended for static display on a receiver. It is the primary aid to
 | |
|     listeners in programme service identification and selection. In
 | |
|     Annex E of :ref:`iec62106`, the RDS specification, there is a full
 | |
|     description of the correct character encoding for Programme Service
 | |
|     name strings. Also from RDS specification, PS is usually a single
 | |
|     eight character text. However, it is also possible to find receivers
 | |
|     which can scroll strings sized as 8 x N characters. So, this control
 | |
|     must be configured with steps of 8 characters. The result is it must
 | |
|     always contain a string with size multiple of 8.
 | |
| 
 | |
| ``V4L2_CID_RDS_TX_RADIO_TEXT (string)``
 | |
|     Sets the Radio Text info for transmission. It is a textual
 | |
|     description of what is being broadcasted. RDS Radio Text can be
 | |
|     applied when broadcaster wishes to transmit longer PS names,
 | |
|     programme-related information or any other text. In these cases,
 | |
|     RadioText should be used in addition to ``V4L2_CID_RDS_TX_PS_NAME``.
 | |
|     The encoding for Radio Text strings is also fully described in Annex
 | |
|     E of :ref:`iec62106`. The length of Radio Text strings depends on
 | |
|     which RDS Block is being used to transmit it, either 32 (2A block)
 | |
|     or 64 (2B block). However, it is also possible to find receivers
 | |
|     which can scroll strings sized as 32 x N or 64 x N characters. So,
 | |
|     this control must be configured with steps of 32 or 64 characters.
 | |
|     The result is it must always contain a string with size multiple of
 | |
|     32 or 64.
 | |
| 
 | |
| ``V4L2_CID_RDS_TX_MONO_STEREO (boolean)``
 | |
|     Sets the Mono/Stereo bit of the Decoder Identification code. If set,
 | |
|     then the audio was recorded as stereo.
 | |
| 
 | |
| ``V4L2_CID_RDS_TX_ARTIFICIAL_HEAD (boolean)``
 | |
|     Sets the
 | |
|     `Artificial Head <http://en.wikipedia.org/wiki/Artificial_head>`__
 | |
|     bit of the Decoder Identification code. If set, then the audio was
 | |
|     recorded using an artificial head.
 | |
| 
 | |
| ``V4L2_CID_RDS_TX_COMPRESSED (boolean)``
 | |
|     Sets the Compressed bit of the Decoder Identification code. If set,
 | |
|     then the audio is compressed.
 | |
| 
 | |
| ``V4L2_CID_RDS_TX_DYNAMIC_PTY (boolean)``
 | |
|     Sets the Dynamic PTY bit of the Decoder Identification code. If set,
 | |
|     then the PTY code is dynamically switched.
 | |
| 
 | |
| ``V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT (boolean)``
 | |
|     If set, then a traffic announcement is in progress.
 | |
| 
 | |
| ``V4L2_CID_RDS_TX_TRAFFIC_PROGRAM (boolean)``
 | |
|     If set, then the tuned programme carries traffic announcements.
 | |
| 
 | |
| ``V4L2_CID_RDS_TX_MUSIC_SPEECH (boolean)``
 | |
|     If set, then this channel broadcasts music. If cleared, then it
 | |
|     broadcasts speech. If the transmitter doesn't make this distinction,
 | |
|     then it should be set.
 | |
| 
 | |
| ``V4L2_CID_RDS_TX_ALT_FREQS_ENABLE (boolean)``
 | |
|     If set, then transmit alternate frequencies.
 | |
| 
 | |
| ``V4L2_CID_RDS_TX_ALT_FREQS (__u32 array)``
 | |
|     The alternate frequencies in kHz units. The RDS standard allows for
 | |
|     up to 25 frequencies to be defined. Drivers may support fewer
 | |
|     frequencies so check the array size.
 | |
| 
 | |
| ``V4L2_CID_AUDIO_LIMITER_ENABLED (boolean)``
 | |
|     Enables or disables the audio deviation limiter feature. The limiter
 | |
|     is useful when trying to maximize the audio volume, minimize
 | |
|     receiver-generated distortion and prevent overmodulation.
 | |
| 
 | |
| ``V4L2_CID_AUDIO_LIMITER_RELEASE_TIME (integer)``
 | |
|     Sets the audio deviation limiter feature release time. Unit is in
 | |
|     useconds. Step and range are driver-specific.
 | |
| 
 | |
| ``V4L2_CID_AUDIO_LIMITER_DEVIATION (integer)``
 | |
|     Configures audio frequency deviation level in Hz. The range and step
 | |
|     are driver-specific.
 | |
| 
 | |
| ``V4L2_CID_AUDIO_COMPRESSION_ENABLED (boolean)``
 | |
|     Enables or disables the audio compression feature. This feature
 | |
|     amplifies signals below the threshold by a fixed gain and compresses
 | |
|     audio signals above the threshold by the ratio of Threshold/(Gain +
 | |
|     Threshold).
 | |
| 
 | |
| ``V4L2_CID_AUDIO_COMPRESSION_GAIN (integer)``
 | |
|     Sets the gain for audio compression feature. It is a dB value. The
 | |
|     range and step are driver-specific.
 | |
| 
 | |
| ``V4L2_CID_AUDIO_COMPRESSION_THRESHOLD (integer)``
 | |
|     Sets the threshold level for audio compression freature. It is a dB
 | |
|     value. The range and step are driver-specific.
 | |
| 
 | |
| ``V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME (integer)``
 | |
|     Sets the attack time for audio compression feature. It is a useconds
 | |
|     value. The range and step are driver-specific.
 | |
| 
 | |
| ``V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME (integer)``
 | |
|     Sets the release time for audio compression feature. It is a
 | |
|     useconds value. The range and step are driver-specific.
 | |
| 
 | |
| ``V4L2_CID_PILOT_TONE_ENABLED (boolean)``
 | |
|     Enables or disables the pilot tone generation feature.
 | |
| 
 | |
| ``V4L2_CID_PILOT_TONE_DEVIATION (integer)``
 | |
|     Configures pilot tone frequency deviation level. Unit is in Hz. The
 | |
|     range and step are driver-specific.
 | |
| 
 | |
| ``V4L2_CID_PILOT_TONE_FREQUENCY (integer)``
 | |
|     Configures pilot tone frequency value. Unit is in Hz. The range and
 | |
|     step are driver-specific.
 | |
| 
 | |
| ``V4L2_CID_TUNE_PREEMPHASIS``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_preemphasis -
 | |
|     Configures the pre-emphasis value for broadcasting. A pre-emphasis
 | |
|     filter is applied to the broadcast to accentuate the high audio
 | |
|     frequencies. Depending on the region, a time constant of either 50
 | |
|     or 75 useconds is used. The enum v4l2_preemphasis defines possible
 | |
|     values for pre-emphasis. Here they are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_PREEMPHASIS_DISABLED``
 | |
|       - No pre-emphasis is applied.
 | |
|     * - ``V4L2_PREEMPHASIS_50_uS``
 | |
|       - A pre-emphasis of 50 uS is used.
 | |
|     * - ``V4L2_PREEMPHASIS_75_uS``
 | |
|       - A pre-emphasis of 75 uS is used.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_TUNE_POWER_LEVEL (integer)``
 | |
|     Sets the output power level for signal transmission. Unit is in
 | |
|     dBuV. Range and step are driver-specific.
 | |
| 
 | |
| ``V4L2_CID_TUNE_ANTENNA_CAPACITOR (integer)``
 | |
|     This selects the value of antenna tuning capacitor manually or
 | |
|     automatically if set to zero. Unit, range and step are
 | |
|     driver-specific.
 | |
| 
 | |
| For more details about RDS specification, refer to :ref:`iec62106`
 | |
| document, from CENELEC.
 | |
| 
 | |
| 
 | |
| .. _flash-controls:
 | |
| 
 | |
| Flash Control Reference
 | |
| =======================
 | |
| 
 | |
| The V4L2 flash controls are intended to provide generic access to flash
 | |
| controller devices. Flash controller devices are typically used in
 | |
| digital cameras.
 | |
| 
 | |
| The interface can support both LED and xenon flash devices. As of
 | |
| writing this, there is no xenon flash driver using this interface.
 | |
| 
 | |
| 
 | |
| .. _flash-controls-use-cases:
 | |
| 
 | |
| Supported use cases
 | |
| -------------------
 | |
| 
 | |
| 
 | |
| Unsynchronised LED flash (software strobe)
 | |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| Unsynchronised LED flash is controlled directly by the host as the
 | |
| sensor. The flash must be enabled by the host before the exposure of the
 | |
| image starts and disabled once it ends. The host is fully responsible
 | |
| for the timing of the flash.
 | |
| 
 | |
| Example of such device: Nokia N900.
 | |
| 
 | |
| 
 | |
| Synchronised LED flash (hardware strobe)
 | |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| The synchronised LED flash is pre-programmed by the host (power and
 | |
| timeout) but controlled by the sensor through a strobe signal from the
 | |
| sensor to the flash.
 | |
| 
 | |
| The sensor controls the flash duration and timing. This information
 | |
| typically must be made available to the sensor.
 | |
| 
 | |
| 
 | |
| LED flash as torch
 | |
| ^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| LED flash may be used as torch in conjunction with another use case
 | |
| involving camera or individually.
 | |
| 
 | |
| 
 | |
| .. _flash-control-id:
 | |
| 
 | |
| Flash Control IDs
 | |
| """""""""""""""""
 | |
| 
 | |
| ``V4L2_CID_FLASH_CLASS (class)``
 | |
|     The FLASH class descriptor.
 | |
| 
 | |
| ``V4L2_CID_FLASH_LED_MODE (menu)``
 | |
|     Defines the mode of the flash LED, the high-power white LED attached
 | |
|     to the flash controller. Setting this control may not be possible in
 | |
|     presence of some faults. See V4L2_CID_FLASH_FAULT.
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_FLASH_LED_MODE_NONE``
 | |
|       - Off.
 | |
|     * - ``V4L2_FLASH_LED_MODE_FLASH``
 | |
|       - Flash mode.
 | |
|     * - ``V4L2_FLASH_LED_MODE_TORCH``
 | |
|       - Torch mode. See V4L2_CID_FLASH_TORCH_INTENSITY.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_FLASH_STROBE_SOURCE (menu)``
 | |
|     Defines the source of the flash LED strobe.
 | |
| 
 | |
| .. tabularcolumns:: |p{7.0cm}|p{10.5cm}|
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_FLASH_STROBE_SOURCE_SOFTWARE``
 | |
|       - The flash strobe is triggered by using the
 | |
| 	V4L2_CID_FLASH_STROBE control.
 | |
|     * - ``V4L2_FLASH_STROBE_SOURCE_EXTERNAL``
 | |
|       - The flash strobe is triggered by an external source. Typically
 | |
| 	this is a sensor, which makes it possible to synchronises the
 | |
| 	flash strobe start to exposure start.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_FLASH_STROBE (button)``
 | |
|     Strobe flash. Valid when V4L2_CID_FLASH_LED_MODE is set to
 | |
|     V4L2_FLASH_LED_MODE_FLASH and V4L2_CID_FLASH_STROBE_SOURCE
 | |
|     is set to V4L2_FLASH_STROBE_SOURCE_SOFTWARE. Setting this
 | |
|     control may not be possible in presence of some faults. See
 | |
|     V4L2_CID_FLASH_FAULT.
 | |
| 
 | |
| ``V4L2_CID_FLASH_STROBE_STOP (button)``
 | |
|     Stop flash strobe immediately.
 | |
| 
 | |
| ``V4L2_CID_FLASH_STROBE_STATUS (boolean)``
 | |
|     Strobe status: whether the flash is strobing at the moment or not.
 | |
|     This is a read-only control.
 | |
| 
 | |
| ``V4L2_CID_FLASH_TIMEOUT (integer)``
 | |
|     Hardware timeout for flash. The flash strobe is stopped after this
 | |
|     period of time has passed from the start of the strobe.
 | |
| 
 | |
| ``V4L2_CID_FLASH_INTENSITY (integer)``
 | |
|     Intensity of the flash strobe when the flash LED is in flash mode
 | |
|     (V4L2_FLASH_LED_MODE_FLASH). The unit should be milliamps (mA)
 | |
|     if possible.
 | |
| 
 | |
| ``V4L2_CID_FLASH_TORCH_INTENSITY (integer)``
 | |
|     Intensity of the flash LED in torch mode
 | |
|     (V4L2_FLASH_LED_MODE_TORCH). The unit should be milliamps (mA)
 | |
|     if possible. Setting this control may not be possible in presence of
 | |
|     some faults. See V4L2_CID_FLASH_FAULT.
 | |
| 
 | |
| ``V4L2_CID_FLASH_INDICATOR_INTENSITY (integer)``
 | |
|     Intensity of the indicator LED. The indicator LED may be fully
 | |
|     independent of the flash LED. The unit should be microamps (uA) if
 | |
|     possible.
 | |
| 
 | |
| ``V4L2_CID_FLASH_FAULT (bitmask)``
 | |
|     Faults related to the flash. The faults tell about specific problems
 | |
|     in the flash chip itself or the LEDs attached to it. Faults may
 | |
|     prevent further use of some of the flash controls. In particular,
 | |
|     V4L2_CID_FLASH_LED_MODE is set to V4L2_FLASH_LED_MODE_NONE
 | |
|     if the fault affects the flash LED. Exactly which faults have such
 | |
|     an effect is chip dependent. Reading the faults resets the control
 | |
|     and returns the chip to a usable state if possible.
 | |
| 
 | |
| .. tabularcolumns:: |p{8.0cm}|p{9.5cm}|
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_FLASH_FAULT_OVER_VOLTAGE``
 | |
|       - Flash controller voltage to the flash LED has exceeded the limit
 | |
| 	specific to the flash controller.
 | |
|     * - ``V4L2_FLASH_FAULT_TIMEOUT``
 | |
|       - The flash strobe was still on when the timeout set by the user ---
 | |
| 	V4L2_CID_FLASH_TIMEOUT control --- has expired. Not all flash
 | |
| 	controllers may set this in all such conditions.
 | |
|     * - ``V4L2_FLASH_FAULT_OVER_TEMPERATURE``
 | |
|       - The flash controller has overheated.
 | |
|     * - ``V4L2_FLASH_FAULT_SHORT_CIRCUIT``
 | |
|       - The short circuit protection of the flash controller has been
 | |
| 	triggered.
 | |
|     * - ``V4L2_FLASH_FAULT_OVER_CURRENT``
 | |
|       - Current in the LED power supply has exceeded the limit specific to
 | |
| 	the flash controller.
 | |
|     * - ``V4L2_FLASH_FAULT_INDICATOR``
 | |
|       - The flash controller has detected a short or open circuit
 | |
| 	condition on the indicator LED.
 | |
|     * - ``V4L2_FLASH_FAULT_UNDER_VOLTAGE``
 | |
|       - Flash controller voltage to the flash LED has been below the
 | |
| 	minimum limit specific to the flash controller.
 | |
|     * - ``V4L2_FLASH_FAULT_INPUT_VOLTAGE``
 | |
|       - The input voltage of the flash controller is below the limit under
 | |
| 	which strobing the flash at full current will not be possible.The
 | |
| 	condition persists until this flag is no longer set.
 | |
|     * - ``V4L2_FLASH_FAULT_LED_OVER_TEMPERATURE``
 | |
|       - The temperature of the LED has exceeded its allowed upper limit.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_FLASH_CHARGE (boolean)``
 | |
|     Enable or disable charging of the xenon flash capacitor.
 | |
| 
 | |
| ``V4L2_CID_FLASH_READY (boolean)``
 | |
|     Is the flash ready to strobe? Xenon flashes require their capacitors
 | |
|     charged before strobing. LED flashes often require a cooldown period
 | |
|     after strobe during which another strobe will not be possible. This
 | |
|     is a read-only control.
 | |
| 
 | |
| 
 | |
| .. _jpeg-controls:
 | |
| 
 | |
| JPEG Control Reference
 | |
| ======================
 | |
| 
 | |
| The JPEG class includes controls for common features of JPEG encoders
 | |
| and decoders. Currently it includes features for codecs implementing
 | |
| progressive baseline DCT compression process with Huffman entrophy
 | |
| coding.
 | |
| 
 | |
| 
 | |
| .. _jpeg-control-id:
 | |
| 
 | |
| JPEG Control IDs
 | |
| ----------------
 | |
| 
 | |
| ``V4L2_CID_JPEG_CLASS (class)``
 | |
|     The JPEG class descriptor. Calling
 | |
|     :ref:`VIDIOC_QUERYCTRL` for this control will
 | |
|     return a description of this control class.
 | |
| 
 | |
| ``V4L2_CID_JPEG_CHROMA_SUBSAMPLING (menu)``
 | |
|     The chroma subsampling factors describe how each component of an
 | |
|     input image is sampled, in respect to maximum sample rate in each
 | |
|     spatial dimension. See :ref:`itu-t81`, clause A.1.1. for more
 | |
|     details. The ``V4L2_CID_JPEG_CHROMA_SUBSAMPLING`` control determines
 | |
|     how Cb and Cr components are downsampled after converting an input
 | |
|     image from RGB to Y'CbCr color space.
 | |
| 
 | |
| .. tabularcolumns:: |p{7.0cm}|p{10.5cm}|
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_444``
 | |
|       - No chroma subsampling, each pixel has Y, Cr and Cb values.
 | |
|     * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_422``
 | |
|       - Horizontally subsample Cr, Cb components by a factor of 2.
 | |
|     * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_420``
 | |
|       - Subsample Cr, Cb components horizontally and vertically by 2.
 | |
|     * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_411``
 | |
|       - Horizontally subsample Cr, Cb components by a factor of 4.
 | |
|     * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_410``
 | |
|       - Subsample Cr, Cb components horizontally by 4 and vertically by 2.
 | |
|     * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY``
 | |
|       - Use only luminance component.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_JPEG_RESTART_INTERVAL (integer)``
 | |
|     The restart interval determines an interval of inserting RSTm
 | |
|     markers (m = 0..7). The purpose of these markers is to additionally
 | |
|     reinitialize the encoder process, in order to process blocks of an
 | |
|     image independently. For the lossy compression processes the restart
 | |
|     interval unit is MCU (Minimum Coded Unit) and its value is contained
 | |
|     in DRI (Define Restart Interval) marker. If
 | |
|     ``V4L2_CID_JPEG_RESTART_INTERVAL`` control is set to 0, DRI and RSTm
 | |
|     markers will not be inserted.
 | |
| 
 | |
| .. _jpeg-quality-control:
 | |
| 
 | |
| ``V4L2_CID_JPEG_COMPRESSION_QUALITY (integer)``
 | |
|     ``V4L2_CID_JPEG_COMPRESSION_QUALITY`` control determines trade-off
 | |
|     between image quality and size. It provides simpler method for
 | |
|     applications to control image quality, without a need for direct
 | |
|     reconfiguration of luminance and chrominance quantization tables. In
 | |
|     cases where a driver uses quantization tables configured directly by
 | |
|     an application, using interfaces defined elsewhere,
 | |
|     ``V4L2_CID_JPEG_COMPRESSION_QUALITY`` control should be set by
 | |
|     driver to 0.
 | |
| 
 | |
|     The value range of this control is driver-specific. Only positive,
 | |
|     non-zero values are meaningful. The recommended range is 1 - 100,
 | |
|     where larger values correspond to better image quality.
 | |
| 
 | |
| .. _jpeg-active-marker-control:
 | |
| 
 | |
| ``V4L2_CID_JPEG_ACTIVE_MARKER (bitmask)``
 | |
|     Specify which JPEG markers are included in compressed stream. This
 | |
|     control is valid only for encoders.
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_JPEG_ACTIVE_MARKER_APP0``
 | |
|       - Application data segment APP\ :sub:`0`.
 | |
|     * - ``V4L2_JPEG_ACTIVE_MARKER_APP1``
 | |
|       - Application data segment APP\ :sub:`1`.
 | |
|     * - ``V4L2_JPEG_ACTIVE_MARKER_COM``
 | |
|       - Comment segment.
 | |
|     * - ``V4L2_JPEG_ACTIVE_MARKER_DQT``
 | |
|       - Quantization tables segment.
 | |
|     * - ``V4L2_JPEG_ACTIVE_MARKER_DHT``
 | |
|       - Huffman tables segment.
 | |
| 
 | |
| 
 | |
| 
 | |
| For more details about JPEG specification, refer to :ref:`itu-t81`,
 | |
| :ref:`jfif`, :ref:`w3c-jpeg-jfif`.
 | |
| 
 | |
| 
 | |
| .. _image-source-controls:
 | |
| 
 | |
| Image Source Control Reference
 | |
| ==============================
 | |
| 
 | |
| The Image Source control class is intended for low-level control of
 | |
| image source devices such as image sensors. The devices feature an
 | |
| analogue to digital converter and a bus transmitter to transmit the
 | |
| image data out of the device.
 | |
| 
 | |
| 
 | |
| .. _image-source-control-id:
 | |
| 
 | |
| Image Source Control IDs
 | |
| ------------------------
 | |
| 
 | |
| ``V4L2_CID_IMAGE_SOURCE_CLASS (class)``
 | |
|     The IMAGE_SOURCE class descriptor.
 | |
| 
 | |
| ``V4L2_CID_VBLANK (integer)``
 | |
|     Vertical blanking. The idle period after every frame during which no
 | |
|     image data is produced. The unit of vertical blanking is a line.
 | |
|     Every line has length of the image width plus horizontal blanking at
 | |
|     the pixel rate defined by ``V4L2_CID_PIXEL_RATE`` control in the
 | |
|     same sub-device.
 | |
| 
 | |
| ``V4L2_CID_HBLANK (integer)``
 | |
|     Horizontal blanking. The idle period after every line of image data
 | |
|     during which no image data is produced. The unit of horizontal
 | |
|     blanking is pixels.
 | |
| 
 | |
| ``V4L2_CID_ANALOGUE_GAIN (integer)``
 | |
|     Analogue gain is gain affecting all colour components in the pixel
 | |
|     matrix. The gain operation is performed in the analogue domain
 | |
|     before A/D conversion.
 | |
| 
 | |
| ``V4L2_CID_TEST_PATTERN_RED (integer)``
 | |
|     Test pattern red colour component.
 | |
| 
 | |
| ``V4L2_CID_TEST_PATTERN_GREENR (integer)``
 | |
|     Test pattern green (next to red) colour component.
 | |
| 
 | |
| ``V4L2_CID_TEST_PATTERN_BLUE (integer)``
 | |
|     Test pattern blue colour component.
 | |
| 
 | |
| ``V4L2_CID_TEST_PATTERN_GREENB (integer)``
 | |
|     Test pattern green (next to blue) colour component.
 | |
| 
 | |
| 
 | |
| .. _image-process-controls:
 | |
| 
 | |
| Image Process Control Reference
 | |
| ===============================
 | |
| 
 | |
| The Image Process control class is intended for low-level control of
 | |
| image processing functions. Unlike ``V4L2_CID_IMAGE_SOURCE_CLASS``, the
 | |
| controls in this class affect processing the image, and do not control
 | |
| capturing of it.
 | |
| 
 | |
| 
 | |
| .. _image-process-control-id:
 | |
| 
 | |
| Image Process Control IDs
 | |
| -------------------------
 | |
| 
 | |
| ``V4L2_CID_IMAGE_PROC_CLASS (class)``
 | |
|     The IMAGE_PROC class descriptor.
 | |
| 
 | |
| ``V4L2_CID_LINK_FREQ (integer menu)``
 | |
|     Data bus frequency. Together with the media bus pixel code, bus type
 | |
|     (clock cycles per sample), the data bus frequency defines the pixel
 | |
|     rate (``V4L2_CID_PIXEL_RATE``) in the pixel array (or possibly
 | |
|     elsewhere, if the device is not an image sensor). The frame rate can
 | |
|     be calculated from the pixel clock, image width and height and
 | |
|     horizontal and vertical blanking. While the pixel rate control may
 | |
|     be defined elsewhere than in the subdev containing the pixel array,
 | |
|     the frame rate cannot be obtained from that information. This is
 | |
|     because only on the pixel array it can be assumed that the vertical
 | |
|     and horizontal blanking information is exact: no other blanking is
 | |
|     allowed in the pixel array. The selection of frame rate is performed
 | |
|     by selecting the desired horizontal and vertical blanking. The unit
 | |
|     of this control is Hz.
 | |
| 
 | |
| ``V4L2_CID_PIXEL_RATE (64-bit integer)``
 | |
|     Pixel rate in the source pads of the subdev. This control is
 | |
|     read-only and its unit is pixels / second.
 | |
| 
 | |
| ``V4L2_CID_TEST_PATTERN (menu)``
 | |
|     Some capture/display/sensor devices have the capability to generate
 | |
|     test pattern images. These hardware specific test patterns can be
 | |
|     used to test if a device is working properly.
 | |
| 
 | |
| ``V4L2_CID_DEINTERLACING_MODE (menu)``
 | |
|     The video deinterlacing mode (such as Bob, Weave, ...). The menu items are
 | |
|     driver specific and are documented in :ref:`v4l-drivers`.
 | |
| 
 | |
| 
 | |
| .. _dv-controls:
 | |
| 
 | |
| Digital Video Control Reference
 | |
| ===============================
 | |
| 
 | |
| The Digital Video control class is intended to control receivers and
 | |
| transmitters for `VGA <http://en.wikipedia.org/wiki/Vga>`__,
 | |
| `DVI <http://en.wikipedia.org/wiki/Digital_Visual_Interface>`__
 | |
| (Digital Visual Interface), HDMI (:ref:`hdmi`) and DisplayPort
 | |
| (:ref:`dp`). These controls are generally expected to be private to
 | |
| the receiver or transmitter subdevice that implements them, so they are
 | |
| only exposed on the ``/dev/v4l-subdev*`` device node.
 | |
| 
 | |
| .. note::
 | |
| 
 | |
|    Note that these devices can have multiple input or output pads which are
 | |
|    hooked up to e.g. HDMI connectors. Even though the subdevice will
 | |
|    receive or transmit video from/to only one of those pads, the other pads
 | |
|    can still be active when it comes to EDID (Extended Display
 | |
|    Identification Data, :ref:`vesaedid`) and HDCP (High-bandwidth Digital
 | |
|    Content Protection System, :ref:`hdcp`) processing, allowing the
 | |
|    device to do the fairly slow EDID/HDCP handling in advance. This allows
 | |
|    for quick switching between connectors.
 | |
| 
 | |
| These pads appear in several of the controls in this section as
 | |
| bitmasks, one bit for each pad. Bit 0 corresponds to pad 0, bit 1 to pad
 | |
| 1, etc. The maximum value of the control is the set of valid pads.
 | |
| 
 | |
| 
 | |
| .. _dv-control-id:
 | |
| 
 | |
| Digital Video Control IDs
 | |
| -------------------------
 | |
| 
 | |
| ``V4L2_CID_DV_CLASS (class)``
 | |
|     The Digital Video class descriptor.
 | |
| 
 | |
| ``V4L2_CID_DV_TX_HOTPLUG (bitmask)``
 | |
|     Many connectors have a hotplug pin which is high if EDID information
 | |
|     is available from the source. This control shows the state of the
 | |
|     hotplug pin as seen by the transmitter. Each bit corresponds to an
 | |
|     output pad on the transmitter. If an output pad does not have an
 | |
|     associated hotplug pin, then the bit for that pad will be 0. This
 | |
|     read-only control is applicable to DVI-D, HDMI and DisplayPort
 | |
|     connectors.
 | |
| 
 | |
| ``V4L2_CID_DV_TX_RXSENSE (bitmask)``
 | |
|     Rx Sense is the detection of pull-ups on the TMDS clock lines. This
 | |
|     normally means that the sink has left/entered standby (i.e. the
 | |
|     transmitter can sense that the receiver is ready to receive video).
 | |
|     Each bit corresponds to an output pad on the transmitter. If an
 | |
|     output pad does not have an associated Rx Sense, then the bit for
 | |
|     that pad will be 0. This read-only control is applicable to DVI-D
 | |
|     and HDMI devices.
 | |
| 
 | |
| ``V4L2_CID_DV_TX_EDID_PRESENT (bitmask)``
 | |
|     When the transmitter sees the hotplug signal from the receiver it
 | |
|     will attempt to read the EDID. If set, then the transmitter has read
 | |
|     at least the first block (= 128 bytes). Each bit corresponds to an
 | |
|     output pad on the transmitter. If an output pad does not support
 | |
|     EDIDs, then the bit for that pad will be 0. This read-only control
 | |
|     is applicable to VGA, DVI-A/D, HDMI and DisplayPort connectors.
 | |
| 
 | |
| ``V4L2_CID_DV_TX_MODE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_dv_tx_mode -
 | |
|     HDMI transmitters can transmit in DVI-D mode (just video) or in HDMI
 | |
|     mode (video + audio + auxiliary data). This control selects which
 | |
|     mode to use: V4L2_DV_TX_MODE_DVI_D or V4L2_DV_TX_MODE_HDMI.
 | |
|     This control is applicable to HDMI connectors.
 | |
| 
 | |
| ``V4L2_CID_DV_TX_RGB_RANGE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_dv_rgb_range -
 | |
|     Select the quantization range for RGB output. V4L2_DV_RANGE_AUTO
 | |
|     follows the RGB quantization range specified in the standard for the
 | |
|     video interface (ie. :ref:`cea861` for HDMI).
 | |
|     V4L2_DV_RANGE_LIMITED and V4L2_DV_RANGE_FULL override the
 | |
|     standard to be compatible with sinks that have not implemented the
 | |
|     standard correctly (unfortunately quite common for HDMI and DVI-D).
 | |
|     Full range allows all possible values to be used whereas limited
 | |
|     range sets the range to (16 << (N-8)) - (235 << (N-8)) where N is
 | |
|     the number of bits per component. This control is applicable to VGA,
 | |
|     DVI-A/D, HDMI and DisplayPort connectors.
 | |
| 
 | |
| ``V4L2_CID_DV_TX_IT_CONTENT_TYPE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_dv_it_content_type -
 | |
|     Configures the IT Content Type of the transmitted video. This
 | |
|     information is sent over HDMI and DisplayPort connectors as part of
 | |
|     the AVI InfoFrame. The term 'IT Content' is used for content that
 | |
|     originates from a computer as opposed to content from a TV broadcast
 | |
|     or an analog source. The enum v4l2_dv_it_content_type defines
 | |
|     the possible content types:
 | |
| 
 | |
| .. tabularcolumns:: |p{7.0cm}|p{10.5cm}|
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_DV_IT_CONTENT_TYPE_GRAPHICS``
 | |
|       - Graphics content. Pixel data should be passed unfiltered and
 | |
| 	without analog reconstruction.
 | |
|     * - ``V4L2_DV_IT_CONTENT_TYPE_PHOTO``
 | |
|       - Photo content. The content is derived from digital still pictures.
 | |
| 	The content should be passed through with minimal scaling and
 | |
| 	picture enhancements.
 | |
|     * - ``V4L2_DV_IT_CONTENT_TYPE_CINEMA``
 | |
|       - Cinema content.
 | |
|     * - ``V4L2_DV_IT_CONTENT_TYPE_GAME``
 | |
|       - Game content. Audio and video latency should be minimized.
 | |
|     * - ``V4L2_DV_IT_CONTENT_TYPE_NO_ITC``
 | |
|       - No IT Content information is available and the ITC bit in the AVI
 | |
| 	InfoFrame is set to 0.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_DV_RX_POWER_PRESENT (bitmask)``
 | |
|     Detects whether the receiver receives power from the source (e.g.
 | |
|     HDMI carries 5V on one of the pins). This is often used to power an
 | |
|     eeprom which contains EDID information, such that the source can
 | |
|     read the EDID even if the sink is in standby/power off. Each bit
 | |
|     corresponds to an input pad on the transmitter. If an input pad
 | |
|     cannot detect whether power is present, then the bit for that pad
 | |
|     will be 0. This read-only control is applicable to DVI-D, HDMI and
 | |
|     DisplayPort connectors.
 | |
| 
 | |
| ``V4L2_CID_DV_RX_RGB_RANGE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_dv_rgb_range -
 | |
|     Select the quantization range for RGB input. V4L2_DV_RANGE_AUTO
 | |
|     follows the RGB quantization range specified in the standard for the
 | |
|     video interface (ie. :ref:`cea861` for HDMI).
 | |
|     V4L2_DV_RANGE_LIMITED and V4L2_DV_RANGE_FULL override the
 | |
|     standard to be compatible with sources that have not implemented the
 | |
|     standard correctly (unfortunately quite common for HDMI and DVI-D).
 | |
|     Full range allows all possible values to be used whereas limited
 | |
|     range sets the range to (16 << (N-8)) - (235 << (N-8)) where N is
 | |
|     the number of bits per component. This control is applicable to VGA,
 | |
|     DVI-A/D, HDMI and DisplayPort connectors.
 | |
| 
 | |
| ``V4L2_CID_DV_RX_IT_CONTENT_TYPE``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_dv_it_content_type -
 | |
|     Reads the IT Content Type of the received video. This information is
 | |
|     sent over HDMI and DisplayPort connectors as part of the AVI
 | |
|     InfoFrame. The term 'IT Content' is used for content that originates
 | |
|     from a computer as opposed to content from a TV broadcast or an
 | |
|     analog source. See ``V4L2_CID_DV_TX_IT_CONTENT_TYPE`` for the
 | |
|     available content types.
 | |
| 
 | |
| 
 | |
| .. _fm-rx-controls:
 | |
| 
 | |
| FM Receiver Control Reference
 | |
| =============================
 | |
| 
 | |
| The FM Receiver (FM_RX) class includes controls for common features of
 | |
| FM Reception capable devices.
 | |
| 
 | |
| 
 | |
| .. _fm-rx-control-id:
 | |
| 
 | |
| FM_RX Control IDs
 | |
| -----------------
 | |
| 
 | |
| ``V4L2_CID_FM_RX_CLASS (class)``
 | |
|     The FM_RX class descriptor. Calling
 | |
|     :ref:`VIDIOC_QUERYCTRL` for this control will
 | |
|     return a description of this control class.
 | |
| 
 | |
| ``V4L2_CID_RDS_RECEPTION (boolean)``
 | |
|     Enables/disables RDS reception by the radio tuner
 | |
| 
 | |
| ``V4L2_CID_RDS_RX_PTY (integer)``
 | |
|     Gets RDS Programme Type field. This encodes up to 31 pre-defined
 | |
|     programme types.
 | |
| 
 | |
| ``V4L2_CID_RDS_RX_PS_NAME (string)``
 | |
|     Gets the Programme Service name (PS_NAME). It is intended for
 | |
|     static display on a receiver. It is the primary aid to listeners in
 | |
|     programme service identification and selection. In Annex E of
 | |
|     :ref:`iec62106`, the RDS specification, there is a full
 | |
|     description of the correct character encoding for Programme Service
 | |
|     name strings. Also from RDS specification, PS is usually a single
 | |
|     eight character text. However, it is also possible to find receivers
 | |
|     which can scroll strings sized as 8 x N characters. So, this control
 | |
|     must be configured with steps of 8 characters. The result is it must
 | |
|     always contain a string with size multiple of 8.
 | |
| 
 | |
| ``V4L2_CID_RDS_RX_RADIO_TEXT (string)``
 | |
|     Gets the Radio Text info. It is a textual description of what is
 | |
|     being broadcasted. RDS Radio Text can be applied when broadcaster
 | |
|     wishes to transmit longer PS names, programme-related information or
 | |
|     any other text. In these cases, RadioText can be used in addition to
 | |
|     ``V4L2_CID_RDS_RX_PS_NAME``. The encoding for Radio Text strings is
 | |
|     also fully described in Annex E of :ref:`iec62106`. The length of
 | |
|     Radio Text strings depends on which RDS Block is being used to
 | |
|     transmit it, either 32 (2A block) or 64 (2B block). However, it is
 | |
|     also possible to find receivers which can scroll strings sized as 32
 | |
|     x N or 64 x N characters. So, this control must be configured with
 | |
|     steps of 32 or 64 characters. The result is it must always contain a
 | |
|     string with size multiple of 32 or 64.
 | |
| 
 | |
| ``V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT (boolean)``
 | |
|     If set, then a traffic announcement is in progress.
 | |
| 
 | |
| ``V4L2_CID_RDS_RX_TRAFFIC_PROGRAM (boolean)``
 | |
|     If set, then the tuned programme carries traffic announcements.
 | |
| 
 | |
| ``V4L2_CID_RDS_RX_MUSIC_SPEECH (boolean)``
 | |
|     If set, then this channel broadcasts music. If cleared, then it
 | |
|     broadcasts speech. If the transmitter doesn't make this distinction,
 | |
|     then it will be set.
 | |
| 
 | |
| ``V4L2_CID_TUNE_DEEMPHASIS``
 | |
|     (enum)
 | |
| 
 | |
| enum v4l2_deemphasis -
 | |
|     Configures the de-emphasis value for reception. A de-emphasis filter
 | |
|     is applied to the broadcast to accentuate the high audio
 | |
|     frequencies. Depending on the region, a time constant of either 50
 | |
|     or 75 useconds is used. The enum v4l2_deemphasis defines possible
 | |
|     values for de-emphasis. Here they are:
 | |
| 
 | |
| 
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_DEEMPHASIS_DISABLED``
 | |
|       - No de-emphasis is applied.
 | |
|     * - ``V4L2_DEEMPHASIS_50_uS``
 | |
|       - A de-emphasis of 50 uS is used.
 | |
|     * - ``V4L2_DEEMPHASIS_75_uS``
 | |
|       - A de-emphasis of 75 uS is used.
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| .. _detect-controls:
 | |
| 
 | |
| Detect Control Reference
 | |
| ========================
 | |
| 
 | |
| The Detect class includes controls for common features of various motion
 | |
| or object detection capable devices.
 | |
| 
 | |
| 
 | |
| .. _detect-control-id:
 | |
| 
 | |
| Detect Control IDs
 | |
| ------------------
 | |
| 
 | |
| ``V4L2_CID_DETECT_CLASS (class)``
 | |
|     The Detect class descriptor. Calling
 | |
|     :ref:`VIDIOC_QUERYCTRL` for this control will
 | |
|     return a description of this control class.
 | |
| 
 | |
| ``V4L2_CID_DETECT_MD_MODE (menu)``
 | |
|     Sets the motion detection mode.
 | |
| 
 | |
| .. tabularcolumns:: |p{7.5cm}|p{10.0cm}|
 | |
| 
 | |
| .. flat-table::
 | |
|     :header-rows:  0
 | |
|     :stub-columns: 0
 | |
| 
 | |
|     * - ``V4L2_DETECT_MD_MODE_DISABLED``
 | |
|       - Disable motion detection.
 | |
|     * - ``V4L2_DETECT_MD_MODE_GLOBAL``
 | |
|       - Use a single motion detection threshold.
 | |
|     * - ``V4L2_DETECT_MD_MODE_THRESHOLD_GRID``
 | |
|       - The image is divided into a grid, each cell with its own motion
 | |
| 	detection threshold. These thresholds are set through the
 | |
| 	``V4L2_CID_DETECT_MD_THRESHOLD_GRID`` matrix control.
 | |
|     * - ``V4L2_DETECT_MD_MODE_REGION_GRID``
 | |
|       - The image is divided into a grid, each cell with its own region
 | |
| 	value that specifies which per-region motion detection thresholds
 | |
| 	should be used. Each region has its own thresholds. How these
 | |
| 	per-region thresholds are set up is driver-specific. The region
 | |
| 	values for the grid are set through the
 | |
| 	``V4L2_CID_DETECT_MD_REGION_GRID`` matrix control.
 | |
| 
 | |
| 
 | |
| 
 | |
| ``V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD (integer)``
 | |
|     Sets the global motion detection threshold to be used with the
 | |
|     ``V4L2_DETECT_MD_MODE_GLOBAL`` motion detection mode.
 | |
| 
 | |
| ``V4L2_CID_DETECT_MD_THRESHOLD_GRID (__u16 matrix)``
 | |
|     Sets the motion detection thresholds for each cell in the grid. To
 | |
|     be used with the ``V4L2_DETECT_MD_MODE_THRESHOLD_GRID`` motion
 | |
|     detection mode. Matrix element (0, 0) represents the cell at the
 | |
|     top-left of the grid.
 | |
| 
 | |
| ``V4L2_CID_DETECT_MD_REGION_GRID (__u8 matrix)``
 | |
|     Sets the motion detection region value for each cell in the grid. To
 | |
|     be used with the ``V4L2_DETECT_MD_MODE_REGION_GRID`` motion
 | |
|     detection mode. Matrix element (0, 0) represents the cell at the
 | |
|     top-left of the grid.
 | |
| 
 | |
| 
 | |
| .. _rf-tuner-controls:
 | |
| 
 | |
| RF Tuner Control Reference
 | |
| ==========================
 | |
| 
 | |
| The RF Tuner (RF_TUNER) class includes controls for common features of
 | |
| devices having RF tuner.
 | |
| 
 | |
| In this context, RF tuner is radio receiver circuit between antenna and
 | |
| demodulator. It receives radio frequency (RF) from the antenna and
 | |
| converts that received signal to lower intermediate frequency (IF) or
 | |
| baseband frequency (BB). Tuners that could do baseband output are often
 | |
| called Zero-IF tuners. Older tuners were typically simple PLL tuners
 | |
| inside a metal box, whilst newer ones are highly integrated chips
 | |
| without a metal box "silicon tuners". These controls are mostly
 | |
| applicable for new feature rich silicon tuners, just because older
 | |
| tuners does not have much adjustable features.
 | |
| 
 | |
| For more information about RF tuners see
 | |
| `Tuner (radio) <http://en.wikipedia.org/wiki/Tuner_%28radio%29>`__
 | |
| and `RF front end <http://en.wikipedia.org/wiki/RF_front_end>`__
 | |
| from Wikipedia.
 | |
| 
 | |
| 
 | |
| .. _rf-tuner-control-id:
 | |
| 
 | |
| RF_TUNER Control IDs
 | |
| --------------------
 | |
| 
 | |
| ``V4L2_CID_RF_TUNER_CLASS (class)``
 | |
|     The RF_TUNER class descriptor. Calling
 | |
|     :ref:`VIDIOC_QUERYCTRL` for this control will
 | |
|     return a description of this control class.
 | |
| 
 | |
| ``V4L2_CID_RF_TUNER_BANDWIDTH_AUTO (boolean)``
 | |
|     Enables/disables tuner radio channel bandwidth configuration. In
 | |
|     automatic mode bandwidth configuration is performed by the driver.
 | |
| 
 | |
| ``V4L2_CID_RF_TUNER_BANDWIDTH (integer)``
 | |
|     Filter(s) on tuner signal path are used to filter signal according
 | |
|     to receiving party needs. Driver configures filters to fulfill
 | |
|     desired bandwidth requirement. Used when
 | |
|     V4L2_CID_RF_TUNER_BANDWIDTH_AUTO is not set. Unit is in Hz. The
 | |
|     range and step are driver-specific.
 | |
| 
 | |
| ``V4L2_CID_RF_TUNER_LNA_GAIN_AUTO (boolean)``
 | |
|     Enables/disables LNA automatic gain control (AGC)
 | |
| 
 | |
| ``V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO (boolean)``
 | |
|     Enables/disables mixer automatic gain control (AGC)
 | |
| 
 | |
| ``V4L2_CID_RF_TUNER_IF_GAIN_AUTO (boolean)``
 | |
|     Enables/disables IF automatic gain control (AGC)
 | |
| 
 | |
| ``V4L2_CID_RF_TUNER_RF_GAIN (integer)``
 | |
|     The RF amplifier is the very first amplifier on the receiver signal
 | |
|     path, just right after the antenna input. The difference between the
 | |
|     LNA gain and the RF gain in this document is that the LNA gain is
 | |
|     integrated in the tuner chip while the RF gain is a separate chip.
 | |
|     There may be both RF and LNA gain controls in the same device. The
 | |
|     range and step are driver-specific.
 | |
| 
 | |
| ``V4L2_CID_RF_TUNER_LNA_GAIN (integer)``
 | |
|     LNA (low noise amplifier) gain is first gain stage on the RF tuner
 | |
|     signal path. It is located very close to tuner antenna input. Used
 | |
|     when ``V4L2_CID_RF_TUNER_LNA_GAIN_AUTO`` is not set. See
 | |
|     ``V4L2_CID_RF_TUNER_RF_GAIN`` to understand how RF gain and LNA gain
 | |
|     differs from the each others. The range and step are
 | |
|     driver-specific.
 | |
| 
 | |
| ``V4L2_CID_RF_TUNER_MIXER_GAIN (integer)``
 | |
|     Mixer gain is second gain stage on the RF tuner signal path. It is
 | |
|     located inside mixer block, where RF signal is down-converted by the
 | |
|     mixer. Used when ``V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO`` is not set.
 | |
|     The range and step are driver-specific.
 | |
| 
 | |
| ``V4L2_CID_RF_TUNER_IF_GAIN (integer)``
 | |
|     IF gain is last gain stage on the RF tuner signal path. It is
 | |
|     located on output of RF tuner. It controls signal level of
 | |
|     intermediate frequency output or baseband output. Used when
 | |
|     ``V4L2_CID_RF_TUNER_IF_GAIN_AUTO`` is not set. The range and step
 | |
|     are driver-specific.
 | |
| 
 | |
| ``V4L2_CID_RF_TUNER_PLL_LOCK (boolean)``
 | |
|     Is synthesizer PLL locked? RF tuner is receiving given frequency
 | |
|     when that control is set. This is a read-only control.
 | |
| 
 | |
| .. [#f1]
 | |
|    This control may be changed to a menu control in the future, if more
 | |
|    options are required.
 |