Introduction to the Continuous Media Toolkit


The Continuous Media Toolkit (CMT) is a toolkit for multimedia applications. It is built on top of Tcl/Tk, a scripting language and graphical user interface toolkit, and Tcl-DP, which provides network tools included a remote procedure call package and a name server. CMT is freely distributed and is very portable. It has been compiled and tested on the following platforms:

  • DEC Alpha (Digital Unix 3.x, X11R6)
  • HP 9000/700 (HPUX 9.0x, X11R6)
  • Sun Sparc (SunOS 4.x and Solaris 2.5, X11R6)
  • FreeBSD 2.2.2-Release
  • Linux 1.2.8 or later
  • SGI (Irix 5.3, X11R6)
  • Windows NT

CMT supports several audio and video encoding formats, including Sparc style audio (8-bit mu-law compressed or 16-bit linear), MPEG video, MJPEG video, and H.261 video. It contains support for a number of audio interfaces including the Sparc, Linux, and Irix devices, as well as DEC's AudioFile. It also contains software MPEG, MJPEG, and H.261 decoders as well as the capability to perform hardware assisted decompression using the Sun Parallax, SunVideo, DEC J300, or SGI Cosmo board.

The toolkit is implemented as a collection of objects, each of which handles a specific task, for example, reading MPEG encoded video from a file or decoding and displaying MPEG encoded video. Objects can be easily created and connected to build applications. Aside from objects that read or decode audio and video, a number of other interesting objects are available, including:

  • Objects to support the construction of distributed applications.
  • Objects to transmit and receive data across a TCP/IP network using Cyclic-UDP, a best effort protocol.
  • Objects to transmit and receive data using the Real-time Transport Protocol, the protocol used by the MBONE tools.
  • Objects to filter uncompressed video.

CMT also comes with the CMplayer, a sample CMT application that can be used to play audio and video files locally or from a CMT video file server.

The previous version of CMT was version 3.0 beta 3. We have recently completed a major revision to CMT, which was released as Version 4.0 in February 1998. It is based on Tcl 7.5 and Tk 4.1 (or later) and (unlike CMT 3.0) does not require modifications to the Tcl or Tk core. Rather, all CMT objects are implemented as dynamically loadable packages.

The CMT 4.0 source tree as well as pre compiled binaries for the CMPlayer sample application are available in the pages below:

To learn more about CMT and how to write CMT applications, consult the CMT Documentation, all of which is available on line.

A mailing list is available for CMT related questions. The list is monitored by the CMT developers as well as a number of other people who use CMT. The mailing list is cmt-users@plateau.cs.berkeley.edu. To subscribe, send a message to majordomo@plateau.cs.berkeley.edu with the subject line subscribe cmt-users-list.

CMT was developed by a group of students at the Berkeley Multimedia Research Center, under the direction of Professor Larry Rowe of the Computer Science Department at the University of California at Berkeley.

Major development of CMT at Berkeley was suspended after the release of version 4.0, as Berkeley is putting future development effort into the MASH project. (For more information on the differences between CMT and MASH, and the MASH design goals, please read the paper Toward a Common Infrastructure for Multimedia-Networking Middleware.) We recognize that people, both at Berkeley and around the world, are still using CMT however, so we still accept bug reports and contributed code from elsewhere.


BMRC Publications BIBS