1 .. SPDX-License-Identifier: GFDL-1.1-no-invari 1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 2 2 3 .. _tuner: 3 .. _tuner: 4 4 5 ********************* 5 ********************* 6 Tuners and Modulators 6 Tuners and Modulators 7 ********************* 7 ********************* 8 8 9 9 10 Tuners 10 Tuners 11 ====== 11 ====== 12 12 13 Video input devices can have one or more tuner 13 Video input devices can have one or more tuners demodulating a RF 14 signal. Each tuner is associated with one or m 14 signal. Each tuner is associated with one or more video inputs, 15 depending on the number of RF connectors on th 15 depending on the number of RF connectors on the tuner. The ``type`` 16 field of the respective struct :c:type:`v4l2_i 16 field of the respective struct :c:type:`v4l2_input` 17 returned by the :ref:`VIDIOC_ENUMINPUT` ioctl 17 returned by the :ref:`VIDIOC_ENUMINPUT` ioctl is 18 set to ``V4L2_INPUT_TYPE_TUNER`` and its ``tun 18 set to ``V4L2_INPUT_TYPE_TUNER`` and its ``tuner`` field contains the 19 index number of the tuner. 19 index number of the tuner. 20 20 21 Radio input devices have exactly one tuner wit 21 Radio input devices have exactly one tuner with index zero, no video 22 inputs. 22 inputs. 23 23 24 To query and change tuner properties applicati 24 To query and change tuner properties applications use the 25 :ref:`VIDIOC_G_TUNER <VIDIOC_G_TUNER>` and 25 :ref:`VIDIOC_G_TUNER <VIDIOC_G_TUNER>` and 26 :ref:`VIDIOC_S_TUNER <VIDIOC_G_TUNER>` ioctls, 26 :ref:`VIDIOC_S_TUNER <VIDIOC_G_TUNER>` ioctls, respectively. The 27 struct :c:type:`v4l2_tuner` returned by :ref:` 27 struct :c:type:`v4l2_tuner` returned by :ref:`VIDIOC_G_TUNER <VIDIOC_G_TUNER>` 28 also contains signal status information applic 28 also contains signal status information applicable when the tuner of the 29 current video or radio input is queried. 29 current video or radio input is queried. 30 30 31 .. note:: 31 .. note:: 32 32 33 :ref:`VIDIOC_S_TUNER <VIDIOC_G_TUNER>` does 33 :ref:`VIDIOC_S_TUNER <VIDIOC_G_TUNER>` does not switch the 34 current tuner, when there is more than one. 34 current tuner, when there is more than one. The tuner is solely 35 determined by the current video input. Driv 35 determined by the current video input. Drivers must support both ioctls 36 and set the ``V4L2_CAP_TUNER`` flag in the 36 and set the ``V4L2_CAP_TUNER`` flag in the struct :c:type:`v4l2_capability` 37 returned by the :ref:`VIDIOC_QUERYCAP` ioct 37 returned by the :ref:`VIDIOC_QUERYCAP` ioctl when the 38 device has one or more tuners. 38 device has one or more tuners. 39 39 40 40 41 Modulators 41 Modulators 42 ========== 42 ========== 43 43 44 Video output devices can have one or more modu 44 Video output devices can have one or more modulators, that modulate a 45 video signal for radiation or connection to th 45 video signal for radiation or connection to the antenna input of a TV 46 set or video recorder. Each modulator is assoc 46 set or video recorder. Each modulator is associated with one or more 47 video outputs, depending on the number of RF c 47 video outputs, depending on the number of RF connectors on the 48 modulator. The ``type`` field of the respectiv 48 modulator. The ``type`` field of the respective struct 49 :c:type:`v4l2_output` returned by the 49 :c:type:`v4l2_output` returned by the 50 :ref:`VIDIOC_ENUMOUTPUT` ioctl is set to 50 :ref:`VIDIOC_ENUMOUTPUT` ioctl is set to 51 ``V4L2_OUTPUT_TYPE_MODULATOR`` and its ``modul 51 ``V4L2_OUTPUT_TYPE_MODULATOR`` and its ``modulator`` field contains the 52 index number of the modulator. 52 index number of the modulator. 53 53 54 Radio output devices have exactly one modulato 54 Radio output devices have exactly one modulator with index zero, no 55 video outputs. 55 video outputs. 56 56 57 A video or radio device cannot support both a 57 A video or radio device cannot support both a tuner and a modulator. Two 58 separate device nodes will have to be used for 58 separate device nodes will have to be used for such hardware, one that 59 supports the tuner functionality and one that 59 supports the tuner functionality and one that supports the modulator 60 functionality. The reason is a limitation with 60 functionality. The reason is a limitation with the 61 :ref:`VIDIOC_S_FREQUENCY <VIDIOC_G_FREQUENCY>` 61 :ref:`VIDIOC_S_FREQUENCY <VIDIOC_G_FREQUENCY>` ioctl where you 62 cannot specify whether the frequency is for a 62 cannot specify whether the frequency is for a tuner or a modulator. 63 63 64 To query and change modulator properties appli 64 To query and change modulator properties applications use the 65 :ref:`VIDIOC_G_MODULATOR <VIDIOC_G_MODULATOR>` 65 :ref:`VIDIOC_G_MODULATOR <VIDIOC_G_MODULATOR>` and 66 :ref:`VIDIOC_S_MODULATOR <VIDIOC_G_MODULATOR>` 66 :ref:`VIDIOC_S_MODULATOR <VIDIOC_G_MODULATOR>` ioctl. Note that 67 :ref:`VIDIOC_S_MODULATOR <VIDIOC_G_MODULATOR>` 67 :ref:`VIDIOC_S_MODULATOR <VIDIOC_G_MODULATOR>` does not switch the current modulator, when there 68 is more than one at all. The modulator is sole 68 is more than one at all. The modulator is solely determined by the 69 current video output. Drivers must support bot 69 current video output. Drivers must support both ioctls and set the 70 ``V4L2_CAP_MODULATOR`` flag in the struct 70 ``V4L2_CAP_MODULATOR`` flag in the struct 71 :c:type:`v4l2_capability` returned by the 71 :c:type:`v4l2_capability` returned by the 72 :ref:`VIDIOC_QUERYCAP` ioctl when the device h 72 :ref:`VIDIOC_QUERYCAP` ioctl when the device has 73 one or more modulators. 73 one or more modulators. 74 74 75 75 76 Radio Frequency 76 Radio Frequency 77 =============== 77 =============== 78 78 79 To get and set the tuner or modulator radio fr 79 To get and set the tuner or modulator radio frequency applications use 80 the :ref:`VIDIOC_G_FREQUENCY <VIDIOC_G_FREQUEN 80 the :ref:`VIDIOC_G_FREQUENCY <VIDIOC_G_FREQUENCY>` and 81 :ref:`VIDIOC_S_FREQUENCY <VIDIOC_G_FREQUENCY>` 81 :ref:`VIDIOC_S_FREQUENCY <VIDIOC_G_FREQUENCY>` ioctl which both take 82 a pointer to a struct :c:type:`v4l2_frequency` 82 a pointer to a struct :c:type:`v4l2_frequency`. These 83 ioctls are used for TV and radio devices alike 83 ioctls are used for TV and radio devices alike. Drivers must support 84 both ioctls when the tuner or modulator ioctls 84 both ioctls when the tuner or modulator ioctls are supported, or when 85 the device is a radio device. 85 the device is a radio device.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.