1 .. SPDX-License-Identifier: GFDL-1.1-no-invari 1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 2 .. c:namespace:: V4L 2 .. c:namespace:: V4L 3 3 4 .. _VIDIOC_ENUMINPUT: 4 .. _VIDIOC_ENUMINPUT: 5 5 6 ********************** 6 ********************** 7 ioctl VIDIOC_ENUMINPUT 7 ioctl VIDIOC_ENUMINPUT 8 ********************** 8 ********************** 9 9 10 Name 10 Name 11 ==== 11 ==== 12 12 13 VIDIOC_ENUMINPUT - Enumerate video inputs 13 VIDIOC_ENUMINPUT - Enumerate video inputs 14 14 15 Synopsis 15 Synopsis 16 ======== 16 ======== 17 17 18 .. c:macro:: VIDIOC_ENUMINPUT 18 .. c:macro:: VIDIOC_ENUMINPUT 19 19 20 ``int ioctl(int fd, VIDIOC_ENUMINPUT, struct v 20 ``int ioctl(int fd, VIDIOC_ENUMINPUT, struct v4l2_input *argp)`` 21 21 22 Arguments 22 Arguments 23 ========= 23 ========= 24 24 25 ``fd`` 25 ``fd`` 26 File descriptor returned by :c:func:`open( 26 File descriptor returned by :c:func:`open()`. 27 27 28 ``argp`` 28 ``argp`` 29 Pointer to struct :c:type:`v4l2_input`. 29 Pointer to struct :c:type:`v4l2_input`. 30 30 31 Description 31 Description 32 =========== 32 =========== 33 33 34 To query the attributes of a video input appli 34 To query the attributes of a video input applications initialize the 35 ``index`` field of struct :c:type:`v4l2_input` 35 ``index`` field of struct :c:type:`v4l2_input` and call the 36 :ref:`VIDIOC_ENUMINPUT` with a pointer to this 36 :ref:`VIDIOC_ENUMINPUT` with a pointer to this structure. Drivers 37 fill the rest of the structure or return an `` 37 fill the rest of the structure or return an ``EINVAL`` error code when the 38 index is out of bounds. To enumerate all input 38 index is out of bounds. To enumerate all inputs applications shall begin 39 at index zero, incrementing by one until the d 39 at index zero, incrementing by one until the driver returns ``EINVAL``. 40 40 41 .. tabularcolumns:: |p{3.0cm}|p{3.5cm}|p{10.8c 41 .. tabularcolumns:: |p{3.0cm}|p{3.5cm}|p{10.8cm}| 42 42 43 .. c:type:: v4l2_input 43 .. c:type:: v4l2_input 44 44 45 .. flat-table:: struct v4l2_input 45 .. flat-table:: struct v4l2_input 46 :header-rows: 0 46 :header-rows: 0 47 :stub-columns: 0 47 :stub-columns: 0 48 :widths: 1 1 2 48 :widths: 1 1 2 49 49 50 * - __u32 50 * - __u32 51 - ``index`` 51 - ``index`` 52 - Identifies the input, set by the appli 52 - Identifies the input, set by the application. 53 * - __u8 53 * - __u8 54 - ``name``\ [32] 54 - ``name``\ [32] 55 - Name of the video input, a NUL-termina 55 - Name of the video input, a NUL-terminated ASCII string, for 56 example: "Vin (Composite 2)". This inf 56 example: "Vin (Composite 2)". This information is intended for the 57 user, preferably the connector label o 57 user, preferably the connector label on the device itself. 58 * - __u32 58 * - __u32 59 - ``type`` 59 - ``type`` 60 - Type of the input, see :ref:`input-typ 60 - Type of the input, see :ref:`input-type`. 61 * - __u32 61 * - __u32 62 - ``audioset`` 62 - ``audioset`` 63 - Drivers can enumerate up to 32 video a 63 - Drivers can enumerate up to 32 video and audio inputs. This field 64 shows which audio inputs were selectab 64 shows which audio inputs were selectable as audio source if this 65 was the currently selected video input 65 was the currently selected video input. It is a bit mask. The LSB 66 corresponds to audio input 0, the MSB 66 corresponds to audio input 0, the MSB to input 31. Any number of 67 bits can be set, or none. 67 bits can be set, or none. 68 68 69 When the driver does not enumerate aud 69 When the driver does not enumerate audio inputs no bits must be 70 set. Applications shall not interpret 70 set. Applications shall not interpret this as lack of audio 71 support. Some drivers automatically se 71 support. Some drivers automatically select audio sources and do 72 not enumerate them since there is no c 72 not enumerate them since there is no choice anyway. 73 73 74 For details on audio inputs and how to 74 For details on audio inputs and how to select the current input 75 see :ref:`audio`. 75 see :ref:`audio`. 76 * - __u32 76 * - __u32 77 - ``tuner`` 77 - ``tuner`` 78 - Capture devices can have zero or more 78 - Capture devices can have zero or more tuners (RF demodulators). 79 When the ``type`` is set to ``V4L2_INP 79 When the ``type`` is set to ``V4L2_INPUT_TYPE_TUNER`` this is an 80 RF connector and this field identifies 80 RF connector and this field identifies the tuner. It corresponds 81 to struct :c:type:`v4l2_tuner` field ` 81 to struct :c:type:`v4l2_tuner` field ``index``. For 82 details on tuners see :ref:`tuner`. 82 details on tuners see :ref:`tuner`. 83 * - :ref:`v4l2_std_id <v4l2-std-id>` 83 * - :ref:`v4l2_std_id <v4l2-std-id>` 84 - ``std`` 84 - ``std`` 85 - Every video input supports one or more 85 - Every video input supports one or more different video standards. 86 This field is a set of all supported s 86 This field is a set of all supported standards. For details on 87 video standards and how to switch see 87 video standards and how to switch see :ref:`standard`. 88 * - __u32 88 * - __u32 89 - ``status`` 89 - ``status`` 90 - This field provides status information 90 - This field provides status information about the input. See 91 :ref:`input-status` for flags. With th 91 :ref:`input-status` for flags. With the exception of the sensor 92 orientation bits ``status`` is only va 92 orientation bits ``status`` is only valid when this is the current 93 input. 93 input. 94 * - __u32 94 * - __u32 95 - ``capabilities`` 95 - ``capabilities`` 96 - This field provides capabilities for t 96 - This field provides capabilities for the input. See 97 :ref:`input-capabilities` for flags. 97 :ref:`input-capabilities` for flags. 98 * - __u32 98 * - __u32 99 - ``reserved``\ [3] 99 - ``reserved``\ [3] 100 - Reserved for future extensions. Driver 100 - Reserved for future extensions. Drivers must set the array to 101 zero. 101 zero. 102 102 103 103 104 .. tabularcolumns:: |p{6.6cm}|p{1.0cm}|p{9.7cm 104 .. tabularcolumns:: |p{6.6cm}|p{1.0cm}|p{9.7cm}| 105 105 106 .. _input-type: 106 .. _input-type: 107 107 108 .. flat-table:: Input Types 108 .. flat-table:: Input Types 109 :header-rows: 0 109 :header-rows: 0 110 :stub-columns: 0 110 :stub-columns: 0 111 :widths: 3 1 4 111 :widths: 3 1 4 112 112 113 * - ``V4L2_INPUT_TYPE_TUNER`` 113 * - ``V4L2_INPUT_TYPE_TUNER`` 114 - 1 114 - 1 115 - This input uses a tuner (RF demodulato 115 - This input uses a tuner (RF demodulator). 116 * - ``V4L2_INPUT_TYPE_CAMERA`` 116 * - ``V4L2_INPUT_TYPE_CAMERA`` 117 - 2 117 - 2 118 - Any non-tuner video input, for example 118 - Any non-tuner video input, for example Composite Video, 119 S-Video, HDMI, camera sensor. The nami 119 S-Video, HDMI, camera sensor. The naming as ``_TYPE_CAMERA`` is historical, 120 today we would have called it ``_TYPE_ 120 today we would have called it ``_TYPE_VIDEO``. 121 * - ``V4L2_INPUT_TYPE_TOUCH`` 121 * - ``V4L2_INPUT_TYPE_TOUCH`` 122 - 3 122 - 3 123 - This input is a touch device for captu 123 - This input is a touch device for capturing raw touch data. 124 124 125 125 126 .. tabularcolumns:: |p{5.6cm}|p{2.6cm}|p{9.1cm 126 .. tabularcolumns:: |p{5.6cm}|p{2.6cm}|p{9.1cm}| 127 127 128 .. _input-status: 128 .. _input-status: 129 129 130 .. flat-table:: Input Status Flags 130 .. flat-table:: Input Status Flags 131 :header-rows: 0 131 :header-rows: 0 132 :stub-columns: 0 132 :stub-columns: 0 133 133 134 * - :cspan:`2` General 134 * - :cspan:`2` General 135 * - ``V4L2_IN_ST_NO_POWER`` 135 * - ``V4L2_IN_ST_NO_POWER`` 136 - 0x00000001 136 - 0x00000001 137 - Attached device is off. 137 - Attached device is off. 138 * - ``V4L2_IN_ST_NO_SIGNAL`` 138 * - ``V4L2_IN_ST_NO_SIGNAL`` 139 - 0x00000002 139 - 0x00000002 140 - 140 - 141 * - ``V4L2_IN_ST_NO_COLOR`` 141 * - ``V4L2_IN_ST_NO_COLOR`` 142 - 0x00000004 142 - 0x00000004 143 - The hardware supports color decoding, 143 - The hardware supports color decoding, but does not detect color 144 modulation in the signal. 144 modulation in the signal. 145 * - :cspan:`2` Sensor Orientation 145 * - :cspan:`2` Sensor Orientation 146 * - ``V4L2_IN_ST_HFLIP`` 146 * - ``V4L2_IN_ST_HFLIP`` 147 - 0x00000010 147 - 0x00000010 148 - The input is connected to a device tha 148 - The input is connected to a device that produces a signal that is 149 flipped horizontally and does not corr 149 flipped horizontally and does not correct this before passing the 150 signal to userspace. 150 signal to userspace. 151 * - ``V4L2_IN_ST_VFLIP`` 151 * - ``V4L2_IN_ST_VFLIP`` 152 - 0x00000020 152 - 0x00000020 153 - The input is connected to a device tha 153 - The input is connected to a device that produces a signal that is 154 flipped vertically and does not correc 154 flipped vertically and does not correct this before passing the 155 signal to userspace. 155 signal to userspace. 156 .. note:: A 180 degree rotation is the 156 .. note:: A 180 degree rotation is the same as HFLIP | VFLIP 157 * - :cspan:`2` Analog Video 157 * - :cspan:`2` Analog Video 158 * - ``V4L2_IN_ST_NO_H_LOCK`` 158 * - ``V4L2_IN_ST_NO_H_LOCK`` 159 - 0x00000100 159 - 0x00000100 160 - No horizontal sync lock. 160 - No horizontal sync lock. 161 * - ``V4L2_IN_ST_COLOR_KILL`` 161 * - ``V4L2_IN_ST_COLOR_KILL`` 162 - 0x00000200 162 - 0x00000200 163 - A color killer circuit automatically d 163 - A color killer circuit automatically disables color decoding when 164 it detects no color modulation. When t 164 it detects no color modulation. When this flag is set the color 165 killer is enabled *and* has shut off c 165 killer is enabled *and* has shut off color decoding. 166 * - ``V4L2_IN_ST_NO_V_LOCK`` 166 * - ``V4L2_IN_ST_NO_V_LOCK`` 167 - 0x00000400 167 - 0x00000400 168 - No vertical sync lock. 168 - No vertical sync lock. 169 * - ``V4L2_IN_ST_NO_STD_LOCK`` 169 * - ``V4L2_IN_ST_NO_STD_LOCK`` 170 - 0x00000800 170 - 0x00000800 171 - No standard format lock in case of aut 171 - No standard format lock in case of auto-detection format 172 by the component. 172 by the component. 173 * - :cspan:`2` Digital Video 173 * - :cspan:`2` Digital Video 174 * - ``V4L2_IN_ST_NO_SYNC`` 174 * - ``V4L2_IN_ST_NO_SYNC`` 175 - 0x00010000 175 - 0x00010000 176 - No synchronization lock. 176 - No synchronization lock. 177 * - ``V4L2_IN_ST_NO_EQU`` 177 * - ``V4L2_IN_ST_NO_EQU`` 178 - 0x00020000 178 - 0x00020000 179 - No equalizer lock. 179 - No equalizer lock. 180 * - ``V4L2_IN_ST_NO_CARRIER`` 180 * - ``V4L2_IN_ST_NO_CARRIER`` 181 - 0x00040000 181 - 0x00040000 182 - Carrier recovery failed. 182 - Carrier recovery failed. 183 * - :cspan:`2` VCR and Set-Top Box 183 * - :cspan:`2` VCR and Set-Top Box 184 * - ``V4L2_IN_ST_MACROVISION`` 184 * - ``V4L2_IN_ST_MACROVISION`` 185 - 0x01000000 185 - 0x01000000 186 - Macrovision is an analog copy preventi 186 - Macrovision is an analog copy prevention system mangling the video 187 signal to confuse video recorders. Whe 187 signal to confuse video recorders. When this flag is set 188 Macrovision has been detected. 188 Macrovision has been detected. 189 * - ``V4L2_IN_ST_NO_ACCESS`` 189 * - ``V4L2_IN_ST_NO_ACCESS`` 190 - 0x02000000 190 - 0x02000000 191 - Conditional access denied. 191 - Conditional access denied. 192 * - ``V4L2_IN_ST_VTR`` 192 * - ``V4L2_IN_ST_VTR`` 193 - 0x04000000 193 - 0x04000000 194 - VTR time constant. [?] 194 - VTR time constant. [?] 195 195 196 196 197 .. tabularcolumns:: |p{6.6cm}|p{2.4cm}|p{8.3cm 197 .. tabularcolumns:: |p{6.6cm}|p{2.4cm}|p{8.3cm}| 198 198 199 .. _input-capabilities: 199 .. _input-capabilities: 200 200 201 .. flat-table:: Input capabilities 201 .. flat-table:: Input capabilities 202 :header-rows: 0 202 :header-rows: 0 203 :stub-columns: 0 203 :stub-columns: 0 204 :widths: 3 1 4 204 :widths: 3 1 4 205 205 206 * - ``V4L2_IN_CAP_DV_TIMINGS`` 206 * - ``V4L2_IN_CAP_DV_TIMINGS`` 207 - 0x00000002 207 - 0x00000002 208 - This input supports setting video timi 208 - This input supports setting video timings by using 209 ``VIDIOC_S_DV_TIMINGS``. 209 ``VIDIOC_S_DV_TIMINGS``. 210 * - ``V4L2_IN_CAP_STD`` 210 * - ``V4L2_IN_CAP_STD`` 211 - 0x00000004 211 - 0x00000004 212 - This input supports setting the TV sta 212 - This input supports setting the TV standard by using 213 ``VIDIOC_S_STD``. 213 ``VIDIOC_S_STD``. 214 * - ``V4L2_IN_CAP_NATIVE_SIZE`` 214 * - ``V4L2_IN_CAP_NATIVE_SIZE`` 215 - 0x00000008 215 - 0x00000008 216 - This input supports setting the native 216 - This input supports setting the native size using the 217 ``V4L2_SEL_TGT_NATIVE_SIZE`` selection 217 ``V4L2_SEL_TGT_NATIVE_SIZE`` selection target, see 218 :ref:`v4l2-selections-common`. 218 :ref:`v4l2-selections-common`. 219 219 220 Return Value 220 Return Value 221 ============ 221 ============ 222 222 223 On success 0 is returned, on error -1 and the 223 On success 0 is returned, on error -1 and the ``errno`` variable is set 224 appropriately. The generic error codes are des 224 appropriately. The generic error codes are described at the 225 :ref:`Generic Error Codes <gen-errors>` chapte 225 :ref:`Generic Error Codes <gen-errors>` chapter. 226 226 227 EINVAL 227 EINVAL 228 The struct :c:type:`v4l2_input` ``index`` 228 The struct :c:type:`v4l2_input` ``index`` is out of 229 bounds. 229 bounds.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.