The document discusses the MXM API, which provides a simplified interface for accessing MPEG technologies through wrappers and libraries. The MXM API exposes key functionality through various engine classes, standardizing access to features across MPEG-4, MPEG-7, MPEG-21 and other standards. This reduces 11,000+ pages of MPEG specifications down to a 37 page API specification with around 500 standardized methods. The API aims to simplify integration of MPEG technologies while maintaining control at the upper levels and offering sufficient access points.
1. MXM API
Marius PREDA
Institut TELECOM / ARTEMIS
1st International MPEG Extensible Middleware
Developers Day (MXMDevDay) 2009
30 June, 2009, Queen Mary University London, UK
2. Definition
In computer science, an Application
Programming Interface (API) is an interface
defining the ways by which an application
program may request services from the libraries
and/or operating systems which provide the
services.
In MXM, services are MPEG functionalities and
libraries are wrappers on top of encoders,
decoders, parsers, …
3. media Old, yet good MPEG time …
video codec
audio codec
video
audio
compression functionalities
4. media Nowadays, life is more complex
graphics
primitives
scene
graph
video
audio
s ion n n n
es ip tio tio tio
pr cr te
c ta functionalities
m es o ap
co d pr ad
5. Motivation of providing API
MPEG specifications: huge amount of technology
157 standards in ISO/IEC 14496 (MPEG-4) family
43 standards in ISO/IEC 15938 (MPEG-7) family
33 standards in ISO/IEC 21000 (MPEG-21) family
…
Around 11 000 pages, 1,5 m high when printed
However, majority of people developing MPEG related
applications do not need to know that is inside the boxes, but
only how to use it
6. How MXM prepared the packets?
1. Creating wrapping libraries, called engines
2. Opening the engines at ESSENTIAL points only
3. Documenting the IN/OUT points in another …
MPEG standard: 23006-2 MXM API
- only 37 pages ,
- around 500 methods
7. What is currently accessible through
the APIs?
MPEG-4 :
MediaFrameworkEngine
MPEG-7 :
MetadataEngine Almost all the engines exposes
MPEG-21 :
Digital Item Engine, Digital Item Streaming Engine, Creation and Access methods
Digital Item Adaptation Engine,
MPEG-21 File Engine,
REL Engine,
IPMP Engine,
Event Reporting Engine,
Content Protocol Engine,
License Protocol Engine,
IPMP Tool Protocol Engine,
Content Search Engine,
Security Engine,
MVCO Engine, Domain Engine,
Rendering Engine
Orchestrator :
Digital Item Adaptation Orchestrator Engine
IPMP Orchestrator Engine
REL Orchestrator Engine
Player Orchestrator Engine
8. What is currently accessible through
the APIs?
MPEG-4 :
MediaFrameworkEngine
MPEG-7 :
MetadataEngine Almost all the engines exposes
MPEG-21 :
Digital Item Engine, Digital Item Streaming Engine, Creation and Access methods
Digital Item Adaptation Engine,
MPEG-21 File Engine,
REL Engine,
IPMP Engine,
Event Reporting Engine,
Content Protocol Engine,
License Protocol Engine,
IPMP Tool Protocol Engine,
Content Search Engine,
Security Engine,
MVCO Engine, Domain Engine,
Rendering Engine
Orchestrator :
Digital Item Adaptation Orchestrator Engine
IPMP Orchestrator Engine
REL Orchestrator Engine
Player Orchestrator Engine
9. MediaFrameworkEngine API
Class Type Creation Decoding
Elementary Image Y Y
Streams
Audio Y (light) Y
Video Traditional Y (light) Y
(MPEG-1,
MPEG-2, etc.)
RVC
Muxed content Y Y
Graphics- Scene 2D/layout
related
3D/scene Y Y
graph
Graphic 2D
primitives Graphics
3D Y Y
Graphics
26. Digital Item Adaptation Orchestrator
Engine
Specifies means to adapt a Digital Item or media resource based
on
the description of the content – ContentMetadataEngine;
according to a given context – DIAEngine;
utilizing an actual adaptation engine – MediaFrameworkEngine.
27. Conclusions
MXM API benefits
Simplifies the integration of MPEG technologies in third-parties
applications
Exposes a balanced level of granularity to maintain the control at
upper level while offering enough access points
It is documented in a developer friendly manner (hierarchical
structure of packages, interfaces, classes, methods)