160 lines
6.8 KiB
ReStructuredText
160 lines
6.8 KiB
ReStructuredText
|
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
||
|
|
||
|
.. _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.3cm}|p{10.2cm}|
|
||
|
|
||
|
.. 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 receiver. 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.
|