ZMK - The ZAP Media Kit
The ZMK is a media processing framework featuring a "mediagraph" component which runs with its own thread
and event queue and manages a set of media processing nodes and the data connections between them.
Some features include:
- new node classes (codecs, filters, etc) can be implemented as xpcom plugins by implementing the zapIMediaNode interface.
- nodes can be composed to form larger nodes.
- the media graph itself is media-type agnostic. Data packets moved between nodes implement the zapIMediaFrame interface.
- the media graph only handles media dataflow, control protocols are implemented externally.
- the media graph can be dynamically reconfigured at any time (by adding/removing nodes and/or connections).
- both 'push' and 'pull' dataflow. Sinks and sources can be 'active', 'passive' or 'neutral'.
- control interfaces for media nodes (e.g. for changing codec parameters or for UI feedback) are proxied
onto the media thread using the xpcom proxy mechanism.
- built-in media node types include: audioin, audioout, rtp-session,
speex-encoder, speex-decoder, speex-rtp-packetizer,
speex-rtp-depacketizer, buffer, udp-socket, udp-socket-pair.
|