The VIVI driver; a great starting point for V4L2 driver writers
Posted Oct 12, 2006 4:18 UTC (Thu) by roskegg
Parent article: The Video4Linux2 API: an introduction
Video Technology Magazine (http://www.videotechnology.com/) noticed the lack of good documentation for writing V4L2 drivers a year ago. Videotechnology Magazine staff John Sokol (Editor) and Ted Walther began coding the Virtual Video driver project. Part way through they handed the work over to Mauro Carvhalo Chehab for completion. It was finished just before Debconf6.
The "vivi" driver which appeared in the 2.6.17 kernel is the outcome of that work. vivi is an abbreviation of "Virtual Video". The vivi driver creates a virtual video input device that produces real video.
The goal of the vivi project was to do a bare minimum "stub" V4L2 driver that would produce video output playable with xawtv. The project was an astounding success. vivi outputs a changing timestamp overlaid on some vertical color bars. vivi is simple. You can use it as a starting point for any video driver you wish to write.
The vivi code uses the most approved, idiomatic, current set of best practices for coding V4L2 drivers in the Linux kernel. If you use vivi as a starting point for your new V4L2 drivers, they will be less likely to break in the future than if you use any other driver as a starting point. You do not need to wonder if any of the code was written the way it was to work around some hardware specific bug. Being a virtual device, you know it wasn't.
Videotechnology Magazine sponsored a backport of vivi and the current V4L2 core to the 2.4 series of kernels. Whether you want a development or a tried and true kernel, you can benefit from vivi and the latest improvements in V4L2 because of this work.
to post comments)