~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/admin-guide/media/vivid.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/admin-guide/media/vivid.rst (Version linux-6.12-rc7) and /Documentation/admin-guide/media/vivid.rst (Version linux-5.8.18)


  1 .. SPDX-License-Identifier: GPL-2.0                 1 .. SPDX-License-Identifier: GPL-2.0
  2                                                     2 
  3 The Virtual Video Test Driver (vivid)               3 The Virtual Video Test Driver (vivid)
  4 =====================================               4 =====================================
  5                                                     5 
  6 This driver emulates video4linux hardware of v      6 This driver emulates video4linux hardware of various types: video capture, video
  7 output, vbi capture and output, metadata captu      7 output, vbi capture and output, metadata capture and output, radio receivers and
  8 transmitters, touch capture and a software def      8 transmitters, touch capture and a software defined radio receiver. In addition a
  9 simple framebuffer device is available for tes      9 simple framebuffer device is available for testing capture and output overlays.
 10                                                    10 
 11 Up to 64 vivid instances can be created, each      11 Up to 64 vivid instances can be created, each with up to 16 inputs and 16 outputs.
 12                                                    12 
 13 Each input can be a webcam, TV capture device,     13 Each input can be a webcam, TV capture device, S-Video capture device or an HDMI
 14 capture device. Each output can be an S-Video      14 capture device. Each output can be an S-Video output device or an HDMI output
 15 device.                                            15 device.
 16                                                    16 
 17 These inputs and outputs act exactly as a real     17 These inputs and outputs act exactly as a real hardware device would behave. This
 18 allows you to use this driver as a test input      18 allows you to use this driver as a test input for application development, since
 19 you can test the various features without requ     19 you can test the various features without requiring special hardware.
 20                                                    20 
 21 This document describes the features implement     21 This document describes the features implemented by this driver:
 22                                                    22 
 23 - Support for read()/write(), MMAP, USERPTR an     23 - Support for read()/write(), MMAP, USERPTR and DMABUF streaming I/O.
 24 - A large list of test patterns and variations     24 - A large list of test patterns and variations thereof
 25 - Working brightness, contrast, saturation and     25 - Working brightness, contrast, saturation and hue controls
 26 - Support for the alpha color component            26 - Support for the alpha color component
 27 - Full colorspace support, including limited/f     27 - Full colorspace support, including limited/full RGB range
 28 - All possible control types are present           28 - All possible control types are present
 29 - Support for various pixel aspect ratios and      29 - Support for various pixel aspect ratios and video aspect ratios
 30 - Error injection to test what happens if erro     30 - Error injection to test what happens if errors occur
 31 - Supports crop/compose/scale in any combinati     31 - Supports crop/compose/scale in any combination for both input and output
 32 - Can emulate up to 4K resolutions                 32 - Can emulate up to 4K resolutions
 33 - All Field settings are supported for testing     33 - All Field settings are supported for testing interlaced capturing
 34 - Supports all standard YUV and RGB formats, i     34 - Supports all standard YUV and RGB formats, including two multiplanar YUV formats
 35 - Raw and Sliced VBI capture and output suppor     35 - Raw and Sliced VBI capture and output support
 36 - Radio receiver and transmitter support, incl     36 - Radio receiver and transmitter support, including RDS support
 37 - Software defined radio (SDR) support             37 - Software defined radio (SDR) support
 38 - Capture and output overlay support               38 - Capture and output overlay support
 39 - Metadata capture and output support              39 - Metadata capture and output support
 40 - Touch capture support                            40 - Touch capture support
 41                                                    41 
 42 These features will be described in more detai     42 These features will be described in more detail below.
 43                                                    43 
 44 Configuring the driver                             44 Configuring the driver
 45 ----------------------                             45 ----------------------
 46                                                    46 
 47 By default the driver will create a single ins     47 By default the driver will create a single instance that has a video capture
 48 device with webcam, TV, S-Video and HDMI input     48 device with webcam, TV, S-Video and HDMI inputs, a video output device with
 49 S-Video and HDMI outputs, one vbi capture devi     49 S-Video and HDMI outputs, one vbi capture device, one vbi output device, one
 50 radio receiver device, one radio transmitter d     50 radio receiver device, one radio transmitter device and one SDR device.
 51                                                    51 
 52 The number of instances, devices, video inputs     52 The number of instances, devices, video inputs and outputs and their types are
 53 all configurable using the following module op     53 all configurable using the following module options:
 54                                                    54 
 55 - n_devs:                                          55 - n_devs:
 56                                                    56 
 57         number of driver instances to create.      57         number of driver instances to create. By default set to 1. Up to 64
 58         instances can be created.                  58         instances can be created.
 59                                                    59 
 60 - node_types:                                      60 - node_types:
 61                                                    61 
 62         which devices should each driver insta     62         which devices should each driver instance create. An array of
 63         hexadecimal values, one for each insta !!  63         hexadecimal values, one for each instance. The default is 0x1d3d.
 64         Each value is a bitmask with the follo     64         Each value is a bitmask with the following meaning:
 65                                                    65 
 66                 - bit 0: Video Capture node        66                 - bit 0: Video Capture node
 67                 - bit 2-3: VBI Capture node: 0     67                 - bit 2-3: VBI Capture node: 0 = none, 1 = raw vbi, 2 = sliced vbi, 3 = both
 68                 - bit 4: Radio Receiver node       68                 - bit 4: Radio Receiver node
 69                 - bit 5: Software Defined Radi     69                 - bit 5: Software Defined Radio Receiver node
 70                 - bit 8: Video Output node         70                 - bit 8: Video Output node
 71                 - bit 10-11: VBI Output node:      71                 - bit 10-11: VBI Output node: 0 = none, 1 = raw vbi, 2 = sliced vbi, 3 = both
 72                 - bit 12: Radio Transmitter no     72                 - bit 12: Radio Transmitter node
 73                 - bit 16: Framebuffer for test     73                 - bit 16: Framebuffer for testing overlays
 74                 - bit 17: Metadata Capture nod     74                 - bit 17: Metadata Capture node
 75                 - bit 18: Metadata Output node     75                 - bit 18: Metadata Output node
 76                 - bit 19: Touch Capture node       76                 - bit 19: Touch Capture node
 77                                                    77 
 78         So to create four instances, the first     78         So to create four instances, the first two with just one video capture
 79         device, the second two with just one v     79         device, the second two with just one video output device you would pass
 80         these module options to vivid:             80         these module options to vivid:
 81                                                    81 
 82         .. code-block:: none                       82         .. code-block:: none
 83                                                    83 
 84                 n_devs=4 node_types=0x1,0x1,0x     84                 n_devs=4 node_types=0x1,0x1,0x100,0x100
 85                                                    85 
 86 - num_inputs:                                      86 - num_inputs:
 87                                                    87 
 88         the number of inputs, one for each ins     88         the number of inputs, one for each instance. By default 4 inputs
 89         are created for each video capture dev     89         are created for each video capture device. At most 16 inputs can be created,
 90         and there must be at least one.            90         and there must be at least one.
 91                                                    91 
 92 - input_types:                                     92 - input_types:
 93                                                    93 
 94         the input types for each instance, the     94         the input types for each instance, the default is 0xe4. This defines
 95         what the type of each input is when th     95         what the type of each input is when the inputs are created for each driver
 96         instance. This is a hexadecimal value      96         instance. This is a hexadecimal value with up to 16 pairs of bits, each
 97         pair gives the type and bits 0-1 map t     97         pair gives the type and bits 0-1 map to input 0, bits 2-3 map to input 1,
 98         30-31 map to input 15. Each pair of bi     98         30-31 map to input 15. Each pair of bits has the following meaning:
 99                                                    99 
100                 - 00: this is a webcam input      100                 - 00: this is a webcam input
101                 - 01: this is a TV tuner input    101                 - 01: this is a TV tuner input
102                 - 10: this is an S-Video input    102                 - 10: this is an S-Video input
103                 - 11: this is an HDMI input       103                 - 11: this is an HDMI input
104                                                   104 
105         So to create a video capture device wi    105         So to create a video capture device with 8 inputs where input 0 is a TV
106         tuner, inputs 1-3 are S-Video inputs a    106         tuner, inputs 1-3 are S-Video inputs and inputs 4-7 are HDMI inputs you
107         would use the following module options    107         would use the following module options:
108                                                   108 
109         .. code-block:: none                      109         .. code-block:: none
110                                                   110 
111                 num_inputs=8 input_types=0xffa    111                 num_inputs=8 input_types=0xffa9
112                                                   112 
113 - num_outputs:                                    113 - num_outputs:
114                                                   114 
115         the number of outputs, one for each in    115         the number of outputs, one for each instance. By default 2 outputs
116         are created for each video output devi    116         are created for each video output device. At most 16 outputs can be
117         created, and there must be at least on    117         created, and there must be at least one.
118                                                   118 
119 - output_types:                                   119 - output_types:
120                                                   120 
121         the output types for each instance, th    121         the output types for each instance, the default is 0x02. This defines
122         what the type of each output is when t    122         what the type of each output is when the outputs are created for each
123         driver instance. This is a hexadecimal    123         driver instance. This is a hexadecimal value with up to 16 bits, each bit
124         gives the type and bit 0 maps to outpu    124         gives the type and bit 0 maps to output 0, bit 1 maps to output 1, bit
125         15 maps to output 15. The meaning of e    125         15 maps to output 15. The meaning of each bit is as follows:
126                                                   126 
127                 - 0: this is an S-Video output    127                 - 0: this is an S-Video output
128                 - 1: this is an HDMI output       128                 - 1: this is an HDMI output
129                                                   129 
130         So to create a video output device wit    130         So to create a video output device with 8 outputs where outputs 0-3 are
131         S-Video outputs and outputs 4-7 are HD    131         S-Video outputs and outputs 4-7 are HDMI outputs you would use the
132         following module options:                 132         following module options:
133                                                   133 
134         .. code-block:: none                      134         .. code-block:: none
135                                                   135 
136                 num_outputs=8 output_types=0xf    136                 num_outputs=8 output_types=0xf0
137                                                   137 
138 - vid_cap_nr:                                     138 - vid_cap_nr:
139                                                   139 
140         give the desired videoX start number f    140         give the desired videoX start number for each video capture device.
141         The default is -1 which will just take    141         The default is -1 which will just take the first free number. This allows
142         you to map capture video nodes to spec    142         you to map capture video nodes to specific videoX device nodes. Example:
143                                                   143 
144         .. code-block:: none                      144         .. code-block:: none
145                                                   145 
146                 n_devs=4 vid_cap_nr=2,4,6,8       146                 n_devs=4 vid_cap_nr=2,4,6,8
147                                                   147 
148         This will attempt to assign /dev/video    148         This will attempt to assign /dev/video2 for the video capture device of
149         the first vivid instance, video4 for t    149         the first vivid instance, video4 for the next up to video8 for the last
150         instance. If it can't succeed, then it    150         instance. If it can't succeed, then it will just take the next free
151         number.                                   151         number.
152                                                   152 
153 - vid_out_nr:                                     153 - vid_out_nr:
154                                                   154 
155         give the desired videoX start number f    155         give the desired videoX start number for each video output device.
156         The default is -1 which will just take    156         The default is -1 which will just take the first free number.
157                                                   157 
158 - vbi_cap_nr:                                     158 - vbi_cap_nr:
159                                                   159 
160         give the desired vbiX start number for    160         give the desired vbiX start number for each vbi capture device.
161         The default is -1 which will just take    161         The default is -1 which will just take the first free number.
162                                                   162 
163 - vbi_out_nr:                                     163 - vbi_out_nr:
164                                                   164 
165         give the desired vbiX start number for    165         give the desired vbiX start number for each vbi output device.
166         The default is -1 which will just take    166         The default is -1 which will just take the first free number.
167                                                   167 
168 - radio_rx_nr:                                    168 - radio_rx_nr:
169                                                   169 
170         give the desired radioX start number f    170         give the desired radioX start number for each radio receiver device.
171         The default is -1 which will just take    171         The default is -1 which will just take the first free number.
172                                                   172 
173 - radio_tx_nr:                                    173 - radio_tx_nr:
174                                                   174 
175         give the desired radioX start number f    175         give the desired radioX start number for each radio transmitter
176         device. The default is -1 which will j    176         device. The default is -1 which will just take the first free number.
177                                                   177 
178 - sdr_cap_nr:                                     178 - sdr_cap_nr:
179                                                   179 
180         give the desired swradioX start number    180         give the desired swradioX start number for each SDR capture device.
181         The default is -1 which will just take    181         The default is -1 which will just take the first free number.
182                                                   182 
183 - meta_cap_nr:                                    183 - meta_cap_nr:
184                                                   184 
185         give the desired videoX start number f    185         give the desired videoX start number for each metadata capture device.
186         The default is -1 which will just take    186         The default is -1 which will just take the first free number.
187                                                   187 
188 - meta_out_nr:                                    188 - meta_out_nr:
189                                                   189 
190         give the desired videoX start number f    190         give the desired videoX start number for each metadata output device.
191         The default is -1 which will just take    191         The default is -1 which will just take the first free number.
192                                                   192 
193 - touch_cap_nr:                                   193 - touch_cap_nr:
194                                                   194 
195         give the desired v4l-touchX start numb    195         give the desired v4l-touchX start number for each touch capture device.
196         The default is -1 which will just take    196         The default is -1 which will just take the first free number.
197                                                   197 
198 - ccs_cap_mode:                                   198 - ccs_cap_mode:
199                                                   199 
200         specify the allowed video capture crop    200         specify the allowed video capture crop/compose/scaling combination
201         for each driver instance. Video captur    201         for each driver instance. Video capture devices can have any combination
202         of cropping, composing and scaling cap    202         of cropping, composing and scaling capabilities and this will tell the
203         vivid driver which of those is should     203         vivid driver which of those is should emulate. By default the user can
204         select this through controls.             204         select this through controls.
205                                                   205 
206         The value is either -1 (controlled by     206         The value is either -1 (controlled by the user) or a set of three bits,
207         each enabling (1) or disabling (0) one    207         each enabling (1) or disabling (0) one of the features:
208                                                   208 
209         - bit 0:                                  209         - bit 0:
210                                                   210 
211                 Enable crop support. Cropping     211                 Enable crop support. Cropping will take only part of the
212                 incoming picture.                 212                 incoming picture.
213         - bit 1:                                  213         - bit 1:
214                                                   214 
215                 Enable compose support. Compos    215                 Enable compose support. Composing will copy the incoming
216                 picture into a larger buffer.     216                 picture into a larger buffer.
217                                                   217 
218         - bit 2:                                  218         - bit 2:
219                                                   219 
220                 Enable scaling support. Scalin    220                 Enable scaling support. Scaling can scale the incoming
221                 picture. The scaler of the viv    221                 picture. The scaler of the vivid driver can enlarge up
222                 or down to four times the orig    222                 or down to four times the original size. The scaler is
223                 very simple and low-quality. S    223                 very simple and low-quality. Simplicity and speed were
224                 key, not quality.                 224                 key, not quality.
225                                                   225 
226         Note that this value is ignored by web    226         Note that this value is ignored by webcam inputs: those enumerate
227         discrete framesizes and that is incomp    227         discrete framesizes and that is incompatible with cropping, composing
228         or scaling.                               228         or scaling.
229                                                   229 
230 - ccs_out_mode:                                   230 - ccs_out_mode:
231                                                   231 
232         specify the allowed video output crop/    232         specify the allowed video output crop/compose/scaling combination
233         for each driver instance. Video output    233         for each driver instance. Video output devices can have any combination
234         of cropping, composing and scaling cap    234         of cropping, composing and scaling capabilities and this will tell the
235         vivid driver which of those is should     235         vivid driver which of those is should emulate. By default the user can
236         select this through controls.             236         select this through controls.
237                                                   237 
238         The value is either -1 (controlled by     238         The value is either -1 (controlled by the user) or a set of three bits,
239         each enabling (1) or disabling (0) one    239         each enabling (1) or disabling (0) one of the features:
240                                                   240 
241         - bit 0:                                  241         - bit 0:
242                                                   242 
243                 Enable crop support. Cropping     243                 Enable crop support. Cropping will take only part of the
244                 outgoing buffer.                  244                 outgoing buffer.
245                                                   245 
246         - bit 1:                                  246         - bit 1:
247                                                   247 
248                 Enable compose support. Compos    248                 Enable compose support. Composing will copy the incoming
249                 buffer into a larger picture f    249                 buffer into a larger picture frame.
250                                                   250 
251         - bit 2:                                  251         - bit 2:
252                                                   252 
253                 Enable scaling support. Scalin    253                 Enable scaling support. Scaling can scale the incoming
254                 buffer. The scaler of the vivi    254                 buffer. The scaler of the vivid driver can enlarge up
255                 or down to four times the orig    255                 or down to four times the original size. The scaler is
256                 very simple and low-quality. S    256                 very simple and low-quality. Simplicity and speed were
257                 key, not quality.                 257                 key, not quality.
258                                                   258 
259 - multiplanar:                                    259 - multiplanar:
260                                                   260 
261         select whether each device instance su    261         select whether each device instance supports multi-planar formats,
262         and thus the V4L2 multi-planar API. By    262         and thus the V4L2 multi-planar API. By default device instances are
263         single-planar.                            263         single-planar.
264                                                   264 
265         This module option can override that f    265         This module option can override that for each instance. Values are:
266                                                   266 
267                 - 1: this is a single-planar i    267                 - 1: this is a single-planar instance.
268                 - 2: this is a multi-planar in    268                 - 2: this is a multi-planar instance.
269                                                   269 
270 - vivid_debug:                                    270 - vivid_debug:
271                                                   271 
272         enable driver debugging info              272         enable driver debugging info
273                                                   273 
274 - no_error_inj:                                   274 - no_error_inj:
275                                                   275 
276         if set disable the error injecting con    276         if set disable the error injecting controls. This option is
277         needed in order to run a tool like v4l    277         needed in order to run a tool like v4l2-compliance. Tools like that
278         exercise all controls including a cont    278         exercise all controls including a control like 'Disconnect' which
279         emulates a USB disconnect, making the     279         emulates a USB disconnect, making the device inaccessible and so
280         all tests that v4l2-compliance is doin    280         all tests that v4l2-compliance is doing will fail afterwards.
281                                                   281 
282         There may be other situations as well     282         There may be other situations as well where you want to disable the
283         error injection support of vivid. When    283         error injection support of vivid. When this option is set, then the
284         controls that select crop, compose and    284         controls that select crop, compose and scale behavior are also
285         removed. Unless overridden by ccs_cap_    285         removed. Unless overridden by ccs_cap_mode and/or ccs_out_mode the
286         will default to enabling crop, compose    286         will default to enabling crop, compose and scaling.
287                                                   287 
288 - allocators:                                     288 - allocators:
289                                                   289 
290         memory allocator selection, default is    290         memory allocator selection, default is 0. It specifies the way buffers
291         will be allocated.                        291         will be allocated.
292                                                   292 
293                 - 0: vmalloc                      293                 - 0: vmalloc
294                 - 1: dma-contig                   294                 - 1: dma-contig
295                                                   295 
296 - cache_hints:                                 << 
297                                                << 
298         specifies if the device should set que << 
299         consistency hint capability (V4L2_BUF_ << 
300         The hints are valid only when using MM << 
301                                                << 
302                 - 0: forbid hints              << 
303                 - 1: allow hints               << 
304                                                << 
305 - supports_requests:                           << 
306                                                << 
307         specifies if the device should support << 
308         three possible values, default is 1:   << 
309                                                << 
310                 - 0: no request                << 
311                 - 1: supports requests         << 
312                 - 2: requires requests         << 
313                                                << 
314 Taken together, all these module options allow    296 Taken together, all these module options allow you to precisely customize
315 the driver behavior and test your application     297 the driver behavior and test your application with all sorts of permutations.
316 It is also very suitable to emulate hardware t    298 It is also very suitable to emulate hardware that is not yet available, e.g.
317 when developing software for a new upcoming de    299 when developing software for a new upcoming device.
318                                                   300 
319                                                   301 
320 Video Capture                                     302 Video Capture
321 -------------                                     303 -------------
322                                                   304 
323 This is probably the most frequently used feat    305 This is probably the most frequently used feature. The video capture device
324 can be configured by using the module options     306 can be configured by using the module options num_inputs, input_types and
325 ccs_cap_mode (see "Configuring the driver" for !! 307 ccs_cap_mode (see section 1 for more detailed information), but by default
326 but by default four inputs are configured: a w !! 308 four inputs are configured: a webcam, a TV tuner, an S-Video and an HDMI
327 and an HDMI input, one input for each input ty !! 309 input, one input for each input type. Those are described in more detail
328 detail below.                                  !! 310 below.
329                                                   311 
330 Special attention has been given to the rate a    312 Special attention has been given to the rate at which new frames become
331 available. The jitter will be around 1 jiffy ( !! 313 available. The jitter will be around 1 jiffie (that depends on the HZ
332 configuration of your kernel, so usually 1/100    314 configuration of your kernel, so usually 1/100, 1/250 or 1/1000 of a second),
333 but the long-term behavior is exactly followin    315 but the long-term behavior is exactly following the framerate. So a
334 framerate of 59.94 Hz is really different from    316 framerate of 59.94 Hz is really different from 60 Hz. If the framerate
335 exceeds your kernel's HZ value, then you will     317 exceeds your kernel's HZ value, then you will get dropped frames, but the
336 frame/field sequence counting will keep track     318 frame/field sequence counting will keep track of that so the sequence
337 count will skip whenever frames are dropped.      319 count will skip whenever frames are dropped.
338                                                   320 
339                                                   321 
340 Webcam Input                                      322 Webcam Input
341 ~~~~~~~~~~~~                                      323 ~~~~~~~~~~~~
342                                                   324 
343 The webcam input supports three framesizes: 32    325 The webcam input supports three framesizes: 320x180, 640x360 and 1280x720. It
344 supports frames per second settings of 10, 15,    326 supports frames per second settings of 10, 15, 25, 30, 50 and 60 fps. Which ones
345 are available depends on the chosen framesize:    327 are available depends on the chosen framesize: the larger the framesize, the
346 lower the maximum frames per second.              328 lower the maximum frames per second.
347                                                   329 
348 The initially selected colorspace when you swi    330 The initially selected colorspace when you switch to the webcam input will be
349 sRGB.                                             331 sRGB.
350                                                   332 
351                                                   333 
352 TV and S-Video Inputs                             334 TV and S-Video Inputs
353 ~~~~~~~~~~~~~~~~~~~~~                             335 ~~~~~~~~~~~~~~~~~~~~~
354                                                   336 
355 The only difference between the TV and S-Video    337 The only difference between the TV and S-Video input is that the TV has a
356 tuner. Otherwise they behave identically.         338 tuner. Otherwise they behave identically.
357                                                   339 
358 These inputs support audio inputs as well: one    340 These inputs support audio inputs as well: one TV and one Line-In. They
359 both support all TV standards. If the standard    341 both support all TV standards. If the standard is queried, then the Vivid
360 controls 'Standard Signal Mode' and 'Standard'    342 controls 'Standard Signal Mode' and 'Standard' determine what
361 the result will be.                               343 the result will be.
362                                                   344 
363 These inputs support all combinations of the f    345 These inputs support all combinations of the field setting. Special care has
364 been taken to faithfully reproduce how fields     346 been taken to faithfully reproduce how fields are handled for the different
365 TV standards. This is particularly noticeable     347 TV standards. This is particularly noticeable when generating a horizontally
366 moving image so the temporal effect of using i    348 moving image so the temporal effect of using interlaced formats becomes clearly
367 visible. For 50 Hz standards the top field is     349 visible. For 50 Hz standards the top field is the oldest and the bottom field
368 is the newest in time. For 60 Hz standards tha    350 is the newest in time. For 60 Hz standards that is reversed: the bottom field
369 is the oldest and the top field is the newest     351 is the oldest and the top field is the newest in time.
370                                                   352 
371 When you start capturing in V4L2_FIELD_ALTERNA    353 When you start capturing in V4L2_FIELD_ALTERNATE mode the first buffer will
372 contain the top field for 50 Hz standards and     354 contain the top field for 50 Hz standards and the bottom field for 60 Hz
373 standards. This is what capture hardware does     355 standards. This is what capture hardware does as well.
374                                                   356 
375 Finally, for PAL/SECAM standards the first hal    357 Finally, for PAL/SECAM standards the first half of the top line contains noise.
376 This simulates the Wide Screen Signal that is     358 This simulates the Wide Screen Signal that is commonly placed there.
377                                                   359 
378 The initially selected colorspace when you swi    360 The initially selected colorspace when you switch to the TV or S-Video input
379 will be SMPTE-170M.                               361 will be SMPTE-170M.
380                                                   362 
381 The pixel aspect ratio will depend on the TV s    363 The pixel aspect ratio will depend on the TV standard. The video aspect ratio
382 can be selected through the 'Standard Aspect R    364 can be selected through the 'Standard Aspect Ratio' Vivid control.
383 Choices are '4x3', '16x9' which will give lett    365 Choices are '4x3', '16x9' which will give letterboxed widescreen video and
384 '16x9 Anamorphic' which will give full screen     366 '16x9 Anamorphic' which will give full screen squashed anamorphic widescreen
385 video that will need to be scaled accordingly.    367 video that will need to be scaled accordingly.
386                                                   368 
387 The TV 'tuner' supports a frequency range of 4    369 The TV 'tuner' supports a frequency range of 44-958 MHz. Channels are available
388 every 6 MHz, starting from 49.25 MHz. For each    370 every 6 MHz, starting from 49.25 MHz. For each channel the generated image
389 will be in color for the +/- 0.25 MHz around i    371 will be in color for the +/- 0.25 MHz around it, and in grayscale for
390 +/- 1 MHz around the channel. Beyond that it i    372 +/- 1 MHz around the channel. Beyond that it is just noise. The VIDIOC_G_TUNER
391 ioctl will return 100% signal strength for +/-    373 ioctl will return 100% signal strength for +/- 0.25 MHz and 50% for +/- 1 MHz.
392 It will also return correct afc values to show    374 It will also return correct afc values to show whether the frequency is too
393 low or too high.                                  375 low or too high.
394                                                   376 
395 The audio subchannels that are returned are MO    377 The audio subchannels that are returned are MONO for the +/- 1 MHz range around
396 a valid channel frequency. When the frequency     378 a valid channel frequency. When the frequency is within +/- 0.25 MHz of the
397 channel it will return either MONO, STEREO, ei    379 channel it will return either MONO, STEREO, either MONO | SAP (for NTSC) or
398 LANG1 | LANG2 (for others), or STEREO | SAP.      380 LANG1 | LANG2 (for others), or STEREO | SAP.
399                                                   381 
400 Which one is returned depends on the chosen ch    382 Which one is returned depends on the chosen channel, each next valid channel
401 will cycle through the possible audio subchann    383 will cycle through the possible audio subchannel combinations. This allows
402 you to test the various combinations by just s    384 you to test the various combinations by just switching channels..
403                                                   385 
404 Finally, for these inputs the v4l2_timecode st !! 386 Finally, for these inputs the v4l2_timecode struct is filled in in the
405 dequeued v4l2_buffer struct.                      387 dequeued v4l2_buffer struct.
406                                                   388 
407                                                   389 
408 HDMI Input                                        390 HDMI Input
409 ~~~~~~~~~~                                        391 ~~~~~~~~~~
410                                                   392 
411 The HDMI inputs supports all CEA-861 and DMT t    393 The HDMI inputs supports all CEA-861 and DMT timings, both progressive and
412 interlaced, for pixelclock frequencies between    394 interlaced, for pixelclock frequencies between 25 and 600 MHz. The field
413 mode for interlaced formats is always V4L2_FIE    395 mode for interlaced formats is always V4L2_FIELD_ALTERNATE. For HDMI the
414 field order is always top field first, and whe    396 field order is always top field first, and when you start capturing an
415 interlaced format you will receive the top fie    397 interlaced format you will receive the top field first.
416                                                   398 
417 The initially selected colorspace when you swi    399 The initially selected colorspace when you switch to the HDMI input or
418 select an HDMI timing is based on the format r    400 select an HDMI timing is based on the format resolution: for resolutions
419 less than or equal to 720x576 the colorspace i    401 less than or equal to 720x576 the colorspace is set to SMPTE-170M, for
420 others it is set to REC-709 (CEA-861 timings)     402 others it is set to REC-709 (CEA-861 timings) or sRGB (VESA DMT timings).
421                                                   403 
422 The pixel aspect ratio will depend on the HDMI    404 The pixel aspect ratio will depend on the HDMI timing: for 720x480 is it
423 set as for the NTSC TV standard, for 720x576 i    405 set as for the NTSC TV standard, for 720x576 it is set as for the PAL TV
424 standard, and for all others a 1:1 pixel aspec    406 standard, and for all others a 1:1 pixel aspect ratio is returned.
425                                                   407 
426 The video aspect ratio can be selected through    408 The video aspect ratio can be selected through the 'DV Timings Aspect Ratio'
427 Vivid control. Choices are 'Source Width x Hei    409 Vivid control. Choices are 'Source Width x Height' (just use the
428 same ratio as the chosen format), '4x3' or '16    410 same ratio as the chosen format), '4x3' or '16x9', either of which can
429 result in pillarboxed or letterboxed video.       411 result in pillarboxed or letterboxed video.
430                                                   412 
431 For HDMI inputs it is possible to set the EDID    413 For HDMI inputs it is possible to set the EDID. By default a simple EDID
432 is provided. You can only set the EDID for HDM    414 is provided. You can only set the EDID for HDMI inputs. Internally, however,
433 the EDID is shared between all HDMI inputs.       415 the EDID is shared between all HDMI inputs.
434                                                   416 
435 No interpretation is done of the EDID data wit    417 No interpretation is done of the EDID data with the exception of the
436 physical address. See the CEC section for more    418 physical address. See the CEC section for more details.
437                                                   419 
438 There is a maximum of 15 HDMI inputs (if there    420 There is a maximum of 15 HDMI inputs (if there are more, then they will be
439 reduced to 15) since that's the limitation of     421 reduced to 15) since that's the limitation of the EDID physical address.
440                                                   422 
441                                                   423 
442 Video Output                                      424 Video Output
443 ------------                                      425 ------------
444                                                   426 
445 The video output device can be configured by u    427 The video output device can be configured by using the module options
446 num_outputs, output_types and ccs_out_mode (se !! 428 num_outputs, output_types and ccs_out_mode (see section 1 for more detailed
447 for more detailed information), but by default !! 429 information), but by default two outputs are configured: an S-Video and an
448 an S-Video and an HDMI input, one output for e !! 430 HDMI input, one output for each output type. Those are described in more detail
449 described in more detail below.                !! 431 below.
450                                                   432 
451 Like with video capture the framerate is also     433 Like with video capture the framerate is also exact in the long term.
452                                                   434 
453                                                   435 
454 S-Video Output                                    436 S-Video Output
455 ~~~~~~~~~~~~~~                                    437 ~~~~~~~~~~~~~~
456                                                   438 
457 This output supports audio outputs as well: "L    439 This output supports audio outputs as well: "Line-Out 1" and "Line-Out 2".
458 The S-Video output supports all TV standards.     440 The S-Video output supports all TV standards.
459                                                   441 
460 This output supports all combinations of the f    442 This output supports all combinations of the field setting.
461                                                   443 
462 The initially selected colorspace when you swi    444 The initially selected colorspace when you switch to the TV or S-Video input
463 will be SMPTE-170M.                               445 will be SMPTE-170M.
464                                                   446 
465                                                   447 
466 HDMI Output                                       448 HDMI Output
467 ~~~~~~~~~~~                                       449 ~~~~~~~~~~~
468                                                   450 
469 The HDMI output supports all CEA-861 and DMT t    451 The HDMI output supports all CEA-861 and DMT timings, both progressive and
470 interlaced, for pixelclock frequencies between    452 interlaced, for pixelclock frequencies between 25 and 600 MHz. The field
471 mode for interlaced formats is always V4L2_FIE    453 mode for interlaced formats is always V4L2_FIELD_ALTERNATE.
472                                                   454 
473 The initially selected colorspace when you swi    455 The initially selected colorspace when you switch to the HDMI output or
474 select an HDMI timing is based on the format r    456 select an HDMI timing is based on the format resolution: for resolutions
475 less than or equal to 720x576 the colorspace i    457 less than or equal to 720x576 the colorspace is set to SMPTE-170M, for
476 others it is set to REC-709 (CEA-861 timings)     458 others it is set to REC-709 (CEA-861 timings) or sRGB (VESA DMT timings).
477                                                   459 
478 The pixel aspect ratio will depend on the HDMI    460 The pixel aspect ratio will depend on the HDMI timing: for 720x480 is it
479 set as for the NTSC TV standard, for 720x576 i    461 set as for the NTSC TV standard, for 720x576 it is set as for the PAL TV
480 standard, and for all others a 1:1 pixel aspec    462 standard, and for all others a 1:1 pixel aspect ratio is returned.
481                                                   463 
482 An HDMI output has a valid EDID which can be o    464 An HDMI output has a valid EDID which can be obtained through VIDIOC_G_EDID.
483                                                   465 
484 There is a maximum of 15 HDMI outputs (if ther    466 There is a maximum of 15 HDMI outputs (if there are more, then they will be
485 reduced to 15) since that's the limitation of     467 reduced to 15) since that's the limitation of the EDID physical address. See
486 also the CEC section for more details.            468 also the CEC section for more details.
487                                                   469 
488 VBI Capture                                       470 VBI Capture
489 -----------                                       471 -----------
490                                                   472 
491 There are three types of VBI capture devices:     473 There are three types of VBI capture devices: those that only support raw
492 (undecoded) VBI, those that only support slice    474 (undecoded) VBI, those that only support sliced (decoded) VBI and those that
493 support both. This is determined by the node_t    475 support both. This is determined by the node_types module option. In all
494 cases the driver will generate valid VBI data:    476 cases the driver will generate valid VBI data: for 60 Hz standards it will
495 generate Closed Caption and XDS data. The clos    477 generate Closed Caption and XDS data. The closed caption stream will
496 alternate between "Hello world!" and "Closed c    478 alternate between "Hello world!" and "Closed captions test" every second.
497 The XDS stream will give the current time once    479 The XDS stream will give the current time once a minute. For 50 Hz standards
498 it will generate the Wide Screen Signal which     480 it will generate the Wide Screen Signal which is based on the actual Video
499 Aspect Ratio control setting and teletext page    481 Aspect Ratio control setting and teletext pages 100-159, one page per frame.
500                                                   482 
501 The VBI device will only work for the S-Video     483 The VBI device will only work for the S-Video and TV inputs, it will give
502 back an error if the current input is a webcam    484 back an error if the current input is a webcam or HDMI.
503                                                   485 
504                                                   486 
505 VBI Output                                        487 VBI Output
506 ----------                                        488 ----------
507                                                   489 
508 There are three types of VBI output devices: t    490 There are three types of VBI output devices: those that only support raw
509 (undecoded) VBI, those that only support slice    491 (undecoded) VBI, those that only support sliced (decoded) VBI and those that
510 support both. This is determined by the node_t    492 support both. This is determined by the node_types module option.
511                                                   493 
512 The sliced VBI output supports the Wide Screen    494 The sliced VBI output supports the Wide Screen Signal and the teletext signal
513 for 50 Hz standards and Closed Captioning + XD    495 for 50 Hz standards and Closed Captioning + XDS for 60 Hz standards.
514                                                   496 
515 The VBI device will only work for the S-Video     497 The VBI device will only work for the S-Video output, it will give
516 back an error if the current output is HDMI.      498 back an error if the current output is HDMI.
517                                                   499 
518                                                   500 
519 Radio Receiver                                    501 Radio Receiver
520 --------------                                    502 --------------
521                                                   503 
522 The radio receiver emulates an FM/AM/SW receiv    504 The radio receiver emulates an FM/AM/SW receiver. The FM band also supports RDS.
523 The frequency ranges are:                         505 The frequency ranges are:
524                                                   506 
525         - FM: 64 MHz - 108 MHz                    507         - FM: 64 MHz - 108 MHz
526         - AM: 520 kHz - 1710 kHz                  508         - AM: 520 kHz - 1710 kHz
527         - SW: 2300 kHz - 26.1 MHz                 509         - SW: 2300 kHz - 26.1 MHz
528                                                   510 
529 Valid channels are emulated every 1 MHz for FM    511 Valid channels are emulated every 1 MHz for FM and every 100 kHz for AM and SW.
530 The signal strength decreases the further the     512 The signal strength decreases the further the frequency is from the valid
531 frequency until it becomes 0% at +/- 50 kHz (F    513 frequency until it becomes 0% at +/- 50 kHz (FM) or 5 kHz (AM/SW) from the
532 ideal frequency. The initial frequency when th    514 ideal frequency. The initial frequency when the driver is loaded is set to
533 95 MHz.                                           515 95 MHz.
534                                                   516 
535 The FM receiver supports RDS as well, both usi    517 The FM receiver supports RDS as well, both using 'Block I/O' and 'Controls'
536 modes. In the 'Controls' mode the RDS informat    518 modes. In the 'Controls' mode the RDS information is stored in read-only
537 controls. These controls are updated every tim    519 controls. These controls are updated every time the frequency is changed,
538 or when the tuner status is requested. The Blo    520 or when the tuner status is requested. The Block I/O method uses the read()
539 interface to pass the RDS blocks on to the app    521 interface to pass the RDS blocks on to the application for decoding.
540                                                   522 
541 The RDS signal is 'detected' for +/- 12.5 kHz     523 The RDS signal is 'detected' for +/- 12.5 kHz around the channel frequency,
542 and the further the frequency is away from the    524 and the further the frequency is away from the valid frequency the more RDS
543 errors are randomly introduced into the block     525 errors are randomly introduced into the block I/O stream, up to 50% of all
544 blocks if you are +/- 12.5 kHz from the channe    526 blocks if you are +/- 12.5 kHz from the channel frequency. All four errors
545 can occur in equal proportions: blocks marked     527 can occur in equal proportions: blocks marked 'CORRECTED', blocks marked
546 'ERROR', blocks marked 'INVALID' and dropped b    528 'ERROR', blocks marked 'INVALID' and dropped blocks.
547                                                   529 
548 The generated RDS stream contains all the stan    530 The generated RDS stream contains all the standard fields contained in a
549 0B group, and also radio text and the current     531 0B group, and also radio text and the current time.
550                                                   532 
551 The receiver supports HW frequency seek, eithe    533 The receiver supports HW frequency seek, either in Bounded mode, Wrap Around
552 mode or both, which is configurable with the "    534 mode or both, which is configurable with the "Radio HW Seek Mode" control.
553                                                   535 
554                                                   536 
555 Radio Transmitter                                 537 Radio Transmitter
556 -----------------                                 538 -----------------
557                                                   539 
558 The radio transmitter emulates an FM/AM/SW tra    540 The radio transmitter emulates an FM/AM/SW transmitter. The FM band also supports RDS.
559 The frequency ranges are:                         541 The frequency ranges are:
560                                                   542 
561         - FM: 64 MHz - 108 MHz                    543         - FM: 64 MHz - 108 MHz
562         - AM: 520 kHz - 1710 kHz                  544         - AM: 520 kHz - 1710 kHz
563         - SW: 2300 kHz - 26.1 MHz                 545         - SW: 2300 kHz - 26.1 MHz
564                                                   546 
565 The initial frequency when the driver is loade    547 The initial frequency when the driver is loaded is 95.5 MHz.
566                                                   548 
567 The FM transmitter supports RDS as well, both     549 The FM transmitter supports RDS as well, both using 'Block I/O' and 'Controls'
568 modes. In the 'Controls' mode the transmitted     550 modes. In the 'Controls' mode the transmitted RDS information is configured
569 using controls, and in 'Block I/O' mode the bl    551 using controls, and in 'Block I/O' mode the blocks are passed to the driver
570 using write().                                    552 using write().
571                                                   553 
572                                                   554 
573 Software Defined Radio Receiver                   555 Software Defined Radio Receiver
574 -------------------------------                   556 -------------------------------
575                                                   557 
576 The SDR receiver has three frequency bands for    558 The SDR receiver has three frequency bands for the ADC tuner:
577                                                   559 
578         - 300 kHz                                 560         - 300 kHz
579         - 900 kHz - 2800 kHz                      561         - 900 kHz - 2800 kHz
580         - 3200 kHz                                562         - 3200 kHz
581                                                   563 
582 The RF tuner supports 50 MHz - 2000 MHz.          564 The RF tuner supports 50 MHz - 2000 MHz.
583                                                   565 
584 The generated data contains the In-phase and Q    566 The generated data contains the In-phase and Quadrature components of a
585 1 kHz tone that has an amplitude of sqrt(2).      567 1 kHz tone that has an amplitude of sqrt(2).
586                                                   568 
587                                                   569 
588 Metadata Capture                                  570 Metadata Capture
589 ----------------                                  571 ----------------
590                                                   572 
591 The Metadata capture generates UVC format meta    573 The Metadata capture generates UVC format metadata. The PTS and SCR are
592 transmitted based on the values set in vivid c !! 574 transmitted based on the values set in vivid contols.
593                                                   575 
594 The Metadata device will only work for the Web    576 The Metadata device will only work for the Webcam input, it will give
595 back an error for all other inputs.               577 back an error for all other inputs.
596                                                   578 
597                                                   579 
598 Metadata Output                                   580 Metadata Output
599 ---------------                                   581 ---------------
600                                                   582 
601 The Metadata output can be used to set brightn    583 The Metadata output can be used to set brightness, contrast, saturation and hue.
602                                                   584 
603 The Metadata device will only work for the Web    585 The Metadata device will only work for the Webcam output, it will give
604 back an error for all other outputs.              586 back an error for all other outputs.
605                                                   587 
606                                                   588 
607 Touch Capture                                     589 Touch Capture
608 -------------                                     590 -------------
609                                                   591 
610 The Touch capture generates touch patterns sim    592 The Touch capture generates touch patterns simulating single tap, double tap,
611 triple tap, move from left to right, zoom in,     593 triple tap, move from left to right, zoom in, zoom out, palm press (simulating
612 a large area being pressed on a touchpad), and    594 a large area being pressed on a touchpad), and simulating 16 simultaneous
613 touch points.                                     595 touch points.
614                                                   596 
615 Controls                                          597 Controls
616 --------                                          598 --------
617                                                   599 
618 Different devices support different controls.     600 Different devices support different controls. The sections below will describe
619 each control and which devices support them.      601 each control and which devices support them.
620                                                   602 
621                                                   603 
622 User Controls - Test Controls                     604 User Controls - Test Controls
623 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     605 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
624                                                   606 
625 The Button, Boolean, Integer 32 Bits, Integer     607 The Button, Boolean, Integer 32 Bits, Integer 64 Bits, Menu, String, Bitmask and
626 Integer Menu are controls that represent all p    608 Integer Menu are controls that represent all possible control types. The Menu
627 control and the Integer Menu control both have    609 control and the Integer Menu control both have 'holes' in their menu list,
628 meaning that one or more menu items return EIN    610 meaning that one or more menu items return EINVAL when VIDIOC_QUERYMENU is called.
629 Both menu controls also have a non-zero minimu    611 Both menu controls also have a non-zero minimum control value.  These features
630 allow you to check if your application can han    612 allow you to check if your application can handle such things correctly.
631 These controls are supported for every device     613 These controls are supported for every device type.
632                                                   614 
633                                                   615 
634 User Controls - Video Capture                     616 User Controls - Video Capture
635 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     617 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
636                                                   618 
637 The following controls are specific to video c    619 The following controls are specific to video capture.
638                                                   620 
639 The Brightness, Contrast, Saturation and Hue c    621 The Brightness, Contrast, Saturation and Hue controls actually work and are
640 standard. There is one special feature with th    622 standard. There is one special feature with the Brightness control: each
641 video input has its own brightness value, so c    623 video input has its own brightness value, so changing input will restore
642 the brightness for that input. In addition, ea    624 the brightness for that input. In addition, each video input uses a different
643 brightness range (minimum and maximum control     625 brightness range (minimum and maximum control values). Switching inputs will
644 cause a control event to be sent with the V4L2    626 cause a control event to be sent with the V4L2_EVENT_CTRL_CH_RANGE flag set.
645 This allows you to test controls that can chan    627 This allows you to test controls that can change their range.
646                                                   628 
647 The 'Gain, Automatic' and Gain controls can be    629 The 'Gain, Automatic' and Gain controls can be used to test volatile controls:
648 if 'Gain, Automatic' is set, then the Gain con    630 if 'Gain, Automatic' is set, then the Gain control is volatile and changes
649 constantly. If 'Gain, Automatic' is cleared, t    631 constantly. If 'Gain, Automatic' is cleared, then the Gain control is a normal
650 control.                                          632 control.
651                                                   633 
652 The 'Horizontal Flip' and 'Vertical Flip' cont    634 The 'Horizontal Flip' and 'Vertical Flip' controls can be used to flip the
653 image. These combine with the 'Sensor Flipped     635 image. These combine with the 'Sensor Flipped Horizontally/Vertically' Vivid
654 controls.                                         636 controls.
655                                                   637 
656 The 'Alpha Component' control can be used to s    638 The 'Alpha Component' control can be used to set the alpha component for
657 formats containing an alpha channel.              639 formats containing an alpha channel.
658                                                   640 
659                                                   641 
660 User Controls - Audio                             642 User Controls - Audio
661 ~~~~~~~~~~~~~~~~~~~~~                             643 ~~~~~~~~~~~~~~~~~~~~~
662                                                   644 
663 The following controls are specific to video c    645 The following controls are specific to video capture and output and radio
664 receivers and transmitters.                       646 receivers and transmitters.
665                                                   647 
666 The 'Volume' and 'Mute' audio controls are typ    648 The 'Volume' and 'Mute' audio controls are typical for such devices to
667 control the volume and mute the audio. They do    649 control the volume and mute the audio. They don't actually do anything in
668 the vivid driver.                                 650 the vivid driver.
669                                                   651 
670                                                   652 
671 Vivid Controls                                    653 Vivid Controls
672 ~~~~~~~~~~~~~~                                    654 ~~~~~~~~~~~~~~
673                                                   655 
674 These vivid custom controls control the image     656 These vivid custom controls control the image generation, error injection, etc.
675                                                   657 
676                                                   658 
677 Test Pattern Controls                             659 Test Pattern Controls
678 ^^^^^^^^^^^^^^^^^^^^^                             660 ^^^^^^^^^^^^^^^^^^^^^
679                                                   661 
680 The Test Pattern Controls are all specific to     662 The Test Pattern Controls are all specific to video capture.
681                                                   663 
682 - Test Pattern:                                   664 - Test Pattern:
683                                                   665 
684         selects which test pattern to use. Use    666         selects which test pattern to use. Use the CSC Colorbar for
685         testing colorspace conversions: the co    667         testing colorspace conversions: the colors used in that test pattern
686         map to valid colors in all colorspaces    668         map to valid colors in all colorspaces. The colorspace conversion
687         is disabled for the other test pattern    669         is disabled for the other test patterns.
688                                                   670 
689 - OSD Text Mode:                                  671 - OSD Text Mode:
690                                                   672 
691         selects whether the text superimposed     673         selects whether the text superimposed on the
692         test pattern should be shown, and if s    674         test pattern should be shown, and if so, whether only counters should
693         be displayed or the full text.            675         be displayed or the full text.
694                                                   676 
695 - Horizontal Movement:                            677 - Horizontal Movement:
696                                                   678 
697         selects whether the test pattern shoul    679         selects whether the test pattern should
698         move to the left or right and at what     680         move to the left or right and at what speed.
699                                                   681 
700 - Vertical Movement:                              682 - Vertical Movement:
701                                                   683 
702         does the same for the vertical directi    684         does the same for the vertical direction.
703                                                   685 
704 - Show Border:                                    686 - Show Border:
705                                                   687 
706         show a two-pixel wide border at the ed    688         show a two-pixel wide border at the edge of the actual image,
707         excluding letter or pillarboxing.         689         excluding letter or pillarboxing.
708                                                   690 
709 - Show Square:                                    691 - Show Square:
710                                                   692 
711         show a square in the middle of the ima    693         show a square in the middle of the image. If the image is
712         displayed with the correct pixel and i    694         displayed with the correct pixel and image aspect ratio corrections,
713         then the width and height of the squar    695         then the width and height of the square on the monitor should be
714         the same.                                 696         the same.
715                                                   697 
716 - Insert SAV Code in Image:                       698 - Insert SAV Code in Image:
717                                                   699 
718         adds a SAV (Start of Active Video) cod    700         adds a SAV (Start of Active Video) code to the image.
719         This can be used to check if such code    701         This can be used to check if such codes in the image are inadvertently
720         interpreted instead of being ignored.     702         interpreted instead of being ignored.
721                                                   703 
722 - Insert EAV Code in Image:                       704 - Insert EAV Code in Image:
723                                                   705 
724         does the same for the EAV (End of Acti    706         does the same for the EAV (End of Active Video) code.
725                                                   707 
726 - Insert Video Guard Band                      << 
727                                                << 
728         adds 4 columns of pixels with the HDMI << 
729         left hand side of the image. This only << 
730         formats. The RGB pixel value 0xab/0x55 << 
731         to the HDMI Video Guard Band code that << 
732         (see section 5.2.2.1 in the HDMI 1.3 S << 
733         receiver has correct HDMI Video Guard  << 
734         control and then move the image to the << 
735         That will result in video lines that s << 
736         have the same value as the Video Guard << 
737         Receivers that will just keep skipping << 
738         now fail and either loose sync or thes << 
739                                                << 
740                                                   708 
741 Capture Feature Selection Controls                709 Capture Feature Selection Controls
742 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                710 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
743                                                   711 
744 These controls are all specific to video captu    712 These controls are all specific to video capture.
745                                                   713 
746 - Sensor Flipped Horizontally:                    714 - Sensor Flipped Horizontally:
747                                                   715 
748         the image is flipped horizontally and     716         the image is flipped horizontally and the
749         V4L2_IN_ST_HFLIP input status flag is     717         V4L2_IN_ST_HFLIP input status flag is set. This emulates the case where
750         a sensor is for example mounted upside    718         a sensor is for example mounted upside down.
751                                                   719 
752 - Sensor Flipped Vertically:                      720 - Sensor Flipped Vertically:
753                                                   721 
754         the image is flipped vertically and th    722         the image is flipped vertically and the
755         V4L2_IN_ST_VFLIP input status flag is     723         V4L2_IN_ST_VFLIP input status flag is set. This emulates the case where
756         a sensor is for example mounted upside    724         a sensor is for example mounted upside down.
757                                                   725 
758 - Standard Aspect Ratio:                          726 - Standard Aspect Ratio:
759                                                   727 
760         selects if the image aspect ratio as u    728         selects if the image aspect ratio as used for the TV or
761         S-Video input should be 4x3, 16x9 or a    729         S-Video input should be 4x3, 16x9 or anamorphic widescreen. This may
762         introduce letterboxing.                   730         introduce letterboxing.
763                                                   731 
764 - DV Timings Aspect Ratio:                        732 - DV Timings Aspect Ratio:
765                                                   733 
766         selects if the image aspect ratio as u    734         selects if the image aspect ratio as used for the HDMI
767         input should be the same as the source    735         input should be the same as the source width and height ratio, or if
768         it should be 4x3 or 16x9. This may int    736         it should be 4x3 or 16x9. This may introduce letter or pillarboxing.
769                                                   737 
770 - Timestamp Source:                               738 - Timestamp Source:
771                                                   739 
772         selects when the timestamp for each bu    740         selects when the timestamp for each buffer is taken.
773                                                   741 
774 - Colorspace:                                     742 - Colorspace:
775                                                   743 
776         selects which colorspace should be use    744         selects which colorspace should be used when generating the image.
777         This only applies if the CSC Colorbar     745         This only applies if the CSC Colorbar test pattern is selected,
778         otherwise the test pattern will go thr    746         otherwise the test pattern will go through unconverted.
779         This behavior is also what you want, s    747         This behavior is also what you want, since a 75% Colorbar
780         should really have 75% signal intensit    748         should really have 75% signal intensity and should not be affected
781         by colorspace conversions.                749         by colorspace conversions.
782                                                   750 
783         Changing the colorspace will result in    751         Changing the colorspace will result in the V4L2_EVENT_SOURCE_CHANGE
784         to be sent since it emulates a detecte    752         to be sent since it emulates a detected colorspace change.
785                                                   753 
786 - Transfer Function:                              754 - Transfer Function:
787                                                   755 
788         selects which colorspace transfer func    756         selects which colorspace transfer function should be used when
789         generating an image. This only applies    757         generating an image. This only applies if the CSC Colorbar test pattern is
790         selected, otherwise the test pattern w    758         selected, otherwise the test pattern will go through unconverted.
791         This behavior is also what you want, s    759         This behavior is also what you want, since a 75% Colorbar
792         should really have 75% signal intensit    760         should really have 75% signal intensity and should not be affected
793         by colorspace conversions.                761         by colorspace conversions.
794                                                   762 
795         Changing the transfer function will re    763         Changing the transfer function will result in the V4L2_EVENT_SOURCE_CHANGE
796         to be sent since it emulates a detecte    764         to be sent since it emulates a detected colorspace change.
797                                                   765 
798 - Y'CbCr Encoding:                                766 - Y'CbCr Encoding:
799                                                   767 
800         selects which Y'CbCr encoding should b    768         selects which Y'CbCr encoding should be used when generating
801         a Y'CbCr image. This only applies if t    769         a Y'CbCr image. This only applies if the format is set to a Y'CbCr format
802         as opposed to an RGB format.              770         as opposed to an RGB format.
803                                                   771 
804         Changing the Y'CbCr encoding will resu    772         Changing the Y'CbCr encoding will result in the V4L2_EVENT_SOURCE_CHANGE
805         to be sent since it emulates a detecte    773         to be sent since it emulates a detected colorspace change.
806                                                   774 
807 - Quantization:                                   775 - Quantization:
808                                                   776 
809         selects which quantization should be u    777         selects which quantization should be used for the RGB or Y'CbCr
810         encoding when generating the test patt    778         encoding when generating the test pattern.
811                                                   779 
812         Changing the quantization will result     780         Changing the quantization will result in the V4L2_EVENT_SOURCE_CHANGE
813         to be sent since it emulates a detecte    781         to be sent since it emulates a detected colorspace change.
814                                                   782 
815 - Limited RGB Range (16-235):                     783 - Limited RGB Range (16-235):
816                                                   784 
817         selects if the RGB range of the HDMI s    785         selects if the RGB range of the HDMI source should
818         be limited or full range. This combine    786         be limited or full range. This combines with the Digital Video 'Rx RGB
819         Quantization Range' control and can be    787         Quantization Range' control and can be used to test what happens if
820         a source provides you with the wrong q    788         a source provides you with the wrong quantization range information.
821         See the description of that control fo    789         See the description of that control for more details.
822                                                   790 
823 - Apply Alpha To Red Only:                        791 - Apply Alpha To Red Only:
824                                                   792 
825         apply the alpha channel as set by the     793         apply the alpha channel as set by the 'Alpha Component'
826         user control to the red color of the t    794         user control to the red color of the test pattern only.
827                                                   795 
828 - Enable Capture Cropping:                        796 - Enable Capture Cropping:
829                                                   797 
830         enables crop support. This control is     798         enables crop support. This control is only present if
831         the ccs_cap_mode module option is set     799         the ccs_cap_mode module option is set to the default value of -1 and if
832         the no_error_inj module option is set     800         the no_error_inj module option is set to 0 (the default).
833                                                   801 
834 - Enable Capture Composing:                       802 - Enable Capture Composing:
835                                                   803 
836         enables composing support. This contro    804         enables composing support. This control is only
837         present if the ccs_cap_mode module opt    805         present if the ccs_cap_mode module option is set to the default value of
838         -1 and if the no_error_inj module opti    806         -1 and if the no_error_inj module option is set to 0 (the default).
839                                                   807 
840 - Enable Capture Scaler:                          808 - Enable Capture Scaler:
841                                                   809 
842         enables support for a scaler (maximum     810         enables support for a scaler (maximum 4 times upscaling
843         and downscaling). This control is only    811         and downscaling). This control is only present if the ccs_cap_mode
844         module option is set to the default va    812         module option is set to the default value of -1 and if the no_error_inj
845         module option is set to 0 (the default    813         module option is set to 0 (the default).
846                                                   814 
847 - Maximum EDID Blocks:                            815 - Maximum EDID Blocks:
848                                                   816 
849         determines how many EDID blocks the dr    817         determines how many EDID blocks the driver supports.
850         Note that the vivid driver does not ac    818         Note that the vivid driver does not actually interpret new EDID
851         data, it just stores it. It allows for    819         data, it just stores it. It allows for up to 256 EDID blocks
852         which is the maximum supported by the     820         which is the maximum supported by the standard.
853                                                   821 
854 - Fill Percentage of Frame:                       822 - Fill Percentage of Frame:
855                                                   823 
856         can be used to draw only the top X per    824         can be used to draw only the top X percent
857         of the image. Since each frame has to     825         of the image. Since each frame has to be drawn by the driver, this
858         demands a lot of the CPU. For large re    826         demands a lot of the CPU. For large resolutions this becomes
859         problematic. By drawing only part of t    827         problematic. By drawing only part of the image this CPU load can
860         be reduced.                               828         be reduced.
861                                                   829 
862                                                   830 
863 Output Feature Selection Controls                 831 Output Feature Selection Controls
864 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 832 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
865                                                   833 
866 These controls are all specific to video outpu    834 These controls are all specific to video output.
867                                                   835 
868 - Enable Output Cropping:                         836 - Enable Output Cropping:
869                                                   837 
870         enables crop support. This control is     838         enables crop support. This control is only present if
871         the ccs_out_mode module option is set     839         the ccs_out_mode module option is set to the default value of -1 and if
872         the no_error_inj module option is set     840         the no_error_inj module option is set to 0 (the default).
873                                                   841 
874 - Enable Output Composing:                        842 - Enable Output Composing:
875                                                   843 
876         enables composing support. This contro    844         enables composing support. This control is only
877         present if the ccs_out_mode module opt    845         present if the ccs_out_mode module option is set to the default value of
878         -1 and if the no_error_inj module opti    846         -1 and if the no_error_inj module option is set to 0 (the default).
879                                                   847 
880 - Enable Output Scaler:                           848 - Enable Output Scaler:
881                                                   849 
882         enables support for a scaler (maximum     850         enables support for a scaler (maximum 4 times upscaling
883         and downscaling). This control is only    851         and downscaling). This control is only present if the ccs_out_mode
884         module option is set to the default va    852         module option is set to the default value of -1 and if the no_error_inj
885         module option is set to 0 (the default    853         module option is set to 0 (the default).
886                                                   854 
887                                                   855 
888 Error Injection Controls                          856 Error Injection Controls
889 ^^^^^^^^^^^^^^^^^^^^^^^^                          857 ^^^^^^^^^^^^^^^^^^^^^^^^
890                                                   858 
891 The following two controls are only valid for     859 The following two controls are only valid for video and vbi capture.
892                                                   860 
893 - Standard Signal Mode:                           861 - Standard Signal Mode:
894                                                   862 
895         selects the behavior of VIDIOC_QUERYST    863         selects the behavior of VIDIOC_QUERYSTD: what should it return?
896                                                   864 
897         Changing this control will result in t    865         Changing this control will result in the V4L2_EVENT_SOURCE_CHANGE
898         to be sent since it emulates a changed    866         to be sent since it emulates a changed input condition (e.g. a cable
899         was plugged in or out).                   867         was plugged in or out).
900                                                   868 
901 - Standard:                                       869 - Standard:
902                                                   870 
903         selects the standard that VIDIOC_QUERY    871         selects the standard that VIDIOC_QUERYSTD should return if the
904         previous control is set to "Selected S    872         previous control is set to "Selected Standard".
905                                                   873 
906         Changing this control will result in t    874         Changing this control will result in the V4L2_EVENT_SOURCE_CHANGE
907         to be sent since it emulates a changed    875         to be sent since it emulates a changed input standard.
908                                                   876 
909                                                   877 
910 The following two controls are only valid for     878 The following two controls are only valid for video capture.
911                                                   879 
912 - DV Timings Signal Mode:                         880 - DV Timings Signal Mode:
913                                                   881 
914         selects the behavior of VIDIOC_QUERY_D    882         selects the behavior of VIDIOC_QUERY_DV_TIMINGS: what
915         should it return?                         883         should it return?
916                                                   884 
917         Changing this control will result in t    885         Changing this control will result in the V4L2_EVENT_SOURCE_CHANGE
918         to be sent since it emulates a changed    886         to be sent since it emulates a changed input condition (e.g. a cable
919         was plugged in or out).                   887         was plugged in or out).
920                                                   888 
921 - DV Timings:                                     889 - DV Timings:
922                                                   890 
923         selects the timings the VIDIOC_QUERY_D    891         selects the timings the VIDIOC_QUERY_DV_TIMINGS should return
924         if the previous control is set to "Sel    892         if the previous control is set to "Selected DV Timings".
925                                                   893 
926         Changing this control will result in t    894         Changing this control will result in the V4L2_EVENT_SOURCE_CHANGE
927         to be sent since it emulates changed i    895         to be sent since it emulates changed input timings.
928                                                   896 
929                                                   897 
930 The following controls are only present if the    898 The following controls are only present if the no_error_inj module option
931 is set to 0 (the default). These controls are     899 is set to 0 (the default). These controls are valid for video and vbi
932 capture and output streams and for the SDR cap    900 capture and output streams and for the SDR capture device except for the
933 Disconnect control which is valid for all devi    901 Disconnect control which is valid for all devices.
934                                                   902 
935 - Wrap Sequence Number:                           903 - Wrap Sequence Number:
936                                                   904 
937         test what happens when you wrap the se    905         test what happens when you wrap the sequence number in
938         struct v4l2_buffer around.                906         struct v4l2_buffer around.
939                                                   907 
940 - Wrap Timestamp:                                 908 - Wrap Timestamp:
941                                                   909 
942         test what happens when you wrap the ti    910         test what happens when you wrap the timestamp in struct
943         v4l2_buffer around.                       911         v4l2_buffer around.
944                                                   912 
945 - Percentage of Dropped Buffers:                  913 - Percentage of Dropped Buffers:
946                                                   914 
947         sets the percentage of buffers that       915         sets the percentage of buffers that
948         are never returned by the driver (i.e.    916         are never returned by the driver (i.e., they are dropped).
949                                                   917 
950 - Disconnect:                                     918 - Disconnect:
951                                                   919 
952         emulates a USB disconnect. The device     920         emulates a USB disconnect. The device will act as if it has
953         been disconnected. Only after all open    921         been disconnected. Only after all open filehandles to the device
954         node have been closed will the device     922         node have been closed will the device become 'connected' again.
955                                                   923 
956 - Inject V4L2_BUF_FLAG_ERROR:                     924 - Inject V4L2_BUF_FLAG_ERROR:
957                                                   925 
958         when pressed, the next frame returned     926         when pressed, the next frame returned by
959         the driver will have the error flag se    927         the driver will have the error flag set (i.e. the frame is marked
960         corrupt).                                 928         corrupt).
961                                                   929 
962 - Inject VIDIOC_REQBUFS Error:                    930 - Inject VIDIOC_REQBUFS Error:
963                                                   931 
964         when pressed, the next REQBUFS or CREA    932         when pressed, the next REQBUFS or CREATE_BUFS
965         ioctl call will fail with an error. To    933         ioctl call will fail with an error. To be precise: the videobuf2
966         queue_setup() op will return -EINVAL.     934         queue_setup() op will return -EINVAL.
967                                                   935 
968 - Inject VIDIOC_QBUF Error:                       936 - Inject VIDIOC_QBUF Error:
969                                                   937 
970         when pressed, the next VIDIOC_QBUF or     938         when pressed, the next VIDIOC_QBUF or
971         VIDIOC_PREPARE_BUFFER ioctl call will     939         VIDIOC_PREPARE_BUFFER ioctl call will fail with an error. To be
972         precise: the videobuf2 buf_prepare() o    940         precise: the videobuf2 buf_prepare() op will return -EINVAL.
973                                                   941 
974 - Inject VIDIOC_STREAMON Error:                   942 - Inject VIDIOC_STREAMON Error:
975                                                   943 
976         when pressed, the next VIDIOC_STREAMON    944         when pressed, the next VIDIOC_STREAMON ioctl
977         call will fail with an error. To be pr    945         call will fail with an error. To be precise: the videobuf2
978         start_streaming() op will return -EINV    946         start_streaming() op will return -EINVAL.
979                                                   947 
980 - Inject Fatal Streaming Error:                   948 - Inject Fatal Streaming Error:
981                                                   949 
982         when pressed, the streaming core will     950         when pressed, the streaming core will be
983         marked as having suffered a fatal erro    951         marked as having suffered a fatal error, the only way to recover
984         from that is to stop streaming. To be     952         from that is to stop streaming. To be precise: the videobuf2
985         vb2_queue_error() function is called.     953         vb2_queue_error() function is called.
986                                                   954 
987                                                   955 
988 VBI Raw Capture Controls                          956 VBI Raw Capture Controls
989 ^^^^^^^^^^^^^^^^^^^^^^^^                          957 ^^^^^^^^^^^^^^^^^^^^^^^^
990                                                   958 
991 - Interlaced VBI Format:                          959 - Interlaced VBI Format:
992                                                   960 
993         if set, then the raw VBI data will be     961         if set, then the raw VBI data will be interlaced instead
994         of providing it grouped by field.         962         of providing it grouped by field.
995                                                   963 
996                                                   964 
997 Digital Video Controls                            965 Digital Video Controls
998 ~~~~~~~~~~~~~~~~~~~~~~                            966 ~~~~~~~~~~~~~~~~~~~~~~
999                                                   967 
1000 - Rx RGB Quantization Range:                     968 - Rx RGB Quantization Range:
1001                                                  969 
1002         sets the RGB quantization detection o    970         sets the RGB quantization detection of the HDMI
1003         input. This combines with the Vivid '    971         input. This combines with the Vivid 'Limited RGB Range (16-235)'
1004         control and can be used to test what     972         control and can be used to test what happens if a source provides
1005         you with the wrong quantization range    973         you with the wrong quantization range information. This can be tested
1006         by selecting an HDMI input, setting t    974         by selecting an HDMI input, setting this control to Full or Limited
1007         range and selecting the opposite in t    975         range and selecting the opposite in the 'Limited RGB Range (16-235)'
1008         control. The effect is easy to see if    976         control. The effect is easy to see if the 'Gray Ramp' test pattern
1009         is selected.                             977         is selected.
1010                                                  978 
1011 - Tx RGB Quantization Range:                     979 - Tx RGB Quantization Range:
1012                                                  980 
1013         sets the RGB quantization detection o    981         sets the RGB quantization detection of the HDMI
1014         output. It is currently not used for     982         output. It is currently not used for anything in vivid, but most HDMI
1015         transmitters would typically have thi    983         transmitters would typically have this control.
1016                                                  984 
1017 - Transmit Mode:                                 985 - Transmit Mode:
1018                                                  986 
1019         sets the transmit mode of the HDMI ou    987         sets the transmit mode of the HDMI output to HDMI or DVI-D. This
1020         affects the reported colorspace since    988         affects the reported colorspace since DVI_D outputs will always use
1021         sRGB.                                    989         sRGB.
1022                                                  990 
                                                   >> 991 - Display Present:
                                                   >> 992 
                                                   >> 993         sets the presence of a "display" on the HDMI output. This affects
                                                   >> 994         the tx_edid_present, tx_hotplug and tx_rxsense controls.
                                                   >> 995 
1023                                                  996 
1024 FM Radio Receiver Controls                       997 FM Radio Receiver Controls
1025 ~~~~~~~~~~~~~~~~~~~~~~~~~~                       998 ~~~~~~~~~~~~~~~~~~~~~~~~~~
1026                                                  999 
1027 - RDS Reception:                                 1000 - RDS Reception:
1028                                                  1001 
1029         set if the RDS receiver should be ena    1002         set if the RDS receiver should be enabled.
1030                                                  1003 
1031 - RDS Program Type:                              1004 - RDS Program Type:
1032                                                  1005 
1033                                                  1006 
1034 - RDS PS Name:                                   1007 - RDS PS Name:
1035                                                  1008 
1036                                                  1009 
1037 - RDS Radio Text:                                1010 - RDS Radio Text:
1038                                                  1011 
1039                                                  1012 
1040 - RDS Traffic Announcement:                      1013 - RDS Traffic Announcement:
1041                                                  1014 
1042                                                  1015 
1043 - RDS Traffic Program:                           1016 - RDS Traffic Program:
1044                                                  1017 
1045                                                  1018 
1046 - RDS Music:                                     1019 - RDS Music:
1047                                                  1020 
1048         these are all read-only controls. If     1021         these are all read-only controls. If RDS Rx I/O Mode is set to
1049         "Block I/O", then they are inactive a    1022         "Block I/O", then they are inactive as well. If RDS Rx I/O Mode is set
1050         to "Controls", then these controls re    1023         to "Controls", then these controls report the received RDS data.
1051                                                  1024 
1052 .. note::                                        1025 .. note::
1053         The vivid implementation of this is p    1026         The vivid implementation of this is pretty basic: they are only
1054         updated when you set a new frequency     1027         updated when you set a new frequency or when you get the tuner status
1055         (VIDIOC_G_TUNER).                        1028         (VIDIOC_G_TUNER).
1056                                                  1029 
1057 - Radio HW Seek Mode:                            1030 - Radio HW Seek Mode:
1058                                                  1031 
1059         can be one of "Bounded", "Wrap Around    1032         can be one of "Bounded", "Wrap Around" or "Both". This
1060         determines if VIDIOC_S_HW_FREQ_SEEK w    1033         determines if VIDIOC_S_HW_FREQ_SEEK will be bounded by the frequency
1061         range or wrap-around or if it is sele    1034         range or wrap-around or if it is selectable by the user.
1062                                                  1035 
1063 - Radio Programmable HW Seek:                    1036 - Radio Programmable HW Seek:
1064                                                  1037 
1065         if set, then the user can provide the    1038         if set, then the user can provide the lower and
1066         upper bound of the HW Seek. Otherwise    1039         upper bound of the HW Seek. Otherwise the frequency range boundaries
1067         will be used.                            1040         will be used.
1068                                                  1041 
1069 - Generate RBDS Instead of RDS:                  1042 - Generate RBDS Instead of RDS:
1070                                                  1043 
1071         if set, then generate RBDS (the US va    1044         if set, then generate RBDS (the US variant of
1072         RDS) data instead of RDS (European-st    1045         RDS) data instead of RDS (European-style RDS). This affects only the
1073         PICODE and PTY codes.                    1046         PICODE and PTY codes.
1074                                                  1047 
1075 - RDS Rx I/O Mode:                               1048 - RDS Rx I/O Mode:
1076                                                  1049 
1077         this can be "Block I/O" where the RDS    1050         this can be "Block I/O" where the RDS blocks have to be read()
1078         by the application, or "Controls" whe    1051         by the application, or "Controls" where the RDS data is provided by
1079         the RDS controls mentioned above.        1052         the RDS controls mentioned above.
1080                                                  1053 
1081                                                  1054 
1082 FM Radio Modulator Controls                      1055 FM Radio Modulator Controls
1083 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                      1056 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
1084                                                  1057 
1085 - RDS Program ID:                                1058 - RDS Program ID:
1086                                                  1059 
1087                                                  1060 
1088 - RDS Program Type:                              1061 - RDS Program Type:
1089                                                  1062 
1090                                                  1063 
1091 - RDS PS Name:                                   1064 - RDS PS Name:
1092                                                  1065 
1093                                                  1066 
1094 - RDS Radio Text:                                1067 - RDS Radio Text:
1095                                                  1068 
1096                                                  1069 
1097 - RDS Stereo:                                    1070 - RDS Stereo:
1098                                                  1071 
1099                                                  1072 
1100 - RDS Artificial Head:                           1073 - RDS Artificial Head:
1101                                                  1074 
1102                                                  1075 
1103 - RDS Compressed:                                1076 - RDS Compressed:
1104                                                  1077 
1105                                                  1078 
1106 - RDS Dynamic PTY:                               1079 - RDS Dynamic PTY:
1107                                                  1080 
1108                                                  1081 
1109 - RDS Traffic Announcement:                      1082 - RDS Traffic Announcement:
1110                                                  1083 
1111                                                  1084 
1112 - RDS Traffic Program:                           1085 - RDS Traffic Program:
1113                                                  1086 
1114                                                  1087 
1115 - RDS Music:                                     1088 - RDS Music:
1116                                                  1089 
1117         these are all controls that set the R    1090         these are all controls that set the RDS data that is transmitted by
1118         the FM modulator.                        1091         the FM modulator.
1119                                                  1092 
1120 - RDS Tx I/O Mode:                               1093 - RDS Tx I/O Mode:
1121                                                  1094 
1122         this can be "Block I/O" where the app    1095         this can be "Block I/O" where the application has to use write()
1123         to pass the RDS blocks to the driver,    1096         to pass the RDS blocks to the driver, or "Controls" where the RDS data
1124         is Provided by the RDS controls menti    1097         is Provided by the RDS controls mentioned above.
1125                                                  1098 
1126 Metadata Capture Controls                        1099 Metadata Capture Controls
1127 ~~~~~~~~~~~~~~~~~~~~~~~~~~                       1100 ~~~~~~~~~~~~~~~~~~~~~~~~~~
1128                                                  1101 
1129 - Generate PTS                                   1102 - Generate PTS
1130                                                  1103 
1131         if set, then the generated metadata s    1104         if set, then the generated metadata stream contains Presentation timestamp.
1132                                                  1105 
1133 - Generate SCR                                   1106 - Generate SCR
1134                                                  1107 
1135         if set, then the generated metadata s    1108         if set, then the generated metadata stream contains Source Clock information.
1136                                                  1109 
                                                   >> 1110 Video, VBI and RDS Looping
                                                   >> 1111 --------------------------
                                                   >> 1112 
                                                   >> 1113 The vivid driver supports looping of video output to video input, VBI output
                                                   >> 1114 to VBI input and RDS output to RDS input. For video/VBI looping this emulates
                                                   >> 1115 as if a cable was hooked up between the output and input connector. So video
                                                   >> 1116 and VBI looping is only supported between S-Video and HDMI inputs and outputs.
                                                   >> 1117 VBI is only valid for S-Video as it makes no sense for HDMI.
                                                   >> 1118 
                                                   >> 1119 Since radio is wireless this looping always happens if the radio receiver
                                                   >> 1120 frequency is close to the radio transmitter frequency. In that case the radio
                                                   >> 1121 transmitter will 'override' the emulated radio stations.
1137                                                  1122 
1138 Video, Sliced VBI and HDMI CEC Looping        !! 1123 Looping is currently supported only between devices created by the same
1139 --------------------------------------        !! 1124 vivid driver instance.
1140                                                  1125 
1141 Video Looping functionality is supported for  << 
1142 vivid driver instance, as well as across mult << 
1143 The vivid driver supports looping of video an << 
1144 and an S-Video input. It also supports loopin << 
1145 HDMI output and an HDMI input.                << 
1146                                               << 
1147 To enable looping, set the 'HDMI/S-Video XXX- << 
1148 whether an input uses the Test Pattern Genera << 
1149 to an output. An input can be connected to an << 
1150 The inputs and outputs are numbered XXX-N whe << 
1151 (see module option n_devs). If there is only  << 
1152 XXX will be 000. And N is the Nth S-Video/HDM << 
1153 If vivid is loaded without module options, th << 
1154 to the S-Video 000-0 output, or the HDMI 000- << 
1155 This is the equivalent of connecting or disco << 
1156 output in a physical device.                  << 
1157                                                  1126 
1158 If an 'HDMI/S-Video XXX-N Is Connected To' co !! 1127 Video and Sliced VBI looping
1159 output will be looped to the video input prov !! 1128 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1160                                                  1129 
1161 - the currently selected input matches the in !! 1130 The way to enable video/VBI looping is currently fairly crude. A 'Loop Video'
                                                   >> 1131 control is available in the "Vivid" control class of the video
                                                   >> 1132 capture and VBI capture devices. When checked the video looping will be enabled.
                                                   >> 1133 Once enabled any video S-Video or HDMI input will show a static test pattern
                                                   >> 1134 until the video output has started. At that time the video output will be
                                                   >> 1135 looped to the video input provided that:
1162                                                  1136 
1163 - in the vivid instance of the output connect !! 1137 - the input type matches the output type. So the HDMI input cannot receive
1164   the output indicated by the control's value !! 1138   video from the S-Video output.
1165                                                  1139 
1166 - the video resolution of the video input mus    1140 - the video resolution of the video input must match that of the video output.
1167   So it is not possible to loop a 50 Hz (720x    1141   So it is not possible to loop a 50 Hz (720x576) S-Video output to a 60 Hz
1168   (720x480) S-Video input, or a 720p60 HDMI o    1142   (720x480) S-Video input, or a 720p60 HDMI output to a 1080p30 input.
1169                                                  1143 
1170 - the pixel formats must be identical on both    1144 - the pixel formats must be identical on both sides. Otherwise the driver would
1171   have to do pixel format conversion as well,    1145   have to do pixel format conversion as well, and that's taking things too far.
1172                                                  1146 
1173 - the field settings must be identical on bot    1147 - the field settings must be identical on both sides. Same reason as above:
1174   requiring the driver to convert from one fi    1148   requiring the driver to convert from one field format to another complicated
1175   matters too much. This also prohibits captu    1149   matters too much. This also prohibits capturing with 'Field Top' or 'Field
1176   Bottom' when the output video is set to 'Fi    1150   Bottom' when the output video is set to 'Field Alternate'. This combination,
1177   while legal, became too complicated to supp    1151   while legal, became too complicated to support. Both sides have to be 'Field
1178   Alternate' for this to work. Also note that    1152   Alternate' for this to work. Also note that for this specific case the
1179   sequence and field counting in struct v4l2_    1153   sequence and field counting in struct v4l2_buffer on the capture side may not
1180   be 100% accurate.                              1154   be 100% accurate.
1181                                                  1155 
1182 - field settings V4L2_FIELD_SEQ_TB/BT are not    1156 - field settings V4L2_FIELD_SEQ_TB/BT are not supported. While it is possible to
1183   implement this, it would mean a lot of work    1157   implement this, it would mean a lot of work to get this right. Since these
1184   field values are rarely used the decision w    1158   field values are rarely used the decision was made not to implement this for
1185   now.                                           1159   now.
1186                                                  1160 
1187 - on the input side the "Standard Signal Mode    1161 - on the input side the "Standard Signal Mode" for the S-Video input or the
1188   "DV Timings Signal Mode" for the HDMI input    1162   "DV Timings Signal Mode" for the HDMI input should be configured so that a
1189   valid signal is passed to the video input.     1163   valid signal is passed to the video input.
1190                                                  1164 
1191 If any condition is not valid, then the 'Nois << 
1192                                               << 
1193 The framerates do not have to match, although    1165 The framerates do not have to match, although this might change in the future.
1194                                                  1166 
1195 By default you will see the OSD text superimp    1167 By default you will see the OSD text superimposed on top of the looped video.
1196 This can be turned off by changing the "OSD T    1168 This can be turned off by changing the "OSD Text Mode" control of the video
1197 capture device.                                  1169 capture device.
1198                                                  1170 
1199 For VBI looping to work all of the above must    1171 For VBI looping to work all of the above must be valid and in addition the vbi
1200 output must be configured for sliced VBI. The    1172 output must be configured for sliced VBI. The VBI capture side can be configured
1201 for either raw or sliced VBI. Note that at th    1173 for either raw or sliced VBI. Note that at the moment only CC/XDS (60 Hz formats)
1202 and WSS (50 Hz formats) VBI data is looped. T    1174 and WSS (50 Hz formats) VBI data is looped. Teletext VBI data is not looped.
1203                                                  1175 
1204                                                  1176 
1205 Radio & RDS Looping                              1177 Radio & RDS Looping
1206 -------------------                           !! 1178 ~~~~~~~~~~~~~~~~~~~
1207                                                  1179 
1208 The vivid driver supports looping of RDS outp !! 1180 As mentioned in section 6 the radio receiver emulates stations are regular
1209                                               !! 1181 frequency intervals. Depending on the frequency of the radio receiver a
1210 Since radio is wireless this looping always h !! 1182 signal strength value is calculated (this is returned by VIDIOC_G_TUNER).
1211 frequency is close to the radio transmitter f !! 1183 However, it will also look at the frequency set by the radio transmitter and
1212 transmitter will 'override' the emulated radi !! 1184 if that results in a higher signal strength than the settings of the radio
1213                                               !! 1185 transmitter will be used as if it was a valid station. This also includes
1214 RDS looping is currently supported only betwe !! 1186 the RDS data (if any) that the transmitter 'transmits'. This is received
1215 vivid driver instance.                        !! 1187 faithfully on the receiver side. Note that when the driver is loaded the
1216                                               !! 1188 frequencies of the radio receiver and transmitter are not identical, so
1217 As mentioned in the "Radio Receiver" section, << 
1218 stations at regular frequency intervals. Depe << 
1219 radio receiver a signal strength value is cal << 
1220 VIDIOC_G_TUNER). However, it will also look a << 
1221 transmitter and if that results in a higher s << 
1222 of the radio transmitter will be used as if i << 
1223 includes the RDS data (if any) that the trans << 
1224 received faithfully on the receiver side. Not << 
1225 the frequencies of the radio receiver and tra << 
1226 initially no looping takes place.                1189 initially no looping takes place.
1227                                                  1190 
1228                                                  1191 
1229 Cropping, Composing, Scaling                     1192 Cropping, Composing, Scaling
1230 ----------------------------                     1193 ----------------------------
1231                                                  1194 
1232 This driver supports cropping, composing and     1195 This driver supports cropping, composing and scaling in any combination. Normally
1233 which features are supported can be selected     1196 which features are supported can be selected through the Vivid controls,
1234 but it is also possible to hardcode it when t    1197 but it is also possible to hardcode it when the module is loaded through the
1235 ccs_cap_mode and ccs_out_mode module options. !! 1198 ccs_cap_mode and ccs_out_mode module options. See section 1 on the details of
1236 the details of these module options.          !! 1199 these module options.
1237                                                  1200 
1238 This allows you to test your application for     1201 This allows you to test your application for all these variations.
1239                                                  1202 
1240 Note that the webcam input never supports cro    1203 Note that the webcam input never supports cropping, composing or scaling. That
1241 only applies to the TV/S-Video/HDMI inputs an    1204 only applies to the TV/S-Video/HDMI inputs and outputs. The reason is that
1242 webcams, including this virtual implementatio    1205 webcams, including this virtual implementation, normally use
1243 VIDIOC_ENUM_FRAMESIZES to list a set of discr    1206 VIDIOC_ENUM_FRAMESIZES to list a set of discrete framesizes that it supports.
1244 And that does not combine with cropping, comp    1207 And that does not combine with cropping, composing or scaling. This is
1245 primarily a limitation of the V4L2 API which     1208 primarily a limitation of the V4L2 API which is carefully reproduced here.
1246                                                  1209 
1247 The minimum and maximum resolutions that the     1210 The minimum and maximum resolutions that the scaler can achieve are 16x16 and
1248 (4096 * 4) x (2160 x 4), but it can only scal    1211 (4096 * 4) x (2160 x 4), but it can only scale up or down by a factor of 4 or
1249 less. So for a source resolution of 1280x720     1212 less. So for a source resolution of 1280x720 the minimum the scaler can do is
1250 320x180 and the maximum is 5120x2880. You can    1213 320x180 and the maximum is 5120x2880. You can play around with this using the
1251 qv4l2 test tool and you will see these depend    1214 qv4l2 test tool and you will see these dependencies.
1252                                                  1215 
1253 This driver also supports larger 'bytesperlin    1216 This driver also supports larger 'bytesperline' settings, something that
1254 VIDIOC_S_FMT allows but that few drivers impl    1217 VIDIOC_S_FMT allows but that few drivers implement.
1255                                                  1218 
1256 The scaler is a simple scaler that uses the C    1219 The scaler is a simple scaler that uses the Coarse Bresenham algorithm. It's
1257 designed for speed and simplicity, not qualit    1220 designed for speed and simplicity, not quality.
1258                                                  1221 
1259 If the combination of crop, compose and scali    1222 If the combination of crop, compose and scaling allows it, then it is possible
1260 to change crop and compose rectangles on the     1223 to change crop and compose rectangles on the fly.
1261                                                  1224 
1262                                                  1225 
1263 Formats                                          1226 Formats
1264 -------                                          1227 -------
1265                                                  1228 
1266 The driver supports all the regular packed an    1229 The driver supports all the regular packed and planar 4:4:4, 4:2:2 and 4:2:0
1267 YUYV formats, 8, 16, 24 and 32 RGB packed for    1230 YUYV formats, 8, 16, 24 and 32 RGB packed formats and various multiplanar
1268 formats.                                         1231 formats.
1269                                                  1232 
1270 The alpha component can be set through the 'A    1233 The alpha component can be set through the 'Alpha Component' User control
1271 for those formats that support it. If the 'Ap    1234 for those formats that support it. If the 'Apply Alpha To Red Only' control
1272 is set, then the alpha component is only used    1235 is set, then the alpha component is only used for the color red and set to
1273 0 otherwise.                                     1236 0 otherwise.
1274                                                  1237 
1275 The driver has to be configured to support th    1238 The driver has to be configured to support the multiplanar formats. By default
1276 the driver instances are single-planar. This     1239 the driver instances are single-planar. This can be changed by setting the
1277 multiplanar module option, see "Configuring t !! 1240 multiplanar module option, see section 1 for more details on that option.
1278 option.                                       << 
1279                                                  1241 
1280 If the driver instance is using the multiplan    1242 If the driver instance is using the multiplanar formats/API, then the first
1281 single planar format (YUYV) and the multiplan    1243 single planar format (YUYV) and the multiplanar NV16M and NV61M formats the
1282 will have a plane that has a non-zero data_of    1244 will have a plane that has a non-zero data_offset of 128 bytes. It is rare for
1283 data_offset to be non-zero, so this is a usef    1245 data_offset to be non-zero, so this is a useful feature for testing applications.
1284                                                  1246 
1285 Video output will also honor any data_offset     1247 Video output will also honor any data_offset that the application set.
1286                                                  1248 
1287                                                  1249 
                                                   >> 1250 Capture Overlay
                                                   >> 1251 ---------------
                                                   >> 1252 
                                                   >> 1253 Note: capture overlay support is implemented primarily to test the existing
                                                   >> 1254 V4L2 capture overlay API. In practice few if any GPUs support such overlays
                                                   >> 1255 anymore, and neither are they generally needed anymore since modern hardware
                                                   >> 1256 is so much more capable. By setting flag 0x10000 in the node_types module
                                                   >> 1257 option the vivid driver will create a simple framebuffer device that can be
                                                   >> 1258 used for testing this API. Whether this API should be used for new drivers is
                                                   >> 1259 questionable.
                                                   >> 1260 
                                                   >> 1261 This driver has support for a destructive capture overlay with bitmap clipping
                                                   >> 1262 and list clipping (up to 16 rectangles) capabilities. Overlays are not
                                                   >> 1263 supported for multiplanar formats. It also honors the struct v4l2_window field
                                                   >> 1264 setting: if it is set to FIELD_TOP or FIELD_BOTTOM and the capture setting is
                                                   >> 1265 FIELD_ALTERNATE, then only the top or bottom fields will be copied to the overlay.
                                                   >> 1266 
                                                   >> 1267 The overlay only works if you are also capturing at that same time. This is a
                                                   >> 1268 vivid limitation since it copies from a buffer to the overlay instead of
                                                   >> 1269 filling the overlay directly. And if you are not capturing, then no buffers
                                                   >> 1270 are available to fill.
                                                   >> 1271 
                                                   >> 1272 In addition, the pixelformat of the capture format and that of the framebuffer
                                                   >> 1273 must be the same for the overlay to work. Otherwise VIDIOC_OVERLAY will return
                                                   >> 1274 an error.
                                                   >> 1275 
                                                   >> 1276 In order to really see what it going on you will need to create two vivid
                                                   >> 1277 instances: the first with a framebuffer enabled. You configure the capture
                                                   >> 1278 overlay of the second instance to use the framebuffer of the first, then
                                                   >> 1279 you start capturing in the second instance. For the first instance you setup
                                                   >> 1280 the output overlay for the video output, turn on video looping and capture
                                                   >> 1281 to see the blended framebuffer overlay that's being written to by the second
                                                   >> 1282 instance. This setup would require the following commands:
                                                   >> 1283 
                                                   >> 1284 .. code-block:: none
                                                   >> 1285 
                                                   >> 1286         $ sudo modprobe vivid n_devs=2 node_types=0x10101,0x1
                                                   >> 1287         $ v4l2-ctl -d1 --find-fb
                                                   >> 1288         /dev/fb1 is the framebuffer associated with base address 0x12800000
                                                   >> 1289         $ sudo v4l2-ctl -d2 --set-fbuf fb=1
                                                   >> 1290         $ v4l2-ctl -d1 --set-fbuf fb=1
                                                   >> 1291         $ v4l2-ctl -d0 --set-fmt-video=pixelformat='AR15'
                                                   >> 1292         $ v4l2-ctl -d1 --set-fmt-video-out=pixelformat='AR15'
                                                   >> 1293         $ v4l2-ctl -d2 --set-fmt-video=pixelformat='AR15'
                                                   >> 1294         $ v4l2-ctl -d0 -i2
                                                   >> 1295         $ v4l2-ctl -d2 -i2
                                                   >> 1296         $ v4l2-ctl -d2 -c horizontal_movement=4
                                                   >> 1297         $ v4l2-ctl -d1 --overlay=1
                                                   >> 1298         $ v4l2-ctl -d1 -c loop_video=1
                                                   >> 1299         $ v4l2-ctl -d2 --stream-mmap --overlay=1
                                                   >> 1300 
                                                   >> 1301 And from another console:
                                                   >> 1302 
                                                   >> 1303 .. code-block:: none
                                                   >> 1304 
                                                   >> 1305         $ v4l2-ctl -d1 --stream-out-mmap
                                                   >> 1306 
                                                   >> 1307 And yet another console:
                                                   >> 1308 
                                                   >> 1309 .. code-block:: none
                                                   >> 1310 
                                                   >> 1311         $ qv4l2
                                                   >> 1312 
                                                   >> 1313 and start streaming.
                                                   >> 1314 
                                                   >> 1315 As you can see, this is not for the faint of heart...
                                                   >> 1316 
                                                   >> 1317 
1288 Output Overlay                                   1318 Output Overlay
1289 --------------                                   1319 --------------
1290                                                  1320 
1291 Note: output overlays are primarily implement    1321 Note: output overlays are primarily implemented in order to test the existing
1292 V4L2 output overlay API. Whether this API sho    1322 V4L2 output overlay API. Whether this API should be used for new drivers is
1293 questionable.                                    1323 questionable.
1294                                                  1324 
1295 This driver has support for an output overlay    1325 This driver has support for an output overlay and is capable of:
1296                                                  1326 
1297         - bitmap clipping,                       1327         - bitmap clipping,
1298         - list clipping (up to 16 rectangles)    1328         - list clipping (up to 16 rectangles)
1299         - chromakey                              1329         - chromakey
1300         - source chromakey                       1330         - source chromakey
1301         - global alpha                           1331         - global alpha
1302         - local alpha                            1332         - local alpha
1303         - local inverse alpha                    1333         - local inverse alpha
1304                                                  1334 
1305 Output overlays are not supported for multipl    1335 Output overlays are not supported for multiplanar formats. In addition, the
1306 pixelformat of the capture format and that of    1336 pixelformat of the capture format and that of the framebuffer must be the
1307 same for the overlay to work. Otherwise VIDIO    1337 same for the overlay to work. Otherwise VIDIOC_OVERLAY will return an error.
1308                                                  1338 
1309 Output overlays only work if the driver has b    1339 Output overlays only work if the driver has been configured to create a
1310 framebuffer by setting flag 0x10000 in the no    1340 framebuffer by setting flag 0x10000 in the node_types module option. The
1311 created framebuffer has a size of 720x576 and    1341 created framebuffer has a size of 720x576 and supports ARGB 1:5:5:5 and
1312 RGB 5:6:5.                                       1342 RGB 5:6:5.
1313                                                  1343 
1314 In order to see the effects of the various cl    1344 In order to see the effects of the various clipping, chromakeying or alpha
1315 processing capabilities you need to turn on v    1345 processing capabilities you need to turn on video looping and see the results
1316 on the capture side. The use of the clipping,    1346 on the capture side. The use of the clipping, chromakeying or alpha processing
1317 capabilities will slow down the video loop co    1347 capabilities will slow down the video loop considerably as a lot of checks have
1318 to be done per pixel.                            1348 to be done per pixel.
1319                                                  1349 
1320                                                  1350 
1321 CEC (Consumer Electronics Control)               1351 CEC (Consumer Electronics Control)
1322 ----------------------------------               1352 ----------------------------------
1323                                                  1353 
1324 If there are HDMI inputs then a CEC adapter w    1354 If there are HDMI inputs then a CEC adapter will be created that has
1325 the same number of input ports. This is the e    1355 the same number of input ports. This is the equivalent of e.g. a TV that
1326 has that number of inputs. Each HDMI output w    1356 has that number of inputs. Each HDMI output will also create a
1327 CEC adapter that is hooked up to the correspo    1357 CEC adapter that is hooked up to the corresponding input port, or (if there
1328 are more outputs than inputs) is not hooked u    1358 are more outputs than inputs) is not hooked up at all. In other words,
1329 this is the equivalent of hooking up each out    1359 this is the equivalent of hooking up each output device to an input port of
1330 the TV. Any remaining output devices remain u    1360 the TV. Any remaining output devices remain unconnected.
1331                                                  1361 
1332 The EDID that each output reads reports a uni    1362 The EDID that each output reads reports a unique CEC physical address that is
1333 based on the physical address of the EDID of     1363 based on the physical address of the EDID of the input. So if the EDID of the
1334 receiver has physical address A.B.0.0, then e    1364 receiver has physical address A.B.0.0, then each output will see an EDID
1335 containing physical address A.B.C.0 where C i    1365 containing physical address A.B.C.0 where C is 1 to the number of inputs. If
1336 there are more outputs than inputs then the r    1366 there are more outputs than inputs then the remaining outputs have a CEC adapter
1337 that is disabled and reports an invalid physi    1367 that is disabled and reports an invalid physical address.
1338                                                  1368 
1339                                                  1369 
1340 Some Future Improvements                         1370 Some Future Improvements
1341 ------------------------                         1371 ------------------------
1342                                                  1372 
1343 Just as a reminder and in no particular order    1373 Just as a reminder and in no particular order:
1344                                                  1374 
1345 - Add a virtual alsa driver to test audio        1375 - Add a virtual alsa driver to test audio
1346 - Add virtual sub-devices                     !! 1376 - Add virtual sub-devices and media controller support
1347 - Some support for testing compressed video      1377 - Some support for testing compressed video
1348 - Add support to loop raw VBI output to raw V    1378 - Add support to loop raw VBI output to raw VBI input
1349 - Add support to loop teletext sliced VBI out    1379 - Add support to loop teletext sliced VBI output to VBI input
1350 - Fix sequence/field numbering when looping o    1380 - Fix sequence/field numbering when looping of video with alternate fields
1351 - Add support for V4L2_CID_BG_COLOR for video    1381 - Add support for V4L2_CID_BG_COLOR for video outputs
1352 - Add ARGB888 overlay support: better testing    1382 - Add ARGB888 overlay support: better testing of the alpha channel
1353 - Improve pixel aspect support in the tpg cod    1383 - Improve pixel aspect support in the tpg code by passing a real v4l2_fract
1354 - Use per-queue locks and/or per-device locks    1384 - Use per-queue locks and/or per-device locks to improve throughput
                                                   >> 1385 - Add support to loop from a specific output to a specific input across
                                                   >> 1386   vivid instances
1355 - The SDR radio should use the same 'frequenc    1387 - The SDR radio should use the same 'frequencies' for stations as the normal
1356   radio receiver, and give back noise if the     1388   radio receiver, and give back noise if the frequency doesn't match up with
1357   a station frequency                            1389   a station frequency
1358 - Make a thread for the RDS generation, that     1390 - Make a thread for the RDS generation, that would help in particular for the
1359   "Controls" RDS Rx I/O Mode as the read-only    1391   "Controls" RDS Rx I/O Mode as the read-only RDS controls could be updated
1360   in real-time.                                  1392   in real-time.
1361 - Changing the EDID doesn't wait 100 ms befor !! 1393 - Changing the EDID should cause hotplug detect emulation to happen.
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php