Inspiration

Every time they updated the Linux kernel the interfaces changed and constantly kept breaking propritary driver code. ViVi short for "Virtual Video" allows for an idealized driver, with no actual hardware. It's intended to allow for a test video source (color bars) , frame counters, etc to check video streaming system. To provide an easily modifiable driver for the starting point for new drivers, as well as a Non changing stub that propritary drivers can tie in to .

How it works

VIVI - Virtual Video Driver VIVI is a Virtual Video Driver that is a V4L2 linux video driver module that acts as a real device driver but with no physical hardware. Right now it just play color bars with a Frame Counter and some TV snow in one corner.

It is intended to be a working example code for current V4L2 Driver and Stub driver to facilitate the implementation of new video drivers. Since there is no Actual hardware the driver is very clean and Demonstrates the ideal use of the Linux Kernel Interface for a V4L2 Video Driver.

It's very well suited as a wrapper around third party propriety driver that use nonstandard API's.

Challenges I ran into

It tooks to major kernel changed to decouple the whole video subsystem from the assumption that all video capture was PCI bus only. This was really needed to support things like USB video, and IP Cameras.

Accomplishments that I'm proud of

It's a permanent part of the Linux kernel since 2.6.17
/linux/drivers/media/video/vivi.c

As far as I know my website it one of the few actuallty listed in the Linux Kernel.

0001 /* 0002 * Virtual Video driver - This code emulates a real video device with v4l2 api 0003 * 0004 * Copyright (c) 2006 by: 0005 * Mauro Carvalho Chehab 0006 * Ted Walther 0007 * John Sokol 0008 * http://v4l.videotechnology.com/ 0009 * 0010 * Conversion to videobuf2 by Pawel Osciak & Marek Szyprowski 0011 * Copyright (c) 2010 Samsung Electronics 0012 * 0013 * This program is free software; you can redistribute it and/or modify 0014 * it under the terms of the BSD Licence, GNU General Public License 0015 * as published by the Free Software Foundation; either version 2 of the 0016 * License, or (at your option) any later version 0017 */

What I learned

What's next for VIVI

It's done.

Share this project:

Updates