Commands are sent via ioctl()
Status is read via ioctl()
Video data area is set up via mmap()
Capturing can be double-buffered (or triple-buffered or more)
This improves speed and helps avoid blocking to wait for data
videoInput.h
videoInput.cxx - videoInput class for C++
videoInput-py.c - videoInput extension for Python (build as videoInput.so)
grab.py - test program - grabs a sequence of frames