1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 2 3.. _video: 4 5************************ 6Video Inputs and Outputs 7************************ 8 9Video inputs and outputs are physical connectors of a device. These can 10be for example: RF connectors (antenna/cable), CVBS a.k.a. Composite 11Video, S-Video and RGB connectors. Camera sensors are also considered to 12be a video input. Video and VBI capture devices have inputs. Video and 13VBI output devices have outputs, at least one each. Radio devices have 14no video inputs or outputs. 15 16To learn about the number and attributes of the available inputs and 17outputs applications can enumerate them with the 18:ref:`VIDIOC_ENUMINPUT` and 19:ref:`VIDIOC_ENUMOUTPUT` ioctl, respectively. The 20struct :c:type:`v4l2_input` returned by the 21:ref:`VIDIOC_ENUMINPUT` ioctl also contains signal 22status information applicable when the current video input is queried. 23 24The :ref:`VIDIOC_G_INPUT <VIDIOC_G_INPUT>` and 25:ref:`VIDIOC_G_OUTPUT <VIDIOC_G_OUTPUT>` ioctls return the index of 26the current video input or output. To select a different input or output 27applications call the :ref:`VIDIOC_S_INPUT <VIDIOC_G_INPUT>` and 28:ref:`VIDIOC_S_OUTPUT <VIDIOC_G_OUTPUT>` ioctls. Drivers must 29implement 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 input 33================================================== 34 35.. code-block:: c 36 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 input 57=========================================== 58 59.. code-block:: c 60 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