Merge branches 'acpi-button', 'acpica' and 'acpi-sysfs'
[sfrench/cifs-2.6.git] / Documentation / media / uapi / v4l / video.rst
1 .. -*- coding: utf-8; mode: rst -*-
2
3 .. _video:
4
5 ************************
6 Video Inputs and Outputs
7 ************************
8
9 Video inputs and outputs are physical connectors of a device. These can
10 be for example RF connectors (antenna/cable), CVBS a.k.a. Composite
11 Video, S-Video and RGB connectors. Camera sensors are also considered to
12 be a video input. Video and VBI capture devices have inputs. Video and
13 VBI output devices have outputs, at least one each. Radio devices have
14 no video inputs or outputs.
15
16 To learn about the number and attributes of the available inputs and
17 outputs applications can enumerate them with the
18 :ref:`VIDIOC_ENUMINPUT` and
19 :ref:`VIDIOC_ENUMOUTPUT` ioctl, respectively. The
20 struct :c:type:`v4l2_input` returned by the
21 :ref:`VIDIOC_ENUMINPUT` ioctl also contains signal
22 :status information applicable when the current video input is queried.
23
24 The :ref:`VIDIOC_G_INPUT <VIDIOC_G_INPUT>` and
25 :ref:`VIDIOC_G_OUTPUT <VIDIOC_G_OUTPUT>` ioctls return the index of
26 the current video input or output. To select a different input or output
27 applications call the :ref:`VIDIOC_S_INPUT <VIDIOC_G_INPUT>` and
28 :ref:`VIDIOC_S_OUTPUT <VIDIOC_G_OUTPUT>` ioctls. Drivers must
29 implement all the input ioctls when the device has one or more inputs,
30 all the output ioctls when the device has one or more outputs.
31
32 Example: 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
56 Example: 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     }