Video in Linux

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

Code

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