croczilla.com 
 home   zap   svg   xtf   jssh   bits&pieces   blog   personal   
  home > zap > zmk

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.