== Introduction == During the last couple of years we have been observing a blooming development in the field of realtime video software for the GNU/Linux platform. An increasing number of artists and other users are exploring the possibilities of several unique software packages for video editing, mixing and effect processing. The question arises here how we (the developers) balance the growing number of features against complexity, (re)usability and manageability of larger scale software design. As users, we choose our applications because their features fit our purposes , as developers we serve the needs of the users who want an increasing number of features added to our applications while we should focus on flexible core engines and program frameworks. An elegant solution to this problem is to provide the Free Software community with a flexible architecture that allows a shared pool of video plugins. This brings a number of benefits: - we can give designers of plugins the opportunity to develop their (video) processing algorithms without the distraction of resolving interface problems; - we can share a set of unique plugins among a great number of programs; - we can give the user the opportunity to control at least some aspects of the features they want. LiViDO design is based upon extensive research that has already gone into applications such as PD/PDP , FreeJ, EffecTV , Veejay and other video software applications. The LiViDO architects will provide a lightweight, flexible API based upon these established technologies. Currently, they are in the process of creating a plug-in architecture useful for video editing -mixing, and modular effect processing. The API will deliberately be kept short and simple; to achieve compatibility with a wide range of promising GNU/Linux video software packages it is required to find the greatest common divisor in their logical behaviour. The API attempts to give programmers the ability to write simple plugin video processors in C/C++ and link them dynamically with a range of software packages (called hosts). It should be possible for any host and any plugin to communicate through this interface. Plugins will reside in shared object files (*.so in GNU/Linux), suitable for dynamic linking by dlopen() and family. The file will provide a number of plugin types that can be used to instantiate actual plugins so they can be connected to perform these tasks. Links to user groups and software supporting the LiViDO specification: * http://www.piksel.no * http://freej.dyne.org * http://zwizwa.fartit.com/pd/pdp/overview.html * http://veejay.sourceforge.net * http://lives.sourceforge.net * http://cvs.cinelerra.org/