SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

Multithreaded programming
Multithreaded programmingMultithreaded programming
Multithreaded programming
Sonam Sharma
 
Tópicos - LVS Instalacao Slack11
Tópicos - LVS Instalacao Slack11Tópicos - LVS Instalacao Slack11
Tópicos - LVS Instalacao Slack11
Luiz Arthur
 
Modern net bsd kernel module
Modern net bsd kernel moduleModern net bsd kernel module
Modern net bsd kernel module
Masaru Oki
 

Tendances (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
 

En vedette (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
 

Similaire à An MXM-based Application for Sharing Protected Content

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
Flex 4 ComponentsFlex 4 Components
Flex 4 Components
paul51
 
From SQLAlchemy to Ming with TurboGears2
From SQLAlchemy to Ming with TurboGears2From SQLAlchemy to Ming with TurboGears2
From SQLAlchemy to Ming with TurboGears2
Alessandro Molina
 
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
Benjamin Cabé
 
RTI-CODES+ISSS-2012-Submission-1
RTI-CODES+ISSS-2012-Submission-1RTI-CODES+ISSS-2012-Submission-1
RTI-CODES+ISSS-2012-Submission-1
Serge Amougou
 

Similaire à 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
 

Plus de Alpen-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
 
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
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 Stream
Alpen-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 Environment
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 Strategies
Alpen-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
 
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
Alpen-Adria-Universität
 

Plus 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
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 

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