69 lines · plain
1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later2 3.. _video:4 5************************6Video Inputs and Outputs7************************8 9Video inputs and outputs are physical connectors of a device. These can10be for example: RF connectors (antenna/cable), CVBS a.k.a. Composite11Video, S-Video and RGB connectors. Camera sensors are also considered to12be a video input. Video and VBI capture devices have inputs. Video and13VBI output devices have outputs, at least one each. Radio devices have14no video inputs or outputs.15 16To learn about the number and attributes of the available inputs and17outputs applications can enumerate them with the18:ref:`VIDIOC_ENUMINPUT` and19:ref:`VIDIOC_ENUMOUTPUT` ioctl, respectively. The20struct :c:type:`v4l2_input` returned by the21:ref:`VIDIOC_ENUMINPUT` ioctl also contains signal22status information applicable when the current video input is queried.23 24The :ref:`VIDIOC_G_INPUT <VIDIOC_G_INPUT>` and25:ref:`VIDIOC_G_OUTPUT <VIDIOC_G_OUTPUT>` ioctls return the index of26the current video input or output. To select a different input or output27applications call the :ref:`VIDIOC_S_INPUT <VIDIOC_G_INPUT>` and28:ref:`VIDIOC_S_OUTPUT <VIDIOC_G_OUTPUT>` ioctls. Drivers must29implement all the input ioctls when the device has one or more inputs,30all the output ioctls when the device has one or more outputs.31 32Example: Information about the current video input33==================================================34 35.. code-block:: c36 37 struct v4l2_input input;38 int index;39 40 if (-1 == ioctl(fd, VIDIOC_G_INPUT, &index)) {41 perror("VIDIOC_G_INPUT");42 exit(EXIT_FAILURE);43 }44 45 memset(&input, 0, sizeof(input));46 input.index = index;47 48 if (-1 == ioctl(fd, VIDIOC_ENUMINPUT, &input)) {49 perror("VIDIOC_ENUMINPUT");50 exit(EXIT_FAILURE);51 }52 53 printf("Current input: %s\\n", input.name);54 55 56Example: Switching to the first video input57===========================================58 59.. code-block:: c60 61 int index;62 63 index = 0;64 65 if (-1 == ioctl(fd, VIDIOC_S_INPUT, &index)) {66 perror("VIDIOC_S_INPUT");67 exit(EXIT_FAILURE);68 }69