See the Sourceforge project page.
Videod is a package for transparent video acquisition that is for you if you write software in C++ for processing and/or displaying video, and in particular live streams.
It provides the following services:
Videod currently runs under Linux only, but a MacOS X port is planned, and ports of most of the functionality to other POSIX- or BSD-style operating systems should be straightforward.
Videod runs as a process that reads frames from a (backend) source and writes them to frame buffers allocated in shared memory, where (front-end) clients can access them. A client can lock a frame buffer and unlock it again when it is done processing it. If no unlocked frame buffer is available, frames are lost.
Videod aims for low latency and low computational overhead.
Videod currently provides the following backends (it should be relatively easy to add additional backends):
With the exception of the movie file backend, videod does not take any user interaction and typically runs in the background, which motivated its name (video daemon).
Client programs instantiate a single class provided by the Videod package. This class provides an easy-to-use client API. Its principal method retrieves a pointer to the buffer containing the next video frame.
Videod operates in one of two basic modes of operation:
Currently, Videod provides a single video stream. Multiple streams can be processed by launching multiple instances of videod. However, a multi-stream enhancement for unified processing of multiple synchronized streams is planned.
The Video Package is licensed under the CeCILL-C license. Other licensing arrangements may be possible; contact the project administrator for inquiries.
CeCILL-C is similar to the GNU LGPL but is written on the basis of French law. CeCILL-C is explicitly compatible with the CeCILL license, which in turn is explicitly compatible with the GNU GPL. See CeCILL and the FSF for more information.