Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) .. c:namespace:: V4L
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) .. _VIDIOC_G_TUNER:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) ************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) ioctl VIDIOC_G_TUNER, VIDIOC_S_TUNER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) ************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) Name
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) ====
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) VIDIOC_G_TUNER - VIDIOC_S_TUNER - Get or set tuner attributes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) Synopsis
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) ========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) .. c:macro:: VIDIOC_G_TUNER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) ``int ioctl(int fd, VIDIOC_G_TUNER, struct v4l2_tuner *argp)``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) .. c:macro:: VIDIOC_S_TUNER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) ``int ioctl(int fd, VIDIOC_S_TUNER, const struct v4l2_tuner *argp)``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) Arguments
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) =========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) ``fd``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30)     File descriptor returned by :c:func:`open()`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) ``argp``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33)     Pointer to struct :c:type:`v4l2_tuner`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) ===========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) To query the attributes of a tuner applications initialize the ``index``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) field and zero out the ``reserved`` array of a struct
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) :c:type:`v4l2_tuner` and call the ``VIDIOC_G_TUNER`` ioctl
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) with a pointer to this structure. Drivers fill the rest of the structure
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) or return an ``EINVAL`` error code when the index is out of bounds. To
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) enumerate all tuners applications shall begin at index zero,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) incrementing by one until the driver returns ``EINVAL``.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) Tuners have two writable properties, the audio mode and the radio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) frequency. To change the audio mode, applications initialize the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) ``index``, ``audmode`` and ``reserved`` fields and call the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) ``VIDIOC_S_TUNER`` ioctl. This will *not* change the current tuner,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) which is determined by the current video input. Drivers may choose a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) different audio mode if the requested mode is invalid or unsupported.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) Since this is a write-only ioctl, it does not return the actually
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) selected audio mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) :ref:`SDR <sdr>` specific tuner types are ``V4L2_TUNER_SDR`` and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) ``V4L2_TUNER_RF``. For SDR devices ``audmode`` field must be initialized
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) to zero. The term 'tuner' means SDR receiver in this context.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) To change the radio frequency the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) :ref:`VIDIOC_S_FREQUENCY <VIDIOC_G_FREQUENCY>` ioctl is available.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62)  .. tabularcolumns:: |p{1.3cm}|p{3.0cm}|p{6.6cm}|p{6.6cm}|
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) .. c:type:: v4l2_tuner
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) .. cssclass:: longtable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) .. flat-table:: struct v4l2_tuner
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69)     :header-rows:  0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70)     :stub-columns: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72)     * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73)       - ``index``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74)       - :cspan:`1` Identifies the tuner, set by the application.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75)     * - __u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76)       - ``name``\ [32]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77)       - :cspan:`1`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 	Name of the tuner, a NUL-terminated ASCII string.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 	This information is intended for the user.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82)     * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83)       - ``type``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84)       - :cspan:`1` Type of the tuner, see :c:type:`v4l2_tuner_type`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85)     * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86)       - ``capability``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87)       - :cspan:`1`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 	Tuner capability flags, see :ref:`tuner-capability`. Audio flags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 	indicate the ability to decode audio subprograms. They will *not*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 	change, for example with the current video standard.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 	When the structure refers to a radio tuner the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 	``V4L2_TUNER_CAP_LANG1``, ``V4L2_TUNER_CAP_LANG2`` and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 	``V4L2_TUNER_CAP_NORM`` flags can't be used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 	If multiple frequency bands are supported, then ``capability`` is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 	the union of all ``capability`` fields of each struct
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 	:c:type:`v4l2_frequency_band`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100)     * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101)       - ``rangelow``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)       - :cspan:`1` The lowest tunable frequency in units of 62.5 kHz, or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 	if the ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in units
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 	of 62.5 Hz, or if the ``capability`` flag ``V4L2_TUNER_CAP_1HZ``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 	is set, in units of 1 Hz. If multiple frequency bands are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 	supported, then ``rangelow`` is the lowest frequency of all the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 	frequency bands.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)     * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)       - ``rangehigh``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110)       - :cspan:`1` The highest tunable frequency in units of 62.5 kHz,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 	or if the ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 	units of 62.5 Hz, or if the ``capability`` flag
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 	``V4L2_TUNER_CAP_1HZ`` is set, in units of 1 Hz. If multiple
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 	frequency bands are supported, then ``rangehigh`` is the highest
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 	frequency of all the frequency bands.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116)     * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117)       - ``rxsubchans``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118)       - :cspan:`1`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 	Some tuners or audio decoders can determine the received audio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 	subprograms by analyzing audio carriers, pilot tones or other
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 	indicators. To pass this information drivers set flags defined in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 	:ref:`tuner-rxsubchans` in this field. For example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124)     * -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125)       -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)       - ``V4L2_TUNER_SUB_MONO``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127)       - receiving mono audio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128)     * -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129)       -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)       - ``STEREO | SAP``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131)       - receiving stereo audio and a secondary audio program
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132)     * -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133)       -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134)       - ``MONO | STEREO``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135)       - receiving mono or stereo audio, the hardware cannot distinguish
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136)     * -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137)       -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138)       - ``LANG1 | LANG2``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139)       - receiving bilingual audio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140)     * -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141)       -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142)       - ``MONO | STEREO | LANG1 | LANG2``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)       - receiving mono, stereo or bilingual audio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144)     * -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)       -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146)       - :cspan:`1`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) 	When the ``V4L2_TUNER_CAP_STEREO``, ``_LANG1``, ``_LANG2`` or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) 	``_SAP`` flag is cleared in the ``capability`` field, the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) 	corresponding ``V4L2_TUNER_SUB_`` flag must not be set here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) 	This field is valid only if this is the tuner of the current video
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) 	input, or when the structure refers to a radio tuner.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154)     * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155)       - ``audmode``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156)       - :cspan:`1`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) 	The selected audio mode, see :ref:`tuner-audmode` for valid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) 	values. The audio mode does not affect audio subprogram detection,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) 	and like a :ref:`control` it does not automatically
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) 	change unless the requested mode is invalid or unsupported. See
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) 	:ref:`tuner-matrix` for possible results when the selected and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) 	received audio programs do not match.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) 	Currently this is the only field of struct
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) 	struct :c:type:`v4l2_tuner` applications can change.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167)     * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168)       - ``signal``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169)       - :cspan:`1` The signal strength if known.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) 	Ranging from 0 to 65535. Higher values indicate a better signal.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172)     * - __s32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173)       - ``afc``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174)       - :cspan:`1` Automatic frequency control.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) 	When the ``afc`` value is negative, the frequency is too
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) 	low, when positive too high.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178)     * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179)       - ``reserved``\ [4]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180)       - :cspan:`1` Reserved for future extensions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) 	Drivers and applications must set the array to zero.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) .. c:type:: v4l2_tuner_type
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) .. flat-table:: enum v4l2_tuner_type
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190)     :header-rows:  0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191)     :stub-columns: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192)     :widths:       3 1 6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194)     * - ``V4L2_TUNER_RADIO``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195)       - 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196)       - Tuner supports radio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197)     * - ``V4L2_TUNER_ANALOG_TV``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198)       - 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199)       - Tuner supports analog TV
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200)     * - ``V4L2_TUNER_SDR``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201)       - 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202)       - Tuner controls the A/D and/or D/A block of a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) 	Software Digital Radio (SDR)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204)     * - ``V4L2_TUNER_RF``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205)       - 5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206)       - Tuner controls the RF part of a Software Digital Radio (SDR)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) .. _tuner-capability:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) .. cssclass:: longtable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) .. flat-table:: Tuner and Modulator Capability Flags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215)     :header-rows:  0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216)     :stub-columns: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217)     :widths:       3 1 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219)     * - ``V4L2_TUNER_CAP_LOW``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220)       - 0x0001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221)       - When set, tuning frequencies are expressed in units of 62.5 Hz
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) 	instead of 62.5 kHz.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223)     * - ``V4L2_TUNER_CAP_NORM``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224)       - 0x0002
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225)       - This is a multi-standard tuner; the video standard can or must be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) 	switched. (B/G PAL tuners for example are typically not considered
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) 	multi-standard because the video standard is automatically
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) 	determined from the frequency band.) The set of supported video
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) 	standards is available from the struct
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) 	:c:type:`v4l2_input` pointing to this tuner, see the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) 	description of ioctl :ref:`VIDIOC_ENUMINPUT`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) 	for details. Only ``V4L2_TUNER_ANALOG_TV`` tuners can have this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) 	capability.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234)     * - ``V4L2_TUNER_CAP_HWSEEK_BOUNDED``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235)       - 0x0004
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236)       - If set, then this tuner supports the hardware seek functionality
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) 	where the seek stops when it reaches the end of the frequency
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) 	range.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239)     * - ``V4L2_TUNER_CAP_HWSEEK_WRAP``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240)       - 0x0008
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241)       - If set, then this tuner supports the hardware seek functionality
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) 	where the seek wraps around when it reaches the end of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) 	frequency range.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244)     * - ``V4L2_TUNER_CAP_STEREO``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245)       - 0x0010
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246)       - Stereo audio reception is supported.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247)     * - ``V4L2_TUNER_CAP_LANG1``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248)       - 0x0040
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249)       - Reception of the primary language of a bilingual audio program is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) 	supported. Bilingual audio is a feature of two-channel systems,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) 	transmitting the primary language monaural on the main audio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) 	carrier and a secondary language monaural on a second carrier.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) 	Only ``V4L2_TUNER_ANALOG_TV`` tuners can have this capability.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254)     * - ``V4L2_TUNER_CAP_LANG2``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255)       - 0x0020
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256)       - Reception of the secondary language of a bilingual audio program
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) 	is supported. Only ``V4L2_TUNER_ANALOG_TV`` tuners can have this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) 	capability.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259)     * - ``V4L2_TUNER_CAP_SAP``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260)       - 0x0020
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261)       - Reception of a secondary audio program is supported. This is a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) 	feature of the BTSC system which accompanies the NTSC video
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) 	standard. Two audio carriers are available for mono or stereo
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) 	transmissions of a primary language, and an independent third
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) 	carrier for a monaural secondary language. Only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) 	``V4L2_TUNER_ANALOG_TV`` tuners can have this capability.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) 	.. note::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) 	   The ``V4L2_TUNER_CAP_LANG2`` and ``V4L2_TUNER_CAP_SAP``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) 	   flags are synonyms. ``V4L2_TUNER_CAP_SAP`` applies when the tuner
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) 	   supports the ``V4L2_STD_NTSC_M`` video standard.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273)     * - ``V4L2_TUNER_CAP_RDS``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274)       - 0x0080
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275)       - RDS capture is supported. This capability is only valid for radio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) 	tuners.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277)     * - ``V4L2_TUNER_CAP_RDS_BLOCK_IO``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278)       - 0x0100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279)       - The RDS data is passed as unparsed RDS blocks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280)     * - ``V4L2_TUNER_CAP_RDS_CONTROLS``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281)       - 0x0200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282)       - The RDS data is parsed by the hardware and set via controls.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283)     * - ``V4L2_TUNER_CAP_FREQ_BANDS``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284)       - 0x0400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285)       - The :ref:`VIDIOC_ENUM_FREQ_BANDS`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) 	ioctl can be used to enumerate the available frequency bands.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287)     * - ``V4L2_TUNER_CAP_HWSEEK_PROG_LIM``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288)       - 0x0800
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289)       - The range to search when using the hardware seek functionality is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) 	programmable, see
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) 	:ref:`VIDIOC_S_HW_FREQ_SEEK` for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) 	details.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293)     * - ``V4L2_TUNER_CAP_1HZ``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294)       - 0x1000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295)       - When set, tuning frequencies are expressed in units of 1 Hz
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) 	instead of 62.5 kHz.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) .. _tuner-rxsubchans:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) .. flat-table:: Tuner Audio Reception Flags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304)     :header-rows:  0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305)     :stub-columns: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306)     :widths:       3 1 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308)     * - ``V4L2_TUNER_SUB_MONO``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309)       - 0x0001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310)       - The tuner receives a mono audio signal.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311)     * - ``V4L2_TUNER_SUB_STEREO``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312)       - 0x0002
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313)       - The tuner receives a stereo audio signal.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314)     * - ``V4L2_TUNER_SUB_LANG1``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315)       - 0x0008
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316)       - The tuner receives the primary language of a bilingual audio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) 	signal. Drivers must clear this flag when the current video
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) 	standard is ``V4L2_STD_NTSC_M``.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319)     * - ``V4L2_TUNER_SUB_LANG2``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320)       - 0x0004
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321)       - The tuner receives the secondary language of a bilingual audio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) 	signal (or a second audio program).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323)     * - ``V4L2_TUNER_SUB_SAP``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324)       - 0x0004
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325)       - The tuner receives a Second Audio Program.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) 	.. note::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) 	   The ``V4L2_TUNER_SUB_LANG2`` and ``V4L2_TUNER_SUB_SAP``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) 	   flags are synonyms. The ``V4L2_TUNER_SUB_SAP`` flag applies
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) 	   when the current video standard is ``V4L2_STD_NTSC_M``.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332)     * - ``V4L2_TUNER_SUB_RDS``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333)       - 0x0010
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334)       - The tuner receives an RDS channel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) .. _tuner-audmode:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) .. flat-table:: Tuner Audio Modes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342)     :header-rows:  0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343)     :stub-columns: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344)     :widths:       3 1 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346)     * - ``V4L2_TUNER_MODE_MONO``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347)       - 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348)       - Play mono audio. When the tuner receives a stereo signal this a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) 	down-mix of the left and right channel. When the tuner receives a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) 	bilingual or SAP signal this mode selects the primary language.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351)     * - ``V4L2_TUNER_MODE_STEREO``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352)       - 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353)       - Play stereo audio. When the tuner receives bilingual audio it may
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) 	play different languages on the left and right channel or the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) 	primary language is played on both channels.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) 	Playing different languages in this mode is deprecated. New
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) 	drivers should do this only in ``MODE_LANG1_LANG2``.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) 	When the tuner receives no stereo signal or does not support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) 	stereo reception the driver shall fall back to ``MODE_MONO``.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362)     * - ``V4L2_TUNER_MODE_LANG1``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363)       - 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364)       - Play the primary language, mono or stereo. Only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) 	``V4L2_TUNER_ANALOG_TV`` tuners support this mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366)     * - ``V4L2_TUNER_MODE_LANG2``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367)       - 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368)       - Play the secondary language, mono. When the tuner receives no
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) 	bilingual audio or SAP, or their reception is not supported the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) 	driver shall fall back to mono or stereo mode. Only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) 	``V4L2_TUNER_ANALOG_TV`` tuners support this mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372)     * - ``V4L2_TUNER_MODE_SAP``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373)       - 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374)       - Play the Second Audio Program. When the tuner receives no
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) 	bilingual audio or SAP, or their reception is not supported the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) 	driver shall fall back to mono or stereo mode. Only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) 	``V4L2_TUNER_ANALOG_TV`` tuners support this mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) 	.. note:: The ``V4L2_TUNER_MODE_LANG2`` and ``V4L2_TUNER_MODE_SAP``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) 	   are synonyms.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381)     * - ``V4L2_TUNER_MODE_LANG1_LANG2``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382)       - 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383)       - Play the primary language on the left channel, the secondary
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) 	language on the right channel. When the tuner receives no
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) 	bilingual audio or SAP, it shall fall back to ``MODE_LANG1`` or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) 	``MODE_MONO``. Only ``V4L2_TUNER_ANALOG_TV`` tuners support this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) 	mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) .. raw:: latex
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391)     \scriptsize
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) .. tabularcolumns:: |p{1.5cm}|p{1.5cm}|p{2.9cm}|p{2.9cm}|p{2.9cm}|p{2.9cm}|
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) .. _tuner-matrix:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) .. flat-table:: Tuner Audio Matrix
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398)     :header-rows:  2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399)     :stub-columns: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400)     :widths: 7 7 14 14 14 14
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402)     * -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403)       - :cspan:`4` Selected ``V4L2_TUNER_MODE_``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404)     * - Received ``V4L2_TUNER_SUB_``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405)       - ``MONO``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406)       - ``STEREO``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407)       - ``LANG1``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408)       - ``LANG2 = SAP``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409)       - ``LANG1_LANG2``\ [#f1]_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410)     * - ``MONO``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411)       - Mono
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412)       - Mono/Mono
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413)       - Mono
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414)       - Mono
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415)       - Mono/Mono
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416)     * - ``MONO | SAP``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417)       - Mono
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418)       - Mono/Mono
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419)       - Mono
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420)       - SAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421)       - Mono/SAP (preferred) or Mono/Mono
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422)     * - ``STEREO``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423)       - L+R
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424)       - L/R
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425)       - Stereo L/R (preferred) or Mono L+R
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426)       - Stereo L/R (preferred) or Mono L+R
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427)       - L/R (preferred) or L+R/L+R
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428)     * - ``STEREO | SAP``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429)       - L+R
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430)       - L/R
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431)       - Stereo L/R (preferred) or Mono L+R
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432)       - SAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433)       - L+R/SAP (preferred) or L/R or L+R/L+R
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434)     * - ``LANG1 | LANG2``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435)       - Language 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436)       - Lang1/Lang2 (deprecated\ [#f2]_) or Lang1/Lang1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437)       - Language 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438)       - Language 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439)       - Lang1/Lang2 (preferred) or Lang1/Lang1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) .. raw:: latex
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443)     \normalsize
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) Return Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) ============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) On success 0 is returned, on error -1 and the ``errno`` variable is set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) appropriately. The generic error codes are described at the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) :ref:`Generic Error Codes <gen-errors>` chapter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) EINVAL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453)     The struct :c:type:`v4l2_tuner` ``index`` is out of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454)     bounds.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) .. [#f1]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457)    This mode has been added in Linux 2.6.17 and may not be supported by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458)    older drivers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) .. [#f2]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461)    Playback of both languages in ``MODE_STEREO`` is deprecated. In the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462)    future drivers should produce only the primary language in this mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463)    Applications should request ``MODE_LANG1_LANG2`` to record both
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464)    languages or a stereo signal.