^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.