| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
- .. c:namespace:: V4L
- .. _VIDIOC_ENUMOUTPUT:
- ***********************
- ioctl VIDIOC_ENUMOUTPUT
- ***********************
- Name
- ====
- VIDIOC_ENUMOUTPUT - Enumerate video outputs
- Synopsis
- ========
- .. c:macro:: VIDIOC_ENUMOUTPUT
- ``int ioctl(int fd, VIDIOC_ENUMOUTPUT, struct v4l2_output *argp)``
- Arguments
- =========
- ``fd``
- File descriptor returned by :c:func:`open()`.
- ``argp``
- Pointer to struct :c:type:`v4l2_output`.
- Description
- ===========
- To query the attributes of a video outputs applications initialize the
- ``index`` field of struct :c:type:`v4l2_output` and call
- the :ref:`VIDIOC_ENUMOUTPUT` 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 outputs applications
- shall begin at index zero, incrementing by one until the driver returns
- ``EINVAL``.
- .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.5cm}|
- .. c:type:: v4l2_output
- .. flat-table:: struct v4l2_output
- :header-rows: 0
- :stub-columns: 0
- :widths: 1 1 2
- * - __u32
- - ``index``
- - Identifies the output, set by the application.
- * - __u8
- - ``name``\ [32]
- - Name of the video output, a NUL-terminated ASCII string, for
- example: "Vout". This information is intended for the user,
- preferably the connector label on the device itself.
- * - __u32
- - ``type``
- - Type of the output, see :ref:`output-type`.
- * - __u32
- - ``audioset``
- - Drivers can enumerate up to 32 video and audio outputs. This field
- shows which audio outputs were selectable as the current output if
- this was the currently selected video output. It is a bit mask.
- The LSB corresponds to audio output 0, the MSB to output 31. Any
- number of bits can be set, or none.
- When the driver does not enumerate audio outputs no bits must be
- set. Applications shall not interpret this as lack of audio
- support. Drivers may automatically select audio outputs without
- enumerating them.
- For details on audio outputs and how to select the current output
- see :ref:`audio`.
- * - __u32
- - ``modulator``
- - Output devices can have zero or more RF modulators. When the
- ``type`` is ``V4L2_OUTPUT_TYPE_MODULATOR`` this is an RF connector
- and this field identifies the modulator. It corresponds to struct
- :c:type:`v4l2_modulator` field ``index``. For
- details on modulators see :ref:`tuner`.
- * - :ref:`v4l2_std_id <v4l2-std-id>`
- - ``std``
- - Every video output 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`.
- * - __u32
- - ``capabilities``
- - This field provides capabilities for the output. See
- :ref:`output-capabilities` for flags.
- * - __u32
- - ``reserved``\ [3]
- - Reserved for future extensions. Drivers must set the array to
- zero.
- .. tabularcolumns:: |p{7.5cm}|p{0.6cm}|p{9.2cm}|
- .. _output-type:
- .. flat-table:: Output Type
- :header-rows: 0
- :stub-columns: 0
- :widths: 3 1 4
- * - ``V4L2_OUTPUT_TYPE_MODULATOR``
- - 1
- - This output is an analog TV modulator.
- * - ``V4L2_OUTPUT_TYPE_ANALOG``
- - 2
- - Any non-modulator video output, for example Composite Video,
- S-Video, HDMI. The naming as ``_TYPE_ANALOG`` is historical,
- today we would have called it ``_TYPE_VIDEO``.
- * - ``V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY``
- - 3
- - The video output will be copied to a :ref:`video overlay <overlay>`.
- .. tabularcolumns:: |p{6.4cm}|p{2.4cm}|p{8.5cm}|
- .. _output-capabilities:
- .. flat-table:: Output capabilities
- :header-rows: 0
- :stub-columns: 0
- :widths: 3 1 4
- * - ``V4L2_OUT_CAP_DV_TIMINGS``
- - 0x00000002
- - This output supports setting video timings by using
- ``VIDIOC_S_DV_TIMINGS``.
- * - ``V4L2_OUT_CAP_STD``
- - 0x00000004
- - This output supports setting the TV standard by using
- ``VIDIOC_S_STD``.
- * - ``V4L2_OUT_CAP_NATIVE_SIZE``
- - 0x00000008
- - This output 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 :c:type:`v4l2_output` ``index`` is out of
- bounds.
|