Chapter 1. Introduction

This guide is a quick introduction to the OpenML Media Library Software Development Kit (ML). If you are new to ML, you should read this guide and browse the online example programs.

Note: The material in this guide assumes that ML is installed on your workstation, and that you have access to the online ML example programs.

ML Terminology

The following terms are used throughout this document, and some are used in the ML code:



graphics / video 

In ML, these terms are not synonymous: graphics indicates the graphical display used for the user-interface on a computer; video indicates the type of signal sent to a video cassette recorder, or received from a camcorder.

capability tree 

The hierarchy of all ML devices in the system, containing information about each ML device. An application may search a capability tree to find suitable media devices for operations you wish to perform.


The highest level in the capability tree hierarchy. It is the machine on which your application is running. This machine is given the name ML_SYSTEM_LOCALHOST. Each system contains one or more physical or logical devices.

physical device 

A device that corresponds to device-dependent modules in ML. Typically, each device-dependent module supports a set of software transcoders or a single piece of hardware. Examples of devices are audio cards on a PCI bus, DV camcorders on the 1394 bus, or software DV modules. Each device-dependent module may expose a number of logical devices.

logical device 

Jacks, paths, or transcoders.


A logical device that is an interface in/out of the system. Examples of jacks are composite video connectors and microphones. Jacks often, but not necessarily, correspond to a physical connector -- it is possible for a single ML jack to refer to several such connectors. It is also possible for a single physical connector to appear as several logical jacks.


A logical device that provides logical connections between memory and jacks. For example, a video output path transports data from buffers to a video output jack. Paths are logical entities. Depending on the device, it is possible for more than one instance of a path to be open and in use at the same time.


The connections from memory to the transcoder, and from the transcoder to memory.


A logical device that takes data from buffers via an input pipe or pipes, performs an operation on the data, and returns the data to another buffer via an output pipe. Example transcoders are DV compression and JPEG decompression.


Unadjusted system time. UST is a special system clock that runs continuously without adjustment. This clock is used to synchronize media streams.


Media stream count. MSC is a measure of the number of media samples that have passed though a jack. This measure is useful to synchronize media streams.

For More Information

For an in-depth treatment of ML, consult the OpenML Media Library Software Development Kit Programmer's Guide as you experiment with your own programs.