Merge remote-tracking branch 'asoc/fix/intel' into asoc-linus
[sfrench/cifs-2.6.git] / Documentation / media / uapi / v4l / vidioc-enumoutput.rst
1 .. -*- coding: utf-8; mode: rst -*-
2
3 .. _VIDIOC_ENUMOUTPUT:
4
5 ***********************
6 ioctl VIDIOC_ENUMOUTPUT
7 ***********************
8
9 Name
10 ====
11
12 VIDIOC_ENUMOUTPUT - Enumerate video outputs
13
14
15 Synopsis
16 ========
17
18 .. cpp:function:: int ioctl( int fd, int request, struct v4l2_output *argp )
19
20
21 Arguments
22 =========
23
24 ``fd``
25     File descriptor returned by :ref:`open() <func-open>`.
26
27 ``request``
28     VIDIOC_ENUMOUTPUT
29
30 ``argp``
31
32
33 Description
34 ===========
35
36 To query the attributes of a video outputs applications initialize the
37 ``index`` field of struct :ref:`v4l2_output <v4l2-output>` and call
38 the :ref:`VIDIOC_ENUMOUTPUT` ioctl with a pointer to this structure.
39 Drivers fill the rest of the structure or return an ``EINVAL`` error code
40 when the index is out of bounds. To enumerate all outputs applications
41 shall begin at index zero, incrementing by one until the driver returns
42 EINVAL.
43
44
45 .. _v4l2-output:
46
47 .. flat-table:: struct v4l2_output
48     :header-rows:  0
49     :stub-columns: 0
50     :widths:       1 1 2
51
52
53     -  .. row 1
54
55        -  __u32
56
57        -  ``index``
58
59        -  Identifies the output, set by the application.
60
61     -  .. row 2
62
63        -  __u8
64
65        -  ``name``\ [32]
66
67        -  Name of the video output, a NUL-terminated ASCII string, for
68           example: "Vout". This information is intended for the user,
69           preferably the connector label on the device itself.
70
71     -  .. row 3
72
73        -  __u32
74
75        -  ``type``
76
77        -  Type of the output, see :ref:`output-type`.
78
79     -  .. row 4
80
81        -  __u32
82
83        -  ``audioset``
84
85        -  Drivers can enumerate up to 32 video and audio outputs. This field
86           shows which audio outputs were selectable as the current output if
87           this was the currently selected video output. It is a bit mask.
88           The LSB corresponds to audio output 0, the MSB to output 31. Any
89           number of bits can be set, or none.
90
91           When the driver does not enumerate audio outputs no bits must be
92           set. Applications shall not interpret this as lack of audio
93           support. Drivers may automatically select audio outputs without
94           enumerating them.
95
96           For details on audio outputs and how to select the current output
97           see :ref:`audio`.
98
99     -  .. row 5
100
101        -  __u32
102
103        -  ``modulator``
104
105        -  Output devices can have zero or more RF modulators. When the
106           ``type`` is ``V4L2_OUTPUT_TYPE_MODULATOR`` this is an RF connector
107           and this field identifies the modulator. It corresponds to struct
108           :ref:`v4l2_modulator <v4l2-modulator>` field ``index``. For
109           details on modulators see :ref:`tuner`.
110
111     -  .. row 6
112
113        -  :ref:`v4l2_std_id <v4l2-std-id>`
114
115        -  ``std``
116
117        -  Every video output supports one or more different video standards.
118           This field is a set of all supported standards. For details on
119           video standards and how to switch see :ref:`standard`.
120
121     -  .. row 7
122
123        -  __u32
124
125        -  ``capabilities``
126
127        -  This field provides capabilities for the output. See
128           :ref:`output-capabilities` for flags.
129
130     -  .. row 8
131
132        -  __u32
133
134        -  ``reserved``\ [3]
135
136        -  Reserved for future extensions. Drivers must set the array to
137           zero.
138
139
140
141 .. _output-type:
142
143 .. flat-table:: Output Type
144     :header-rows:  0
145     :stub-columns: 0
146     :widths:       3 1 4
147
148
149     -  .. row 1
150
151        -  ``V4L2_OUTPUT_TYPE_MODULATOR``
152
153        -  1
154
155        -  This output is an analog TV modulator.
156
157     -  .. row 2
158
159        -  ``V4L2_OUTPUT_TYPE_ANALOG``
160
161        -  2
162
163        -  Analog baseband output, for example Composite / CVBS, S-Video,
164           RGB.
165
166     -  .. row 3
167
168        -  ``V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY``
169
170        -  3
171
172        -  [?]
173
174
175
176 .. _output-capabilities:
177
178 .. flat-table:: Output capabilities
179     :header-rows:  0
180     :stub-columns: 0
181     :widths:       3 1 4
182
183
184     -  .. row 1
185
186        -  ``V4L2_OUT_CAP_DV_TIMINGS``
187
188        -  0x00000002
189
190        -  This output supports setting video timings by using
191           VIDIOC_S_DV_TIMINGS.
192
193     -  .. row 2
194
195        -  ``V4L2_OUT_CAP_STD``
196
197        -  0x00000004
198
199        -  This output supports setting the TV standard by using
200           VIDIOC_S_STD.
201
202     -  .. row 3
203
204        -  ``V4L2_OUT_CAP_NATIVE_SIZE``
205
206        -  0x00000008
207
208        -  This output supports setting the native size using the
209           ``V4L2_SEL_TGT_NATIVE_SIZE`` selection target, see
210           :ref:`v4l2-selections-common`.
211
212
213 Return Value
214 ============
215
216 On success 0 is returned, on error -1 and the ``errno`` variable is set
217 appropriately. The generic error codes are described at the
218 :ref:`Generic Error Codes <gen-errors>` chapter.
219
220 EINVAL
221     The struct :ref:`v4l2_output <v4l2-output>` ``index`` is out of
222     bounds.