SlideShare una empresa de Scribd logo
1 de 15
An MXM-based application for
  sharing protected content


               Angelo Difino



      MXM DevDay, London, 2009-06-28
A 'concrete' MXM application
An MXM-based application for sharing protected
 content
     List of technologies
    Mpeg21FileEngine        MediaFrameworkEngine
    DIDEngine               IPMPEngine
    MetadataEngine          SecurityEngine
    RELEngine


First α-release due to the end of July
MXM (c++) idea/architecture
                              MXM       MXM                   MXM
                              app1      app2                  appN
                              MXM Engine APIs


                               MXM       MXM                    MXM
                              Engine1   Engine2                EngineN



                          MXM Engine Factories
     MXM core APIs

   MXM
                                                  share/use
                       MXM
Configuration                                           MXM                MXM
  Schema        uses   core                                              schemas
                                                       dataobj uses
MXM configuration file

<MXMConfiguration //cut// xsi:schemaLocation="urn:org:iso:mpeg:mxm:configuration:schema
mxmConfiguration.xsd">

<MXMParameters>
  <entry key="app.add.resource.path">chillout_eud/target/classes</entry> (not yet used)

    <ComplexParameter>
        <bar:CustomMXMParam xmlns:bar="urn:bar">A complex MXM configuration parameter</
bar:CustomMXMParam>
    </ComplexParameter>
</MXMParameters>

<MediaFrameworkEngine id="1">
   <DynamicLibrary>
        <LibraryPath>//path//to//gst_media_framework_engine.dll</LibraryPath>(.so in linux)
   </DynamicLibrary>
   <ClassName>GSTMXMMediaFrameworkEngine</ClassName> (not yet used)
</MediaFrameworkEngine>
MXM configuration file


<MediaFrameworkEngine id="0">
   <DynamicLibrary>
            <LibraryPath>//path//to//vlc_media_framework_engine.dll</LibraryPath>
   </DynamicLibrary>
   <ClassName>VLCMXMMediaFrameworkEngine</ClassName>
</MediaFrameworkEngine>

<DIDEngine id="0">
    <DynamicLibrary>
        <LibraryPath>//path//to//basic_did_engine.dll</LibraryPath>
    </DynamicLibrary>
    <ClassName>BasicMXMDIDEngine</ClassName>
    <DIDProfileCompliance>urn:mpeg:maf:schema:mediastreaming</DIDProfileCompliance>
</DIDEngine>
From MXM schema to MXM
               dataobject
didl.xsd
didl-msx.xsd
didmodel.xsd
dii.xsd
ipmpdidl.xsd
ipmpinfo.xsd
ipmpinfo-msx.xsd
ipmpmsg.xsd         XSD
mpeg4ipmp.xsd
mpeg7smp.xsd
rel-m1x.xsd
rel-m2x.xsd
rel-m3x.xsd
rel-mx.xsd
rel-r.xsd
rel-sx.xsd
xenc.xsd dsig.xsd
xml.xsd
MXM engine
   MXMEngine::MXMEngine_t enginetype
 typedef enum {          DIPEngine,                LicenseProtocolEngine,   SecurityEngine,
AudioMetadataEngine,     DISEngine,                MediaFrameworkEngine,    VideoMetadataEngine,
MetadataEngine,          DomainEngine,             MPEG21FileEngine,        Graphics3DEngine,
ContentProtocolEngine,   EREngine,                 MVCOEngine,              NOT_DEFINED,
ContentSearchEngine,     ImageMetadataEngine,      OrchestratorEngine,      MXMENGINE_NUM
DIAEngine,               IPMPEngine,               RELEngine,               } MXMEngine_t;
DIDEngine,               IPMPToolProtocolEngine,   RenderingEngine,



   MXMEngine(const string& enginename, const MXMEngine_t& enginetype)
   MXMEngine(int argn, const char *const * argv)


   template < class T > class MXMEngineFactory

                             protect and share your secrets @ ease
BasicDIDEngine: a MXM skeleton engine
 DEFINITION on H
class BasicDIDEngine : public DIDEngine {

 public:
 BasicDIDEngine(int argn, const char *const * argv);
 virtual ~BasicDIDEngine();

  DIParser* getDIParser();
  ....// other MXM DIDEngine api definition
};                                                     IMPLEMENTATION on CPP

class Factory :                                        BasicDIDEngine::BasicDIDEngine
public MXMEngineFactory< BasicDIDEngine >                 (int nparam, const char *const * vparam) :
{ };                                                      DIDEngine("BasicDIDEngine")
                                                       {
MXM_DLL_EXPORT void * factory0( void )                 ....
{                                                      }
return new Factory();
}                                                      //other MXM DIDEngine api implementation




                                 protect and share your secrets @ ease
Supported SO and dependencies
Win32                     XSD CODESYNTHESIS
                            http://www.codesynthesis.com/
  MSVisual C++ compiler

Linux                     APACHE LOG4Cxx
                            http://logging.apache.org/log4cxx/
  G++ compiler

MacOSX                    APACHE XERCES (used by
                           XSD)
  ...
                            http://xerces.apache.org/xerces-c/
Using MXM APIs
MxM* mxm = MxM::getInstance(argc, argv)

MXMEngineContainer* metaEngineContainer =
    mxm->getDefaultEngineContainer(MXMEngine::MetadataEngine);
MXMEngineContainer* didEngineContainer =
    mxm->getDefaultEngineContainer(MXMEngine::DIDEngine);

MetadataEngine* _metaengine= (MetadataEngine*) metaEngineContainer->getEngine();
DIDEngine* _didengine= (DIDEngine*) didEngineContainer->getEngine();

DIParser* di_parser=_didengine->getDIParser();
di_parser->parseDI(dci_url);                     //can be parseDI(MXMObject*)

MXMObject* metadata=0;
di_parser->getContentMetadata(metadata);

MetadataParser* meta_parser= _metaengine->getMetadataParser();
meta_parser->parseMetadataObj(metadata);
std::string title("");
meta_parser->getTitle(title);
Using MXM APIs
....
LicenseParser* licence_parser->parseLicense(license);
GrantParser* first_gp;
list< GrantParser* > l;
if (licence_parser->getGrants( l )) {
     list< GrantParser* >::const_iterator it = l.begin();
     while(it != l.end()) {
         first_gp=*it;
         if (first_gp->containsProtectedResource()) {
              ProtectedResourceParser* protectedresource;
              first_gp->getProtectedResource(protectedresource);
              MXMObject* master_encrypted=0;
              protectedresource->getEncryptedKey(master_encrypted);
              ....
              _mfengine->setIPMPTool(drmtools);
              _mfengine->open(resource_url);
              _mfengine->play();
              ....
              _mfengine->pause();
              ....
              _mfengine->stop();
MXM engine todo
MXM engine parameters
MXM exception
MXM core as singleton
MXM configuration file updated live
MXM loader / adapter (like java side)




                protect and share your secrets @ ease
A test MXM application
An MXM-based application for access protected content
   Integrated with chillout functionalities (for creation)
   Two media frameworks (MF APIs)
            VLC (0.9.9.a) and GSTREAMER (0.10 → 1½ year old!!!)
On win32
   GTK++ (with glib)
   GSTREAMER and VLC (easy to install)
   OPENSSL (for some protection/security aspect)
   SQLite
MXM info
MXM Mailing list
  mxm@lists.uni-klu.ac.at
Website
  http://mxm.wg11.sc29.org/
(my)Personal contacts
  angelo@smartrm.com
  skype: angelo.difino
Thank you for your attention!

           angelo@smartrm.com

       protect and share your secrets @ ease

Más contenido relacionado

La actualidad más candente

Apache con na_2013_updated_2016
Apache con na_2013_updated_2016Apache con na_2013_updated_2016
Apache con na_2013_updated_2016muellerc
 
Multithreaded programming
Multithreaded programmingMultithreaded programming
Multithreaded programmingSonam Sharma
 
Advanced Namespaces and cgroups
Advanced Namespaces and cgroupsAdvanced Namespaces and cgroups
Advanced Namespaces and cgroupsKernel TLV
 
Elastic 101 tutorial - Percona Europe 2018
Elastic 101 tutorial - Percona Europe 2018 Elastic 101 tutorial - Percona Europe 2018
Elastic 101 tutorial - Percona Europe 2018 Antonios Giannopoulos
 
Tópicos - LVS Instalacao Slack11
Tópicos - LVS Instalacao Slack11Tópicos - LVS Instalacao Slack11
Tópicos - LVS Instalacao Slack11Luiz Arthur
 
Modern net bsd kernel module
Modern net bsd kernel moduleModern net bsd kernel module
Modern net bsd kernel moduleMasaru Oki
 
CloudStack and cloud-init
CloudStack and cloud-initCloudStack and cloud-init
CloudStack and cloud-initMarcusS13
 
Mobile Programming - Network Universitas Budi Luhur
Mobile Programming - Network Universitas Budi LuhurMobile Programming - Network Universitas Budi Luhur
Mobile Programming - Network Universitas Budi LuhurRiza Fahmi
 
PHP at Density and Scale (Lone Star PHP 2014)
PHP at Density and Scale (Lone Star PHP 2014)PHP at Density and Scale (Lone Star PHP 2014)
PHP at Density and Scale (Lone Star PHP 2014)David Timothy Strauss
 
Apache con na_2013_updated_2016
Apache con na_2013_updated_2016Apache con na_2013_updated_2016
Apache con na_2013_updated_2016muellerc
 

La actualidad más candente (12)

Apache con na_2013_updated_2016
Apache con na_2013_updated_2016Apache con na_2013_updated_2016
Apache con na_2013_updated_2016
 
Multithreaded programming
Multithreaded programmingMultithreaded programming
Multithreaded programming
 
Advanced Namespaces and cgroups
Advanced Namespaces and cgroupsAdvanced Namespaces and cgroups
Advanced Namespaces and cgroups
 
Elastic 101 tutorial - Percona Europe 2018
Elastic 101 tutorial - Percona Europe 2018 Elastic 101 tutorial - Percona Europe 2018
Elastic 101 tutorial - Percona Europe 2018
 
Tópicos - LVS Instalacao Slack11
Tópicos - LVS Instalacao Slack11Tópicos - LVS Instalacao Slack11
Tópicos - LVS Instalacao Slack11
 
Modern net bsd kernel module
Modern net bsd kernel moduleModern net bsd kernel module
Modern net bsd kernel module
 
CloudStack and cloud-init
CloudStack and cloud-initCloudStack and cloud-init
CloudStack and cloud-init
 
Mobile Programming - Network Universitas Budi Luhur
Mobile Programming - Network Universitas Budi LuhurMobile Programming - Network Universitas Budi Luhur
Mobile Programming - Network Universitas Budi Luhur
 
Oracle on Solaris
Oracle on SolarisOracle on Solaris
Oracle on Solaris
 
PHP at Density and Scale (Lone Star PHP 2014)
PHP at Density and Scale (Lone Star PHP 2014)PHP at Density and Scale (Lone Star PHP 2014)
PHP at Density and Scale (Lone Star PHP 2014)
 
Apache con na_2013_updated_2016
Apache con na_2013_updated_2016Apache con na_2013_updated_2016
Apache con na_2013_updated_2016
 
Intro to Cloudstack
Intro to CloudstackIntro to Cloudstack
Intro to Cloudstack
 

Destacado

La gran cabalgada
La gran cabalgadaLa gran cabalgada
La gran cabalgadaJerevice
 
数学物理漫谈
数学物理漫谈数学物理漫谈
数学物理漫谈Xu jiakon
 
Lucien Engelen presentation at mHealth Academy Dubai 2010
Lucien Engelen presentation at mHealth Academy Dubai 2010Lucien Engelen presentation at mHealth Academy Dubai 2010
Lucien Engelen presentation at mHealth Academy Dubai 20103GDR
 
081015 Keiretsu Forum Barcelona
081015 Keiretsu Forum Barcelona081015 Keiretsu Forum Barcelona
081015 Keiretsu Forum Barcelonajulianvinue
 
Casa bajo tierra
Casa bajo tierraCasa bajo tierra
Casa bajo tierraJerevice
 

Destacado (8)

La gran cabalgada
La gran cabalgadaLa gran cabalgada
La gran cabalgada
 
数学物理漫谈
数学物理漫谈数学物理漫谈
数学物理漫谈
 
Lucien Engelen presentation at mHealth Academy Dubai 2010
Lucien Engelen presentation at mHealth Academy Dubai 2010Lucien Engelen presentation at mHealth Academy Dubai 2010
Lucien Engelen presentation at mHealth Academy Dubai 2010
 
It's About Your Story, Not Your Stuff
It's About Your Story, Not Your StuffIt's About Your Story, Not Your Stuff
It's About Your Story, Not Your Stuff
 
081015 Keiretsu Forum Barcelona
081015 Keiretsu Forum Barcelona081015 Keiretsu Forum Barcelona
081015 Keiretsu Forum Barcelona
 
Lei 2021
Lei 2021Lei 2021
Lei 2021
 
6.4.3comparison2
6.4.3comparison26.4.3comparison2
6.4.3comparison2
 
Casa bajo tierra
Casa bajo tierraCasa bajo tierra
Casa bajo tierra
 

Similar a An MXM-based Application for Sharing Protected Content

Citrix Mfcom Programming For Administrators
Citrix Mfcom Programming For AdministratorsCitrix Mfcom Programming For Administrators
Citrix Mfcom Programming For AdministratorsVishal Ganeriwala
 
Building a cloud management megam.io
Building a cloud management megam.io Building a cloud management megam.io
Building a cloud management megam.io Yeshwanth Kumar
 
Flex 4 components from the firehose
Flex 4 components from the firehoseFlex 4 components from the firehose
Flex 4 components from the firehosemichael.labriola
 
Flex 4 Components
Flex 4 ComponentsFlex 4 Components
Flex 4 Componentspaul51
 
Large Scale Log collection using LogStash & mongoDB
Large Scale Log collection using LogStash & mongoDB Large Scale Log collection using LogStash & mongoDB
Large Scale Log collection using LogStash & mongoDB Gaurav Bhardwaj
 
Ese 2008 RTSC Draft1
Ese 2008 RTSC Draft1Ese 2008 RTSC Draft1
Ese 2008 RTSC Draft1drusso
 
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법GangSeok Lee
 
From SQLAlchemy to Ming with TurboGears2
From SQLAlchemy to Ming with TurboGears2From SQLAlchemy to Ming with TurboGears2
From SQLAlchemy to Ming with TurboGears2Alessandro Molina
 
Safe Clearing of Private Data
Safe Clearing of Private DataSafe Clearing of Private Data
Safe Clearing of Private DataPVS-Studio
 
Borland star team to tfs simple migration
Borland star team to tfs simple migrationBorland star team to tfs simple migration
Borland star team to tfs simple migrationShreesha Rao
 
Use Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDEUse Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDEBenjamin Cabé
 
Divide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.jsDivide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.jsSebastian Springer
 
LCJ2010-KaiGai-Memcached
LCJ2010-KaiGai-MemcachedLCJ2010-KaiGai-Memcached
LCJ2010-KaiGai-MemcachedKohei KaiGai
 
Jafka guide
Jafka guideJafka guide
Jafka guideAdy Liu
 
Code Generation with MDA and xUML
Code Generation with MDA and xUMLCode Generation with MDA and xUML
Code Generation with MDA and xUMLChris Raistrick
 
PMM database open source monitoring solution
PMM database open source monitoring solutionPMM database open source monitoring solution
PMM database open source monitoring solutionLior Altarescu
 
RTI-CODES+ISSS-2012-Submission-1
RTI-CODES+ISSS-2012-Submission-1RTI-CODES+ISSS-2012-Submission-1
RTI-CODES+ISSS-2012-Submission-1Serge Amougou
 

Similar a An MXM-based Application for Sharing Protected Content (20)

Citrix Mfcom Programming For Administrators
Citrix Mfcom Programming For AdministratorsCitrix Mfcom Programming For Administrators
Citrix Mfcom Programming For Administrators
 
Building a cloud management megam.io
Building a cloud management megam.io Building a cloud management megam.io
Building a cloud management megam.io
 
OneTeam Media Server
OneTeam Media ServerOneTeam Media Server
OneTeam Media Server
 
Flex 4 components from the firehose
Flex 4 components from the firehoseFlex 4 components from the firehose
Flex 4 components from the firehose
 
Flex 4 Components
Flex 4 ComponentsFlex 4 Components
Flex 4 Components
 
Large Scale Log collection using LogStash & mongoDB
Large Scale Log collection using LogStash & mongoDB Large Scale Log collection using LogStash & mongoDB
Large Scale Log collection using LogStash & mongoDB
 
Ese 2008 RTSC Draft1
Ese 2008 RTSC Draft1Ese 2008 RTSC Draft1
Ese 2008 RTSC Draft1
 
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법
 
Maf3 - Part 1
Maf3 - Part 1Maf3 - Part 1
Maf3 - Part 1
 
From SQLAlchemy to Ming with TurboGears2
From SQLAlchemy to Ming with TurboGears2From SQLAlchemy to Ming with TurboGears2
From SQLAlchemy to Ming with TurboGears2
 
Safe Clearing of Private Data
Safe Clearing of Private DataSafe Clearing of Private Data
Safe Clearing of Private Data
 
Pcom xpcom
Pcom xpcomPcom xpcom
Pcom xpcom
 
Borland star team to tfs simple migration
Borland star team to tfs simple migrationBorland star team to tfs simple migration
Borland star team to tfs simple migration
 
Use Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDEUse Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDE
 
Divide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.jsDivide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.js
 
LCJ2010-KaiGai-Memcached
LCJ2010-KaiGai-MemcachedLCJ2010-KaiGai-Memcached
LCJ2010-KaiGai-Memcached
 
Jafka guide
Jafka guideJafka guide
Jafka guide
 
Code Generation with MDA and xUML
Code Generation with MDA and xUMLCode Generation with MDA and xUML
Code Generation with MDA and xUML
 
PMM database open source monitoring solution
PMM database open source monitoring solutionPMM database open source monitoring solution
PMM database open source monitoring solution
 
RTI-CODES+ISSS-2012-Submission-1
RTI-CODES+ISSS-2012-Submission-1RTI-CODES+ISSS-2012-Submission-1
RTI-CODES+ISSS-2012-Submission-1
 

Más de Alpen-Adria-Universität

VEED: Video Encoding Energy and CO2 Emissions Dataset for AWS EC2 instances
VEED: Video Encoding Energy and CO2 Emissions Dataset for AWS EC2 instancesVEED: Video Encoding Energy and CO2 Emissions Dataset for AWS EC2 instances
VEED: Video Encoding Energy and CO2 Emissions Dataset for AWS EC2 instancesAlpen-Adria-Universität
 
GREEM: An Open-Source Energy Measurement Tool for Video Processing
GREEM: An Open-Source Energy Measurement Tool for Video ProcessingGREEM: An Open-Source Energy Measurement Tool for Video Processing
GREEM: An Open-Source Energy Measurement Tool for Video ProcessingAlpen-Adria-Universität
 
Optimal Quality and Efficiency in Adaptive Live Streaming with JND-Aware Low ...
Optimal Quality and Efficiency in Adaptive Live Streaming with JND-Aware Low ...Optimal Quality and Efficiency in Adaptive Live Streaming with JND-Aware Low ...
Optimal Quality and Efficiency in Adaptive Live Streaming with JND-Aware Low ...Alpen-Adria-Universität
 
VEEP: Video Encoding Energy and CO₂ Emission Prediction
VEEP: Video Encoding Energy and CO₂ Emission PredictionVEEP: Video Encoding Energy and CO₂ Emission Prediction
VEEP: Video Encoding Energy and CO₂ Emission PredictionAlpen-Adria-Universität
 
Content-adaptive Video Coding for HTTP Adaptive Streaming
Content-adaptive Video Coding for HTTP Adaptive StreamingContent-adaptive Video Coding for HTTP Adaptive Streaming
Content-adaptive Video Coding for HTTP Adaptive StreamingAlpen-Adria-Universität
 
Empowerment of Atypical Viewers via Low-Effort Personalized Modeling of Video...
Empowerment of Atypical Viewers via Low-Effort Personalized Modeling of Video...Empowerment of Atypical Viewers via Low-Effort Personalized Modeling of Video...
Empowerment of Atypical Viewers via Low-Effort Personalized Modeling of Video...Alpen-Adria-Universität
 
Empowerment of Atypical Viewers via Low-Effort Personalized Modeling of Vid...
Empowerment of Atypical Viewers  via Low-Effort Personalized Modeling  of Vid...Empowerment of Atypical Viewers  via Low-Effort Personalized Modeling  of Vid...
Empowerment of Atypical Viewers via Low-Effort Personalized Modeling of Vid...Alpen-Adria-Universität
 
Optimizing Video Streaming for Sustainability and Quality: The Role of Prese...
Optimizing Video Streaming  for Sustainability and Quality: The Role of Prese...Optimizing Video Streaming  for Sustainability and Quality: The Role of Prese...
Optimizing Video Streaming for Sustainability and Quality: The Role of Prese...Alpen-Adria-Universität
 
Energy-Efficient Multi-Codec Bitrate-Ladder Estimation for Adaptive Video Str...
Energy-Efficient Multi-Codec Bitrate-Ladder Estimation for Adaptive Video Str...Energy-Efficient Multi-Codec Bitrate-Ladder Estimation for Adaptive Video Str...
Energy-Efficient Multi-Codec Bitrate-Ladder Estimation for Adaptive Video Str...Alpen-Adria-Universität
 
Machine Learning Based Resource Utilization Prediction in the Computing Conti...
Machine Learning Based Resource Utilization Prediction in the Computing Conti...Machine Learning Based Resource Utilization Prediction in the Computing Conti...
Machine Learning Based Resource Utilization Prediction in the Computing Conti...Alpen-Adria-Universität
 
Evaluation of Quality of Experience of ABR Schemes in Gaming Stream
Evaluation of Quality of Experience of ABR Schemes in Gaming StreamEvaluation of Quality of Experience of ABR Schemes in Gaming Stream
Evaluation of Quality of Experience of ABR Schemes in Gaming StreamAlpen-Adria-Universität
 
Network-Assisted Delivery of Adaptive Video Streaming Services through CDN, S...
Network-Assisted Delivery of Adaptive Video Streaming Services through CDN, S...Network-Assisted Delivery of Adaptive Video Streaming Services through CDN, S...
Network-Assisted Delivery of Adaptive Video Streaming Services through CDN, S...Alpen-Adria-Universität
 
Multi-access Edge Computing for Adaptive Video Streaming
Multi-access Edge Computing for Adaptive Video StreamingMulti-access Edge Computing for Adaptive Video Streaming
Multi-access Edge Computing for Adaptive Video StreamingAlpen-Adria-Universität
 
Policy-Driven Dynamic HTTP Adaptive Streaming Player Environment
Policy-Driven Dynamic HTTP Adaptive Streaming Player EnvironmentPolicy-Driven Dynamic HTTP Adaptive Streaming Player Environment
Policy-Driven Dynamic HTTP Adaptive Streaming Player EnvironmentAlpen-Adria-Universität
 
VE-Match: Video Encoding Matching-based Model for Cloud and Edge Computing In...
VE-Match: Video Encoding Matching-based Model for Cloud and Edge Computing In...VE-Match: Video Encoding Matching-based Model for Cloud and Edge Computing In...
VE-Match: Video Encoding Matching-based Model for Cloud and Edge Computing In...Alpen-Adria-Universität
 
Energy Consumption in Video Streaming: Components, Measurements, and Strategies
Energy Consumption in Video Streaming: Components, Measurements, and StrategiesEnergy Consumption in Video Streaming: Components, Measurements, and Strategies
Energy Consumption in Video Streaming: Components, Measurements, and StrategiesAlpen-Adria-Universität
 
Exploring the Energy Consumption of Video Streaming: Components, Challenges, ...
Exploring the Energy Consumption of Video Streaming: Components, Challenges, ...Exploring the Energy Consumption of Video Streaming: Components, Challenges, ...
Exploring the Energy Consumption of Video Streaming: Components, Challenges, ...Alpen-Adria-Universität
 
Video Coding Enhancements for HTTP Adaptive Streaming Using Machine Learning
Video Coding Enhancements for HTTP Adaptive Streaming Using Machine LearningVideo Coding Enhancements for HTTP Adaptive Streaming Using Machine Learning
Video Coding Enhancements for HTTP Adaptive Streaming Using Machine LearningAlpen-Adria-Universität
 
Optimizing QoE and Latency of Live Video Streaming Using Edge Computing a...
Optimizing  QoE and Latency of  Live Video Streaming Using  Edge Computing  a...Optimizing  QoE and Latency of  Live Video Streaming Using  Edge Computing  a...
Optimizing QoE and Latency of Live Video Streaming Using Edge Computing a...Alpen-Adria-Universität
 
SARENA: SFC-Enabled Architecture for Adaptive Video Streaming Applications
SARENA: SFC-Enabled Architecture for Adaptive Video Streaming ApplicationsSARENA: SFC-Enabled Architecture for Adaptive Video Streaming Applications
SARENA: SFC-Enabled Architecture for Adaptive Video Streaming ApplicationsAlpen-Adria-Universität
 

Más de Alpen-Adria-Universität (20)

VEED: Video Encoding Energy and CO2 Emissions Dataset for AWS EC2 instances
VEED: Video Encoding Energy and CO2 Emissions Dataset for AWS EC2 instancesVEED: Video Encoding Energy and CO2 Emissions Dataset for AWS EC2 instances
VEED: Video Encoding Energy and CO2 Emissions Dataset for AWS EC2 instances
 
GREEM: An Open-Source Energy Measurement Tool for Video Processing
GREEM: An Open-Source Energy Measurement Tool for Video ProcessingGREEM: An Open-Source Energy Measurement Tool for Video Processing
GREEM: An Open-Source Energy Measurement Tool for Video Processing
 
Optimal Quality and Efficiency in Adaptive Live Streaming with JND-Aware Low ...
Optimal Quality and Efficiency in Adaptive Live Streaming with JND-Aware Low ...Optimal Quality and Efficiency in Adaptive Live Streaming with JND-Aware Low ...
Optimal Quality and Efficiency in Adaptive Live Streaming with JND-Aware Low ...
 
VEEP: Video Encoding Energy and CO₂ Emission Prediction
VEEP: Video Encoding Energy and CO₂ Emission PredictionVEEP: Video Encoding Energy and CO₂ Emission Prediction
VEEP: Video Encoding Energy and CO₂ Emission Prediction
 
Content-adaptive Video Coding for HTTP Adaptive Streaming
Content-adaptive Video Coding for HTTP Adaptive StreamingContent-adaptive Video Coding for HTTP Adaptive Streaming
Content-adaptive Video Coding for HTTP Adaptive Streaming
 
Empowerment of Atypical Viewers via Low-Effort Personalized Modeling of Video...
Empowerment of Atypical Viewers via Low-Effort Personalized Modeling of Video...Empowerment of Atypical Viewers via Low-Effort Personalized Modeling of Video...
Empowerment of Atypical Viewers via Low-Effort Personalized Modeling of Video...
 
Empowerment of Atypical Viewers via Low-Effort Personalized Modeling of Vid...
Empowerment of Atypical Viewers  via Low-Effort Personalized Modeling  of Vid...Empowerment of Atypical Viewers  via Low-Effort Personalized Modeling  of Vid...
Empowerment of Atypical Viewers via Low-Effort Personalized Modeling of Vid...
 
Optimizing Video Streaming for Sustainability and Quality: The Role of Prese...
Optimizing Video Streaming  for Sustainability and Quality: The Role of Prese...Optimizing Video Streaming  for Sustainability and Quality: The Role of Prese...
Optimizing Video Streaming for Sustainability and Quality: The Role of Prese...
 
Energy-Efficient Multi-Codec Bitrate-Ladder Estimation for Adaptive Video Str...
Energy-Efficient Multi-Codec Bitrate-Ladder Estimation for Adaptive Video Str...Energy-Efficient Multi-Codec Bitrate-Ladder Estimation for Adaptive Video Str...
Energy-Efficient Multi-Codec Bitrate-Ladder Estimation for Adaptive Video Str...
 
Machine Learning Based Resource Utilization Prediction in the Computing Conti...
Machine Learning Based Resource Utilization Prediction in the Computing Conti...Machine Learning Based Resource Utilization Prediction in the Computing Conti...
Machine Learning Based Resource Utilization Prediction in the Computing Conti...
 
Evaluation of Quality of Experience of ABR Schemes in Gaming Stream
Evaluation of Quality of Experience of ABR Schemes in Gaming StreamEvaluation of Quality of Experience of ABR Schemes in Gaming Stream
Evaluation of Quality of Experience of ABR Schemes in Gaming Stream
 
Network-Assisted Delivery of Adaptive Video Streaming Services through CDN, S...
Network-Assisted Delivery of Adaptive Video Streaming Services through CDN, S...Network-Assisted Delivery of Adaptive Video Streaming Services through CDN, S...
Network-Assisted Delivery of Adaptive Video Streaming Services through CDN, S...
 
Multi-access Edge Computing for Adaptive Video Streaming
Multi-access Edge Computing for Adaptive Video StreamingMulti-access Edge Computing for Adaptive Video Streaming
Multi-access Edge Computing for Adaptive Video Streaming
 
Policy-Driven Dynamic HTTP Adaptive Streaming Player Environment
Policy-Driven Dynamic HTTP Adaptive Streaming Player EnvironmentPolicy-Driven Dynamic HTTP Adaptive Streaming Player Environment
Policy-Driven Dynamic HTTP Adaptive Streaming Player Environment
 
VE-Match: Video Encoding Matching-based Model for Cloud and Edge Computing In...
VE-Match: Video Encoding Matching-based Model for Cloud and Edge Computing In...VE-Match: Video Encoding Matching-based Model for Cloud and Edge Computing In...
VE-Match: Video Encoding Matching-based Model for Cloud and Edge Computing In...
 
Energy Consumption in Video Streaming: Components, Measurements, and Strategies
Energy Consumption in Video Streaming: Components, Measurements, and StrategiesEnergy Consumption in Video Streaming: Components, Measurements, and Strategies
Energy Consumption in Video Streaming: Components, Measurements, and Strategies
 
Exploring the Energy Consumption of Video Streaming: Components, Challenges, ...
Exploring the Energy Consumption of Video Streaming: Components, Challenges, ...Exploring the Energy Consumption of Video Streaming: Components, Challenges, ...
Exploring the Energy Consumption of Video Streaming: Components, Challenges, ...
 
Video Coding Enhancements for HTTP Adaptive Streaming Using Machine Learning
Video Coding Enhancements for HTTP Adaptive Streaming Using Machine LearningVideo Coding Enhancements for HTTP Adaptive Streaming Using Machine Learning
Video Coding Enhancements for HTTP Adaptive Streaming Using Machine Learning
 
Optimizing QoE and Latency of Live Video Streaming Using Edge Computing a...
Optimizing  QoE and Latency of  Live Video Streaming Using  Edge Computing  a...Optimizing  QoE and Latency of  Live Video Streaming Using  Edge Computing  a...
Optimizing QoE and Latency of Live Video Streaming Using Edge Computing a...
 
SARENA: SFC-Enabled Architecture for Adaptive Video Streaming Applications
SARENA: SFC-Enabled Architecture for Adaptive Video Streaming ApplicationsSARENA: SFC-Enabled Architecture for Adaptive Video Streaming Applications
SARENA: SFC-Enabled Architecture for Adaptive Video Streaming Applications
 

Último

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 

Último (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

An MXM-based Application for Sharing Protected Content

  • 1. An MXM-based application for sharing protected content Angelo Difino MXM DevDay, London, 2009-06-28
  • 2. A 'concrete' MXM application An MXM-based application for sharing protected content List of technologies Mpeg21FileEngine MediaFrameworkEngine DIDEngine IPMPEngine MetadataEngine SecurityEngine RELEngine First α-release due to the end of July
  • 3. MXM (c++) idea/architecture MXM MXM MXM app1 app2 appN MXM Engine APIs MXM MXM MXM Engine1 Engine2 EngineN MXM Engine Factories MXM core APIs MXM share/use MXM Configuration MXM MXM Schema uses core schemas dataobj uses
  • 4. MXM configuration file <MXMConfiguration //cut// xsi:schemaLocation="urn:org:iso:mpeg:mxm:configuration:schema mxmConfiguration.xsd"> <MXMParameters> <entry key="app.add.resource.path">chillout_eud/target/classes</entry> (not yet used) <ComplexParameter> <bar:CustomMXMParam xmlns:bar="urn:bar">A complex MXM configuration parameter</ bar:CustomMXMParam> </ComplexParameter> </MXMParameters> <MediaFrameworkEngine id="1"> <DynamicLibrary> <LibraryPath>//path//to//gst_media_framework_engine.dll</LibraryPath>(.so in linux) </DynamicLibrary> <ClassName>GSTMXMMediaFrameworkEngine</ClassName> (not yet used) </MediaFrameworkEngine>
  • 5. MXM configuration file <MediaFrameworkEngine id="0"> <DynamicLibrary> <LibraryPath>//path//to//vlc_media_framework_engine.dll</LibraryPath> </DynamicLibrary> <ClassName>VLCMXMMediaFrameworkEngine</ClassName> </MediaFrameworkEngine> <DIDEngine id="0"> <DynamicLibrary> <LibraryPath>//path//to//basic_did_engine.dll</LibraryPath> </DynamicLibrary> <ClassName>BasicMXMDIDEngine</ClassName> <DIDProfileCompliance>urn:mpeg:maf:schema:mediastreaming</DIDProfileCompliance> </DIDEngine>
  • 6. From MXM schema to MXM dataobject didl.xsd didl-msx.xsd didmodel.xsd dii.xsd ipmpdidl.xsd ipmpinfo.xsd ipmpinfo-msx.xsd ipmpmsg.xsd XSD mpeg4ipmp.xsd mpeg7smp.xsd rel-m1x.xsd rel-m2x.xsd rel-m3x.xsd rel-mx.xsd rel-r.xsd rel-sx.xsd xenc.xsd dsig.xsd xml.xsd
  • 7. MXM engine MXMEngine::MXMEngine_t enginetype typedef enum { DIPEngine, LicenseProtocolEngine, SecurityEngine, AudioMetadataEngine, DISEngine, MediaFrameworkEngine, VideoMetadataEngine, MetadataEngine, DomainEngine, MPEG21FileEngine, Graphics3DEngine, ContentProtocolEngine, EREngine, MVCOEngine, NOT_DEFINED, ContentSearchEngine, ImageMetadataEngine, OrchestratorEngine, MXMENGINE_NUM DIAEngine, IPMPEngine, RELEngine, } MXMEngine_t; DIDEngine, IPMPToolProtocolEngine, RenderingEngine, MXMEngine(const string& enginename, const MXMEngine_t& enginetype) MXMEngine(int argn, const char *const * argv) template < class T > class MXMEngineFactory protect and share your secrets @ ease
  • 8. BasicDIDEngine: a MXM skeleton engine DEFINITION on H class BasicDIDEngine : public DIDEngine { public: BasicDIDEngine(int argn, const char *const * argv); virtual ~BasicDIDEngine(); DIParser* getDIParser(); ....// other MXM DIDEngine api definition }; IMPLEMENTATION on CPP class Factory : BasicDIDEngine::BasicDIDEngine public MXMEngineFactory< BasicDIDEngine > (int nparam, const char *const * vparam) : { }; DIDEngine("BasicDIDEngine") { MXM_DLL_EXPORT void * factory0( void ) .... { } return new Factory(); } //other MXM DIDEngine api implementation protect and share your secrets @ ease
  • 9. Supported SO and dependencies Win32 XSD CODESYNTHESIS http://www.codesynthesis.com/ MSVisual C++ compiler Linux APACHE LOG4Cxx http://logging.apache.org/log4cxx/ G++ compiler MacOSX APACHE XERCES (used by XSD) ... http://xerces.apache.org/xerces-c/
  • 10. Using MXM APIs MxM* mxm = MxM::getInstance(argc, argv) MXMEngineContainer* metaEngineContainer = mxm->getDefaultEngineContainer(MXMEngine::MetadataEngine); MXMEngineContainer* didEngineContainer = mxm->getDefaultEngineContainer(MXMEngine::DIDEngine); MetadataEngine* _metaengine= (MetadataEngine*) metaEngineContainer->getEngine(); DIDEngine* _didengine= (DIDEngine*) didEngineContainer->getEngine(); DIParser* di_parser=_didengine->getDIParser(); di_parser->parseDI(dci_url); //can be parseDI(MXMObject*) MXMObject* metadata=0; di_parser->getContentMetadata(metadata); MetadataParser* meta_parser= _metaengine->getMetadataParser(); meta_parser->parseMetadataObj(metadata); std::string title(""); meta_parser->getTitle(title);
  • 11. Using MXM APIs .... LicenseParser* licence_parser->parseLicense(license); GrantParser* first_gp; list< GrantParser* > l; if (licence_parser->getGrants( l )) { list< GrantParser* >::const_iterator it = l.begin(); while(it != l.end()) { first_gp=*it; if (first_gp->containsProtectedResource()) { ProtectedResourceParser* protectedresource; first_gp->getProtectedResource(protectedresource); MXMObject* master_encrypted=0; protectedresource->getEncryptedKey(master_encrypted); .... _mfengine->setIPMPTool(drmtools); _mfengine->open(resource_url); _mfengine->play(); .... _mfengine->pause(); .... _mfengine->stop();
  • 12. MXM engine todo MXM engine parameters MXM exception MXM core as singleton MXM configuration file updated live MXM loader / adapter (like java side) protect and share your secrets @ ease
  • 13. A test MXM application An MXM-based application for access protected content Integrated with chillout functionalities (for creation) Two media frameworks (MF APIs) VLC (0.9.9.a) and GSTREAMER (0.10 → 1½ year old!!!) On win32 GTK++ (with glib) GSTREAMER and VLC (easy to install) OPENSSL (for some protection/security aspect) SQLite
  • 14. MXM info MXM Mailing list mxm@lists.uni-klu.ac.at Website http://mxm.wg11.sc29.org/ (my)Personal contacts angelo@smartrm.com skype: angelo.difino
  • 15. Thank you for your attention! angelo@smartrm.com protect and share your secrets @ ease