The MPEG Extensible Middleware API

Post on 08-Jul-2015

396 views 0 download

Tags:

Transcript of The MPEG Extensible Middleware API

MXM API

Marius PREDAInstitut TELECOM / ARTEMIS

1st International MPEG Extensible MiddlewareDevelopers Day (MXMDevDay) 2009

30 June, 2009, Queen Mary University London, UK

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, …

functionalities

media

audio codec

video codec

compression

audio

video

Old, yet good MPEG time …

media

compre

ssion

audio

video

Nowadays, life is more complex

scene graph

graphics primitives

functionalities

descrip

tion

protecti

on

adaptation

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

How MXM prepared the packets?

3. Documenting the IN/OUT points in another … MPEG standard: 23006-2 MXM API

- only 37 pages , - around 500 methods

1. Creating wrapping libraries, called engines

2. Opening the engines at ESSENTIAL points only

What is currently accessible through the APIs?

MPEG-4 : MediaFrameworkEngine

MPEG-7 : MetadataEngine

MPEG-21 : Digital Item Engine, Digital Item Streaming Engine, 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

Almost all the engines exposes Creation and Access methods

What is currently accessible through the APIs?

MPEG-4 : MediaFrameworkEngine

MPEG-7 : MetadataEngine

MPEG-21 : Digital Item Engine, Digital Item Streaming Engine, 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

Almost all the engines exposes Creation and Access methods

MediaFrameworkEngine API

YY3D Graphics

2D Graphics

Graphic primitives

YY3D/scene graph

2D/layoutSceneGraphics-related

YYMuxed content

RVC

YY (light)Traditional (MPEG-1, MPEG-2, etc.)

Video

YY (light)Audio

YYImageElementary Streams

DecodingCreationTypeClass

MediaFrameworkEngine API

Organized per functionality and per media

MediaFrameworkEngine API

MediaFrameworkEngine API

MediaFrameworkEngine API

MediaFrameworkEngine API

MediaFrameworkEngine API

MediaFrameworkEngine API

MediaFrameworkEngine API

MediaFrameworkEngine API

MediaFrameworkEngine API

MediaFrameworkEngine API

MediaFrameworkEngine API

MetadataEngine API

Organized in three packages

MetadataEngine API

MetadataEngine API

MPEG-21FileEngine API

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.

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)