diff options
Diffstat (limited to 'Documentation/media/uapi/v4l/vidioc-enuminput.rst')
-rw-r--r-- | Documentation/media/uapi/v4l/vidioc-enuminput.rst | 367 |
1 files changed, 367 insertions, 0 deletions
diff --git a/Documentation/media/uapi/v4l/vidioc-enuminput.rst b/Documentation/media/uapi/v4l/vidioc-enuminput.rst new file mode 100644 index 000000000000..5060f54e3d18 --- /dev/null +++ b/Documentation/media/uapi/v4l/vidioc-enuminput.rst @@ -0,0 +1,367 @@ +.. -*- coding: utf-8; mode: rst -*- + +.. _VIDIOC_ENUMINPUT: + +********************** +ioctl VIDIOC_ENUMINPUT +********************** + +Name +==== + +VIDIOC_ENUMINPUT - Enumerate video inputs + + +Synopsis +======== + +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_input *argp ) + + +Arguments +========= + +``fd`` + File descriptor returned by :ref:`open() <func-open>`. + +``request`` + VIDIOC_ENUMINPUT + +``argp`` + + +Description +=========== + +To query the attributes of a video input applications initialize the +``index`` field of struct :ref:`v4l2_input <v4l2-input>` and call the +:ref:`VIDIOC_ENUMINPUT` ioctl with a pointer to this structure. Drivers +fill the rest of the structure or return an ``EINVAL`` error code when the +index is out of bounds. To enumerate all inputs applications shall begin +at index zero, incrementing by one until the driver returns ``EINVAL``. + + +.. _v4l2-input: + +.. flat-table:: struct v4l2_input + :header-rows: 0 + :stub-columns: 0 + :widths: 1 1 2 + + + - .. row 1 + + - __u32 + + - ``index`` + + - Identifies the input, set by the application. + + - .. row 2 + + - __u8 + + - ``name``\ [32] + + - Name of the video input, a NUL-terminated ASCII string, for + example: "Vin (Composite 2)". This information is intended for the + user, preferably the connector label on the device itself. + + - .. row 3 + + - __u32 + + - ``type`` + + - Type of the input, see :ref:`input-type`. + + - .. row 4 + + - __u32 + + - ``audioset`` + + - Drivers can enumerate up to 32 video and audio inputs. This field + shows which audio inputs were selectable as audio source if this + was the currently selected video input. It is a bit mask. The LSB + corresponds to audio input 0, the MSB to input 31. Any number of + bits can be set, or none. + + When the driver does not enumerate audio inputs no bits must be + set. Applications shall not interpret this as lack of audio + support. Some drivers automatically select audio sources and do + not enumerate them since there is no choice anyway. + + For details on audio inputs and how to select the current input + see :ref:`audio`. + + - .. row 5 + + - __u32 + + - ``tuner`` + + - Capture devices can have zero or more tuners (RF demodulators). + When the ``type`` is set to ``V4L2_INPUT_TYPE_TUNER`` this is an + RF connector and this field identifies the tuner. It corresponds + to struct :ref:`v4l2_tuner <v4l2-tuner>` field ``index``. For + details on tuners see :ref:`tuner`. + + - .. row 6 + + - :ref:`v4l2_std_id <v4l2-std-id>` + + - ``std`` + + - Every video input supports one or more different video standards. + This field is a set of all supported standards. For details on + video standards and how to switch see :ref:`standard`. + + - .. row 7 + + - __u32 + + - ``status`` + + - This field provides status information about the input. See + :ref:`input-status` for flags. With the exception of the sensor + orientation bits ``status`` is only valid when this is the current + input. + + - .. row 8 + + - __u32 + + - ``capabilities`` + + - This field provides capabilities for the input. See + :ref:`input-capabilities` for flags. + + - .. row 9 + + - __u32 + + - ``reserved``\ [3] + + - Reserved for future extensions. Drivers must set the array to + zero. + + + +.. _input-type: + +.. flat-table:: Input Types + :header-rows: 0 + :stub-columns: 0 + :widths: 3 1 4 + + + - .. row 1 + + - ``V4L2_INPUT_TYPE_TUNER`` + + - 1 + + - This input uses a tuner (RF demodulator). + + - .. row 2 + + - ``V4L2_INPUT_TYPE_CAMERA`` + + - 2 + + - Analog baseband input, for example CVBS / Composite Video, + S-Video, RGB. + + + +.. _input-status: + +.. flat-table:: Input Status Flags + :header-rows: 0 + :stub-columns: 0 + + + - .. row 1 + + - :cspan:`2` General + + - .. row 2 + + - ``V4L2_IN_ST_NO_POWER`` + + - 0x00000001 + + - Attached device is off. + + - .. row 3 + + - ``V4L2_IN_ST_NO_SIGNAL`` + + - 0x00000002 + + - + + - .. row 4 + + - ``V4L2_IN_ST_NO_COLOR`` + + - 0x00000004 + + - The hardware supports color decoding, but does not detect color + modulation in the signal. + + - .. row 5 + + - :cspan:`2` Sensor Orientation + + - .. row 6 + + - ``V4L2_IN_ST_HFLIP`` + + - 0x00000010 + + - The input is connected to a device that produces a signal that is + flipped horizontally and does not correct this before passing the + signal to userspace. + + - .. row 7 + + - ``V4L2_IN_ST_VFLIP`` + + - 0x00000020 + + - The input is connected to a device that produces a signal that is + flipped vertically and does not correct this before passing the + signal to userspace. + .. note:: A 180 degree rotation is the same as HFLIP | VFLIP + + - .. row 8 + + - :cspan:`2` Analog Video + + - .. row 9 + + - ``V4L2_IN_ST_NO_H_LOCK`` + + - 0x00000100 + + - No horizontal sync lock. + + - .. row 10 + + - ``V4L2_IN_ST_COLOR_KILL`` + + - 0x00000200 + + - A color killer circuit automatically disables color decoding when + it detects no color modulation. When this flag is set the color + killer is enabled *and* has shut off color decoding. + + - .. row 11 + + - :cspan:`2` Digital Video + + - .. row 12 + + - ``V4L2_IN_ST_NO_SYNC`` + + - 0x00010000 + + - No synchronization lock. + + - .. row 13 + + - ``V4L2_IN_ST_NO_EQU`` + + - 0x00020000 + + - No equalizer lock. + + - .. row 14 + + - ``V4L2_IN_ST_NO_CARRIER`` + + - 0x00040000 + + - Carrier recovery failed. + + - .. row 15 + + - :cspan:`2` VCR and Set-Top Box + + - .. row 16 + + - ``V4L2_IN_ST_MACROVISION`` + + - 0x01000000 + + - Macrovision is an analog copy prevention system mangling the video + signal to confuse video recorders. When this flag is set + Macrovision has been detected. + + - .. row 17 + + - ``V4L2_IN_ST_NO_ACCESS`` + + - 0x02000000 + + - Conditional access denied. + + - .. row 18 + + - ``V4L2_IN_ST_VTR`` + + - 0x04000000 + + - VTR time constant. [?] + + + +.. _input-capabilities: + +.. flat-table:: Input capabilities + :header-rows: 0 + :stub-columns: 0 + :widths: 3 1 4 + + + - .. row 1 + + - ``V4L2_IN_CAP_DV_TIMINGS`` + + - 0x00000002 + + - This input supports setting video timings by using + VIDIOC_S_DV_TIMINGS. + + - .. row 2 + + - ``V4L2_IN_CAP_STD`` + + - 0x00000004 + + - This input supports setting the TV standard by using + VIDIOC_S_STD. + + - .. row 3 + + - ``V4L2_IN_CAP_NATIVE_SIZE`` + + - 0x00000008 + + - This input supports setting the native size using the + ``V4L2_SEL_TGT_NATIVE_SIZE`` selection target, see + :ref:`v4l2-selections-common`. + + +Return Value +============ + +On success 0 is returned, on error -1 and the ``errno`` variable is set +appropriately. The generic error codes are described at the +:ref:`Generic Error Codes <gen-errors>` chapter. + +EINVAL + The struct :ref:`v4l2_input <v4l2-input>` ``index`` is out of + bounds. |