Pure Data Packet
Introduction
PDP is an extension library for
Pure
Data,
aimed at providing video and other media processing fuctionality.
That's still it's main purpose, but as of version 0.13, there is more.
PDP turned into a tool for writing PDP. See the section on
Packet Forth.
PDP runs on Linux and OSX. The OSX version depends on Fink.
PDP's focus is on images and video, but there is no reason it
should stay like that. There is support for matrix processing,
1D and 2D binary cellular automata, opengl rendering (like Gem),
scheme scripting (guile), ascii packets, bit grids, ...
For more image processing objects, streaming objects and a collection
of very useful additions to the bare bones PDP functionality, have a look
at Yves Degoyon's PiDiP library.
Since version 0.13.x, which is a merger between stable (0.12.x) and
packet forth, PDP has been split up into 3 parts:
libtile - A lowlevel library for platform specific (integer, mmx, altivec)
image processing operations and cache optimizations.
libpdp - The packet managing library + pf scripting language.
pdp - This is the stable pdp 0.12.x with support for packet forth.
PDP for Pure Data
This is considered to be the stable part of pdp. It has been stable since 0.12.x
It has it's bugs & drawbacks & oversimplifications but will mostly stay
like it is.
It is optimized for intel/mmx and uses a 16bit signed yuv format ideal for real
time video processing, mixing, blending and feedback. The pf layer is accessible
from pd/pdp. The result of this is that you can write pdp objects in pf, or directly
map pf operations to pdp objects.
A 'getting started' documentation for pd/pdp/pidip is being worked on.
Until then you can have a look at the 'pdp' subdirectory in pd's 'Pure Documentation'.
Most objects are documented with pd style help patches accessible by right clicking
on an object. The place to send questions is the pd mailing list. Bugreports can
be sent to the pd list or me: pdp TA zzz TOD kotnet TOD org
.
Packet Forth
The libpdp library is a C support library for media processing. It implements
a mime-like media type system (packets), type conversion and packet operations,
interface logic to connect pf to other applications, and other things you might
need to write small 'scratch' media applications.
All operations are implemented as extensions to a forth-like glue language
called Packet Forth. For more information on this see the documentation
in the libpdp distribution, or the mailing list archives.
CVS
The latest stable pdp release is 0.12.4.
Because 0.13.x is still in a flux, the preferred way of accessing the code is CVS.
You can access the modules in this way:
export CVSROOT=:pserver:anonymous@zwizwa.fartit.com:/usr/local/cvsroot
cvs login
cvs co libtile
cvs co libpdp
cvs co pdp
To update, simply cd
to each of the 3 directories, and type cvs update -d
.
When extracting from cvs, you need to run the ./bootstrap
script to
create the configure scripts and build and install the packages in the order above.
In order to compile pdp with libpdp (pf) support, you need to add a
--enable-pf
option when invoking pdp's configure script.
Links
Pure Data at IEM
PiDiP Is Definitely In Pieces
al-Jwarizmi
PidipVJ
Videoflow / Cruzados BGN
Eth0
RRADical
Veejay / SendVIMS
FreeJ
EffecTV