:::_videoIO_::: for PD ====================== General video IO framework for Pure Data. This framework should provide a general video input and output system (reading/writing various files and from/to devices) for Pure Data. The interface is platform independent and the needed libraries are checked and loaded at runtime, so the host application (e.g. Gem, Gridflow, PDP) has no compile time dependency on all those video libraries. At the moment only the interface to Gem is implemented and consists of the following objects: pix_file_read, pix_file_write and pix_device_read. They use the gstreamer plugins for all these opterations, but alternative libraries, especially on Windows and OSX, should be added in future. What they can do ATM: pix_file_read: reading audio and video from all formats gstreamer support (quite a lot); reading from dvd; http, mms, udp,... streams; pix_file_write: writes in some codecs to disk, also streams over udp; pix_device_read: can read from camera and DV devices; This project was part of the Google Summer of Code program 2007. License ======= See file GnuGPL.LICENSE in this directory. Installation / Compilation ========================== See the file INSTALL. Dependencies ============ The core -------- PD >= 0.40 GEM >= Gem 0.91 from 22.1.2009 The Gstreamer plugins --------------------- Gstreamer >= 0.10.13 with development package Gstreamer Base Plugins >= 0.10.13 Gstreamer Good Plugins >= 0.10.6 Gstreamer Bad Plugins >= 0.10.5 - You will need recent version with appsrc and appsink elements. Gstreamer Ugly Plugins >= 0.10.6 - You will only need the ugly plugins only if you want to play DVDs. Gstreamer FFmpeg Plugins >= 0.10.2 Dependencies of Gstreamer ------------------------- libglib2.0 with development package libxml2 with development package Writing new plugins =================== If you want to write a new plugin you can simply derive from the base classes (i.e FileRead, FileWrite and DeviceRead). Additionally a registerPlugin(VIOKernel &) method, which registers the plugin to the kernel, is required. For more information look at an existing plugin (e.g. FileReadGst) to see how it works. One also has to add a registerPlugin("YourPluginName") call in the method VIOKernel::loadPlugins() of the kernel. Then it will try to load the plugin at startup. Known Bugs ========== See file BUGS. Authors ======= Georg Holzmann, grh _at_ mur _dot_ at Thomas Holzmann, holzi1 _at_ gmx _dot_ at
Forked from
Jonathan Wilkes / purr-data
4291 commits behind the upstream repository.