MXM specifies a set of Application Programming Interfaces (APIs) so that MXM Applications executing on an MXM Device can access the standard multimedia technologies contained in its Middleware as MXM Engines. The APIs belong to three classes
- The MXM Orchestrator API, i.e. the API of the special MXM Engine that is capable of creating chains of MXM engines to execute a high-level application call such as Play, as opposed to the typically low-level MXM Engine API calls
- The MXM Engine APIs, i.e. the collection of the individual MXM Engine APIs providing access to a single MPEG technology (e.g. video coding) or to a group of MPEG technologies where this is convenient
- The MXM Service APIs, i.e. the collection of the individual MXM Engine APIs
MPEG Extensible Middleware (MXM) API
MPEG doc#: N11005
Date: October 2009
Author: Christian Timmerer
The MXM API  of each engine have been divided with respect to the targeted functionality into creation (e.g., encode a raw audio track, create an MPEG-7 metadata description), access (e.g., get data from a Digital Item, decode a video), editing (e.g., add an elementary stream to a multiplexed content), and engine-specific APIs (e.g., authorize (license, query) as part of the REL Engine, requestLicense (licenseID, serviceURL) for the License Protocol Engine).
In the following we will focus on two selected APIs – Media Framework Engine and Metadata Engine – and describe them in more detail. For the other APIs the interested reader is referred to .
Media Framework Engine API
The Media Framework Engine API defines a set of APIs related to different media modalities such as image, audio, video, and graphics. At the time of writing of this paper it provides means for creating (i.e., encoding) and accessing (i.e., decoding) of audio, graphics 3D, image and video resources as depicted in Figure 1.
Figure 1. Snapshot of the Media Framework Engine API.
The API is organized in a hierarchical fashion where higher levels provide more generic functions applicable to all types of media (e.g., play, pause, seek) and lower levels provide specific functions only applicable to certain media types (e.g., setVolume for audio or getDecodedImage for image).
Metadata Engine API
This API can be divided into two parts, one being generic to potentially all kinds of metadata standards (including those developed outside of MPEG) and one being specific to MPEG-7 metadata. As for the Media Framework Engine, this API provides means for creating and accessing metadata. For example, the former could be used by authoring software to create metadata associated to actual content whereas the latter could be used for parsing the metadata at the consumption stage.
In particular, the generic metadata creator/parser provides an interface defining the methods to create/parse generic metadata structures in possibly any format depending on the specific implementation of the metadata engine of choice. Similarly, the MPEG-7 creator and parser defines methods for creating and parsing metadata structures compliant to the MPEG-7 standard respectively.
 MPEG Extensible Middleware, http://mxm.wg11.sc29.org/.
 ISO/IEC 23006-2, Information Technology – MPEG extensible middleware (MXM) – Part 2: MXM API, Final Committee Draft, London, UK, June 2009.