Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | .. 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. |