12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- .. -*- coding: utf-8; mode: rst -*-
- .. _tuner:
- *********************
- Tuners and Modulators
- *********************
- Tuners
- ======
- Video input devices can have one or more tuners demodulating a RF
- signal. Each tuner is associated with one or more video inputs,
- depending on the number of RF connectors on the tuner. The ``type``
- field of the respective struct :c:type:`v4l2_input`
- returned by the :ref:`VIDIOC_ENUMINPUT` ioctl is
- set to ``V4L2_INPUT_TYPE_TUNER`` and its ``tuner`` field contains the
- index number of the tuner.
- Radio input devices have exactly one tuner with index zero, no video
- inputs.
- To query and change tuner properties applications use the
- :ref:`VIDIOC_G_TUNER <VIDIOC_G_TUNER>` and
- :ref:`VIDIOC_S_TUNER <VIDIOC_G_TUNER>` ioctls, respectively. The
- struct :c:type:`v4l2_tuner` returned by :ref:`VIDIOC_G_TUNER <VIDIOC_G_TUNER>`
- also contains signal status information applicable when the tuner of the
- current video or radio input is queried.
- .. note::
- :ref:`VIDIOC_S_TUNER <VIDIOC_G_TUNER>` does not switch the
- current tuner, when there is more than one at all. The tuner is solely
- determined by the current video input. Drivers must support both ioctls
- and set the ``V4L2_CAP_TUNER`` flag in the struct :c:type:`v4l2_capability`
- returned by the :ref:`VIDIOC_QUERYCAP` ioctl when the
- device has one or more tuners.
- Modulators
- ==========
- Video output devices can have one or more modulators, uh, modulating a
- video signal for radiation or connection to the antenna input of a TV
- set or video recorder. Each modulator is associated with one or more
- video outputs, depending on the number of RF connectors on the
- modulator. The ``type`` field of the respective struct
- :c:type:`v4l2_output` returned by the
- :ref:`VIDIOC_ENUMOUTPUT` ioctl is set to
- ``V4L2_OUTPUT_TYPE_MODULATOR`` and its ``modulator`` field contains the
- index number of the modulator.
- Radio output devices have exactly one modulator with index zero, no
- video outputs.
- A video or radio device cannot support both a tuner and a modulator. Two
- separate device nodes will have to be used for such hardware, one that
- supports the tuner functionality and one that supports the modulator
- functionality. The reason is a limitation with the
- :ref:`VIDIOC_S_FREQUENCY <VIDIOC_G_FREQUENCY>` ioctl where you
- cannot specify whether the frequency is for a tuner or a modulator.
- To query and change modulator properties applications use the
- :ref:`VIDIOC_G_MODULATOR <VIDIOC_G_MODULATOR>` and
- :ref:`VIDIOC_S_MODULATOR <VIDIOC_G_MODULATOR>` ioctl. Note that
- :ref:`VIDIOC_S_MODULATOR <VIDIOC_G_MODULATOR>` does not switch the current modulator, when there
- is more than one at all. The modulator is solely determined by the
- current video output. Drivers must support both ioctls and set the
- ``V4L2_CAP_MODULATOR`` flag in the struct
- :c:type:`v4l2_capability` returned by the
- :ref:`VIDIOC_QUERYCAP` ioctl when the device has
- one or more modulators.
- Radio Frequency
- ===============
- To get and set the tuner or modulator radio frequency applications use
- the :ref:`VIDIOC_G_FREQUENCY <VIDIOC_G_FREQUENCY>` and
- :ref:`VIDIOC_S_FREQUENCY <VIDIOC_G_FREQUENCY>` ioctl which both take
- a pointer to a struct :c:type:`v4l2_frequency`. These
- ioctls are used for TV and radio devices alike. Drivers must support
- both ioctls when the tuner or modulator ioctls are supported, or when
- the device is a radio device.
|