CVD 0.8
CVD Documentation


This C++ library is designed to be easy to use and portable for fast video saving, loading and display. It supports OpenGL and X Windows. It is released under the LGPL License.






LibCVD will compile on any reasonable unixy environment, with a reasonable C++ compiler, with TR1 and GNU Make. Additionally, libCVD supports both normal and cross compilers. It is known to work on:

-Well tested (current):

-Has worked on (current status unknown):


The normal system works:

    make install

libCVD fully supports parallel builds (make -j48 for instance).

Library bugs/issues

There are a few known library bugs which prevent the libraries working with libCVD

Compiler bugs

There are a few known compiler bugs which affect libCVD on various platforms.

OSX Compilation notes

To build libCVD in 32 bit mode, use the configure_osx_32bit script instead of directly calling the configure script.


An xcode project is provided in the build directory


For Win32 systems, the build directory contains project files for different versions of Visual Studio. Currently the vc2008 solutions are supported and should work out of the box.

libCVD requires the Visual Studio feature pack for TR1 support.

There are several projects which can be compiled:

In order to avoid the need to set up a large number of include paths, all libCVD projects assume the existence of three environment variables describing the location of header, library and binary files (for DLLs).

To use this feature, make a directory tree containing (for example):

Then set up three environment variables (e.g. using rapidee) to be the following:

libCVD will then find all headers and libraries in that directory tree. LibCVD also includes the file:

This will copy the relevant files into that tree.

libCVD compiles to static libraries for simpler linking and to avoid the _dllexport/_dllimport statements throughout the code.

Configuration of features is manual through a default config file in build/vs2008/config-*.h. Edit this file to change your configuration, for example to support other image formats such as PNG. Alternatively, new configurations can be generated using the file:

from any unix-like environment (including MINGW and Cygwin).