1059b1c5bSMauro Carvalho Chehab.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2407e84cdSMauro Carvalho Chehab.. c:namespace:: V4L
354f38fcaSMauro Carvalho Chehab
454f38fcaSMauro Carvalho Chehab.. _VIDIOC_ENUMINPUT:
554f38fcaSMauro Carvalho Chehab
654f38fcaSMauro Carvalho Chehab**********************
754f38fcaSMauro Carvalho Chehabioctl VIDIOC_ENUMINPUT
854f38fcaSMauro Carvalho Chehab**********************
954f38fcaSMauro Carvalho Chehab
1054f38fcaSMauro Carvalho ChehabName
1154f38fcaSMauro Carvalho Chehab====
1254f38fcaSMauro Carvalho Chehab
1354f38fcaSMauro Carvalho ChehabVIDIOC_ENUMINPUT - Enumerate video inputs
1454f38fcaSMauro Carvalho Chehab
1554f38fcaSMauro Carvalho ChehabSynopsis
1654f38fcaSMauro Carvalho Chehab========
1754f38fcaSMauro Carvalho Chehab
18407e84cdSMauro Carvalho Chehab.. c:macro:: VIDIOC_ENUMINPUT
1954f38fcaSMauro Carvalho Chehab
20407e84cdSMauro Carvalho Chehab``int ioctl(int fd, VIDIOC_ENUMINPUT, struct v4l2_input *argp)``
2154f38fcaSMauro Carvalho Chehab
2254f38fcaSMauro Carvalho ChehabArguments
2354f38fcaSMauro Carvalho Chehab=========
2454f38fcaSMauro Carvalho Chehab
2554f38fcaSMauro Carvalho Chehab``fd``
26407e84cdSMauro Carvalho Chehab    File descriptor returned by :c:func:`open()`.
2754f38fcaSMauro Carvalho Chehab
2854f38fcaSMauro Carvalho Chehab``argp``
2954f38fcaSMauro Carvalho Chehab    Pointer to struct :c:type:`v4l2_input`.
3054f38fcaSMauro Carvalho Chehab
3154f38fcaSMauro Carvalho ChehabDescription
3254f38fcaSMauro Carvalho Chehab===========
3354f38fcaSMauro Carvalho Chehab
3454f38fcaSMauro Carvalho ChehabTo query the attributes of a video input applications initialize the
3554f38fcaSMauro Carvalho Chehab``index`` field of struct :c:type:`v4l2_input` and call the
3654f38fcaSMauro Carvalho Chehab:ref:`VIDIOC_ENUMINPUT` with a pointer to this structure. Drivers
3754f38fcaSMauro Carvalho Chehabfill the rest of the structure or return an ``EINVAL`` error code when the
3854f38fcaSMauro Carvalho Chehabindex is out of bounds. To enumerate all inputs applications shall begin
3954f38fcaSMauro Carvalho Chehabat index zero, incrementing by one until the driver returns ``EINVAL``.
4054f38fcaSMauro Carvalho Chehab
41*fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{3.0cm}|p{3.5cm}|p{10.8cm}|
4254f38fcaSMauro Carvalho Chehab
4354f38fcaSMauro Carvalho Chehab.. c:type:: v4l2_input
4454f38fcaSMauro Carvalho Chehab
4554f38fcaSMauro Carvalho Chehab.. flat-table:: struct v4l2_input
4654f38fcaSMauro Carvalho Chehab    :header-rows:  0
4754f38fcaSMauro Carvalho Chehab    :stub-columns: 0
4854f38fcaSMauro Carvalho Chehab    :widths:       1 1 2
4954f38fcaSMauro Carvalho Chehab
5054f38fcaSMauro Carvalho Chehab    * - __u32
5154f38fcaSMauro Carvalho Chehab      - ``index``
5254f38fcaSMauro Carvalho Chehab      - Identifies the input, set by the application.
5354f38fcaSMauro Carvalho Chehab    * - __u8
5454f38fcaSMauro Carvalho Chehab      - ``name``\ [32]
5554f38fcaSMauro Carvalho Chehab      - Name of the video input, a NUL-terminated ASCII string, for
5654f38fcaSMauro Carvalho Chehab	example: "Vin (Composite 2)". This information is intended for the
5754f38fcaSMauro Carvalho Chehab	user, preferably the connector label on the device itself.
5854f38fcaSMauro Carvalho Chehab    * - __u32
5954f38fcaSMauro Carvalho Chehab      - ``type``
6054f38fcaSMauro Carvalho Chehab      - Type of the input, see :ref:`input-type`.
6154f38fcaSMauro Carvalho Chehab    * - __u32
6254f38fcaSMauro Carvalho Chehab      - ``audioset``
6354f38fcaSMauro Carvalho Chehab      - Drivers can enumerate up to 32 video and audio inputs. This field
6454f38fcaSMauro Carvalho Chehab	shows which audio inputs were selectable as audio source if this
6554f38fcaSMauro Carvalho Chehab	was the currently selected video input. It is a bit mask. The LSB
6654f38fcaSMauro Carvalho Chehab	corresponds to audio input 0, the MSB to input 31. Any number of
6754f38fcaSMauro Carvalho Chehab	bits can be set, or none.
6854f38fcaSMauro Carvalho Chehab
6954f38fcaSMauro Carvalho Chehab	When the driver does not enumerate audio inputs no bits must be
7054f38fcaSMauro Carvalho Chehab	set. Applications shall not interpret this as lack of audio
7154f38fcaSMauro Carvalho Chehab	support. Some drivers automatically select audio sources and do
7254f38fcaSMauro Carvalho Chehab	not enumerate them since there is no choice anyway.
7354f38fcaSMauro Carvalho Chehab
7454f38fcaSMauro Carvalho Chehab	For details on audio inputs and how to select the current input
7554f38fcaSMauro Carvalho Chehab	see :ref:`audio`.
7654f38fcaSMauro Carvalho Chehab    * - __u32
7754f38fcaSMauro Carvalho Chehab      - ``tuner``
7854f38fcaSMauro Carvalho Chehab      - Capture devices can have zero or more tuners (RF demodulators).
7954f38fcaSMauro Carvalho Chehab	When the ``type`` is set to ``V4L2_INPUT_TYPE_TUNER`` this is an
8054f38fcaSMauro Carvalho Chehab	RF connector and this field identifies the tuner. It corresponds
8154f38fcaSMauro Carvalho Chehab	to struct :c:type:`v4l2_tuner` field ``index``. For
8254f38fcaSMauro Carvalho Chehab	details on tuners see :ref:`tuner`.
8354f38fcaSMauro Carvalho Chehab    * - :ref:`v4l2_std_id <v4l2-std-id>`
8454f38fcaSMauro Carvalho Chehab      - ``std``
8554f38fcaSMauro Carvalho Chehab      - Every video input supports one or more different video standards.
8654f38fcaSMauro Carvalho Chehab	This field is a set of all supported standards. For details on
8754f38fcaSMauro Carvalho Chehab	video standards and how to switch see :ref:`standard`.
8854f38fcaSMauro Carvalho Chehab    * - __u32
8954f38fcaSMauro Carvalho Chehab      - ``status``
9054f38fcaSMauro Carvalho Chehab      - This field provides status information about the input. See
9154f38fcaSMauro Carvalho Chehab	:ref:`input-status` for flags. With the exception of the sensor
9254f38fcaSMauro Carvalho Chehab	orientation bits ``status`` is only valid when this is the current
9354f38fcaSMauro Carvalho Chehab	input.
9454f38fcaSMauro Carvalho Chehab    * - __u32
9554f38fcaSMauro Carvalho Chehab      - ``capabilities``
9654f38fcaSMauro Carvalho Chehab      - This field provides capabilities for the input. See
9754f38fcaSMauro Carvalho Chehab	:ref:`input-capabilities` for flags.
9854f38fcaSMauro Carvalho Chehab    * - __u32
9954f38fcaSMauro Carvalho Chehab      - ``reserved``\ [3]
10054f38fcaSMauro Carvalho Chehab      - Reserved for future extensions. Drivers must set the array to
10154f38fcaSMauro Carvalho Chehab	zero.
10254f38fcaSMauro Carvalho Chehab
10354f38fcaSMauro Carvalho Chehab
104*fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{6.6cm}|p{1.0cm}|p{9.7cm}|
10554f38fcaSMauro Carvalho Chehab
10654f38fcaSMauro Carvalho Chehab.. _input-type:
10754f38fcaSMauro Carvalho Chehab
10854f38fcaSMauro Carvalho Chehab.. flat-table:: Input Types
10954f38fcaSMauro Carvalho Chehab    :header-rows:  0
11054f38fcaSMauro Carvalho Chehab    :stub-columns: 0
11154f38fcaSMauro Carvalho Chehab    :widths:       3 1 4
11254f38fcaSMauro Carvalho Chehab
11354f38fcaSMauro Carvalho Chehab    * - ``V4L2_INPUT_TYPE_TUNER``
11454f38fcaSMauro Carvalho Chehab      - 1
11554f38fcaSMauro Carvalho Chehab      - This input uses a tuner (RF demodulator).
11654f38fcaSMauro Carvalho Chehab    * - ``V4L2_INPUT_TYPE_CAMERA``
11754f38fcaSMauro Carvalho Chehab      - 2
11854f38fcaSMauro Carvalho Chehab      - Any non-tuner video input, for example Composite Video,
11954f38fcaSMauro Carvalho Chehab	S-Video, HDMI, camera sensor. The naming as ``_TYPE_CAMERA`` is historical,
12054f38fcaSMauro Carvalho Chehab	today we would have called it ``_TYPE_VIDEO``.
12154f38fcaSMauro Carvalho Chehab    * - ``V4L2_INPUT_TYPE_TOUCH``
12254f38fcaSMauro Carvalho Chehab      - 3
12354f38fcaSMauro Carvalho Chehab      - This input is a touch device for capturing raw touch data.
12454f38fcaSMauro Carvalho Chehab
12554f38fcaSMauro Carvalho Chehab
126*fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{5.6cm}|p{2.6cm}|p{9.1cm}|
12754f38fcaSMauro Carvalho Chehab
12854f38fcaSMauro Carvalho Chehab.. _input-status:
12954f38fcaSMauro Carvalho Chehab
13054f38fcaSMauro Carvalho Chehab.. flat-table:: Input Status Flags
13154f38fcaSMauro Carvalho Chehab    :header-rows:  0
13254f38fcaSMauro Carvalho Chehab    :stub-columns: 0
13354f38fcaSMauro Carvalho Chehab
13454f38fcaSMauro Carvalho Chehab    * - :cspan:`2` General
13554f38fcaSMauro Carvalho Chehab    * - ``V4L2_IN_ST_NO_POWER``
13654f38fcaSMauro Carvalho Chehab      - 0x00000001
13754f38fcaSMauro Carvalho Chehab      - Attached device is off.
13854f38fcaSMauro Carvalho Chehab    * - ``V4L2_IN_ST_NO_SIGNAL``
13954f38fcaSMauro Carvalho Chehab      - 0x00000002
14054f38fcaSMauro Carvalho Chehab      -
14154f38fcaSMauro Carvalho Chehab    * - ``V4L2_IN_ST_NO_COLOR``
14254f38fcaSMauro Carvalho Chehab      - 0x00000004
14354f38fcaSMauro Carvalho Chehab      - The hardware supports color decoding, but does not detect color
14454f38fcaSMauro Carvalho Chehab	modulation in the signal.
14554f38fcaSMauro Carvalho Chehab    * - :cspan:`2` Sensor Orientation
14654f38fcaSMauro Carvalho Chehab    * - ``V4L2_IN_ST_HFLIP``
14754f38fcaSMauro Carvalho Chehab      - 0x00000010
14854f38fcaSMauro Carvalho Chehab      - The input is connected to a device that produces a signal that is
14954f38fcaSMauro Carvalho Chehab	flipped horizontally and does not correct this before passing the
15054f38fcaSMauro Carvalho Chehab	signal to userspace.
15154f38fcaSMauro Carvalho Chehab    * - ``V4L2_IN_ST_VFLIP``
15254f38fcaSMauro Carvalho Chehab      - 0x00000020
15354f38fcaSMauro Carvalho Chehab      - The input is connected to a device that produces a signal that is
15454f38fcaSMauro Carvalho Chehab	flipped vertically and does not correct this before passing the
15554f38fcaSMauro Carvalho Chehab	signal to userspace.
15654f38fcaSMauro Carvalho Chehab	.. note:: A 180 degree rotation is the same as HFLIP | VFLIP
15754f38fcaSMauro Carvalho Chehab    * - :cspan:`2` Analog Video
15854f38fcaSMauro Carvalho Chehab    * - ``V4L2_IN_ST_NO_H_LOCK``
15954f38fcaSMauro Carvalho Chehab      - 0x00000100
16054f38fcaSMauro Carvalho Chehab      - No horizontal sync lock.
16154f38fcaSMauro Carvalho Chehab    * - ``V4L2_IN_ST_COLOR_KILL``
16254f38fcaSMauro Carvalho Chehab      - 0x00000200
16354f38fcaSMauro Carvalho Chehab      - A color killer circuit automatically disables color decoding when
16454f38fcaSMauro Carvalho Chehab	it detects no color modulation. When this flag is set the color
16554f38fcaSMauro Carvalho Chehab	killer is enabled *and* has shut off color decoding.
16654f38fcaSMauro Carvalho Chehab    * - ``V4L2_IN_ST_NO_V_LOCK``
16754f38fcaSMauro Carvalho Chehab      - 0x00000400
16854f38fcaSMauro Carvalho Chehab      - No vertical sync lock.
16954f38fcaSMauro Carvalho Chehab    * - ``V4L2_IN_ST_NO_STD_LOCK``
17054f38fcaSMauro Carvalho Chehab      - 0x00000800
17154f38fcaSMauro Carvalho Chehab      - No standard format lock in case of auto-detection format
17254f38fcaSMauro Carvalho Chehab	by the component.
17354f38fcaSMauro Carvalho Chehab    * - :cspan:`2` Digital Video
17454f38fcaSMauro Carvalho Chehab    * - ``V4L2_IN_ST_NO_SYNC``
17554f38fcaSMauro Carvalho Chehab      - 0x00010000
17654f38fcaSMauro Carvalho Chehab      - No synchronization lock.
17754f38fcaSMauro Carvalho Chehab    * - ``V4L2_IN_ST_NO_EQU``
17854f38fcaSMauro Carvalho Chehab      - 0x00020000
17954f38fcaSMauro Carvalho Chehab      - No equalizer lock.
18054f38fcaSMauro Carvalho Chehab    * - ``V4L2_IN_ST_NO_CARRIER``
18154f38fcaSMauro Carvalho Chehab      - 0x00040000
18254f38fcaSMauro Carvalho Chehab      - Carrier recovery failed.
18354f38fcaSMauro Carvalho Chehab    * - :cspan:`2` VCR and Set-Top Box
18454f38fcaSMauro Carvalho Chehab    * - ``V4L2_IN_ST_MACROVISION``
18554f38fcaSMauro Carvalho Chehab      - 0x01000000
18654f38fcaSMauro Carvalho Chehab      - Macrovision is an analog copy prevention system mangling the video
18754f38fcaSMauro Carvalho Chehab	signal to confuse video recorders. When this flag is set
18854f38fcaSMauro Carvalho Chehab	Macrovision has been detected.
18954f38fcaSMauro Carvalho Chehab    * - ``V4L2_IN_ST_NO_ACCESS``
19054f38fcaSMauro Carvalho Chehab      - 0x02000000
19154f38fcaSMauro Carvalho Chehab      - Conditional access denied.
19254f38fcaSMauro Carvalho Chehab    * - ``V4L2_IN_ST_VTR``
19354f38fcaSMauro Carvalho Chehab      - 0x04000000
19454f38fcaSMauro Carvalho Chehab      - VTR time constant. [?]
19554f38fcaSMauro Carvalho Chehab
19654f38fcaSMauro Carvalho Chehab
197*fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{6.6cm}|p{2.4cm}|p{8.3cm}|
19854f38fcaSMauro Carvalho Chehab
19954f38fcaSMauro Carvalho Chehab.. _input-capabilities:
20054f38fcaSMauro Carvalho Chehab
20154f38fcaSMauro Carvalho Chehab.. flat-table:: Input capabilities
20254f38fcaSMauro Carvalho Chehab    :header-rows:  0
20354f38fcaSMauro Carvalho Chehab    :stub-columns: 0
20454f38fcaSMauro Carvalho Chehab    :widths:       3 1 4
20554f38fcaSMauro Carvalho Chehab
20654f38fcaSMauro Carvalho Chehab    * - ``V4L2_IN_CAP_DV_TIMINGS``
20754f38fcaSMauro Carvalho Chehab      - 0x00000002
20854f38fcaSMauro Carvalho Chehab      - This input supports setting video timings by using
20954f38fcaSMauro Carvalho Chehab	``VIDIOC_S_DV_TIMINGS``.
21054f38fcaSMauro Carvalho Chehab    * - ``V4L2_IN_CAP_STD``
21154f38fcaSMauro Carvalho Chehab      - 0x00000004
21254f38fcaSMauro Carvalho Chehab      - This input supports setting the TV standard by using
21354f38fcaSMauro Carvalho Chehab	``VIDIOC_S_STD``.
21454f38fcaSMauro Carvalho Chehab    * - ``V4L2_IN_CAP_NATIVE_SIZE``
21554f38fcaSMauro Carvalho Chehab      - 0x00000008
21654f38fcaSMauro Carvalho Chehab      - This input supports setting the native size using the
21754f38fcaSMauro Carvalho Chehab	``V4L2_SEL_TGT_NATIVE_SIZE`` selection target, see
21854f38fcaSMauro Carvalho Chehab	:ref:`v4l2-selections-common`.
21954f38fcaSMauro Carvalho Chehab
22054f38fcaSMauro Carvalho ChehabReturn Value
22154f38fcaSMauro Carvalho Chehab============
22254f38fcaSMauro Carvalho Chehab
22354f38fcaSMauro Carvalho ChehabOn success 0 is returned, on error -1 and the ``errno`` variable is set
22454f38fcaSMauro Carvalho Chehabappropriately. The generic error codes are described at the
22554f38fcaSMauro Carvalho Chehab:ref:`Generic Error Codes <gen-errors>` chapter.
22654f38fcaSMauro Carvalho Chehab
22754f38fcaSMauro Carvalho ChehabEINVAL
22854f38fcaSMauro Carvalho Chehab    The struct :c:type:`v4l2_input` ``index`` is out of
22954f38fcaSMauro Carvalho Chehab    bounds.
230