Title: Il problema /1
1An MXM-based application for sharing protected
content Angelo Difino
MXM DevDay, London, 2009-06-28
2A 'concrete' MXM application
- An MXM-based application for sharing protected
content - List of technologies
- First a-release due to the end of July
3(No Transcript)
4MXM configuration file
- ltMXMConfiguration //cut// xsischemaLocation"urn
orgisompegmxmconfigurationschema
mxmConfiguration.xsd"gt -
- ltMXMParametersgt
- ltentry key"app.add.resource.path"gtchillout_eud/t
arget/classeslt/entrygt (not yet used) - ltComplexParametergt
- ltbarCustomMXMParam xmlnsbar"urnbar"gtA
complex MXM configuration parameterlt/barCustomMXM
Paramgt - lt/ComplexParametergt
- lt/MXMParametersgt
- ltMediaFrameworkEngine id"1"gt
- ltDynamicLibrarygt
- ltLibraryPathgt//path//to//gst_media_framework_eng
ine.dlllt/LibraryPathgt(.so in linux) - lt/DynamicLibrarygt
- ltClassNamegtGSTMXMMediaFrameworkEnginelt/ClassNamegt
(not yet used) - lt/MediaFrameworkEnginegt
5MXM configuration file
- ltMediaFrameworkEngine id"0"gt
- ltDynamicLibrarygt
- ltLibraryPathgt//path//to//vlc_media_framework_en
gine.dlllt/LibraryPathgt - lt/DynamicLibrarygt
- ltClassNamegtVLCMXMMediaFrameworkEnginelt/ClassNamegt
- lt/MediaFrameworkEnginegt
- ltDIDEngine id"0"gt
- ltDynamicLibrarygt
- ltLibraryPathgt//path//to//basic_did_engine.dlllt/L
ibraryPathgt - lt/DynamicLibrarygt
- ltClassNamegtBasicMXMDIDEnginelt/ClassNamegt
- ltDIDProfileCompliancegturnmpegmafschemamediast
reaminglt/DIDProfileCompliancegt - lt/DIDEnginegt
6From MXM schema to MXM dataobject
- didl.xsd
- didl-msx.xsd
- didmodel.xsd
- dii.xsd
- ipmpdidl.xsd
- ipmpinfo.xsd
- ipmpinfo-msx.xsd
- ipmpmsg.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
XSD
7MXM engine
- MXMEngineMXMEngine_t enginetype
- MXMEngine(const string enginename, const
MXMEngine_t enginetype) - MXMEngine(int argn, const char const argv)
- template lt class T gt class MXMEngineFactory
protect and share your secrets _at_ ease
8BasicDIDEngine 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 clas
s Factory public MXMEngineFactorylt
BasicDIDEngine gt MXM_DLL_EXPORT void
factory0( void ) return new Factory()
IMPLEMENTATION on CPP BasicDIDEngineBasicDIDEng
ine (int nparam, const char const vparam)
DIDEngine("BasicDIDEngine") .... /
/other MXM DIDEngine api implementation
protect and share your secrets _at_ ease
9Supported SO and dependencies
- XSD CODESYNTHESIS
- http//www.codesynthesis.com/
- APACHE LOG4Cxx
- http//logging.apache.org/log4cxx/
- APACHE XERCES (used by XSD)
- http//xerces.apache.org/xerces-c/
- Win32
- MSVisual C compiler
- Linux
- G compiler
- MacOSX
- ...
10Using MXM APIs
- MxM mxm MxMgetInstance(argc, argv)
- MXMEngineContainer metaEngineContainer
- mxm-gtgetDefaultEngineContainer(MXMEngin
eMetadataEngine) - MXMEngineContainer didEngineContainer
- mxm-gtgetDefaultEngineContainer(MXMEngin
eDIDEngine) - MetadataEngine _metaengine (MetadataEngine)
metaEngineContainer-gtgetEngine() - DIDEngine _didengine (DIDEngine)
didEngineContainer-gtgetEngine() - DIParser di_parser_didengine-gtgetDIParser()
- di_parser-gtparseDI(dci_url) //can be
parseDI(MXMObject) - MXMObject metadata0
- di_parser-gtgetContentMetadata(metadata)
- MetadataParser meta_parser _metaengine-gtgetMeta
dataParser() - meta_parser-gtparseMetadataObj(metadata)
- stdstring title("")
11Using MXM APIs
- ....
- LicenseParser licence_parser-gtparseLicense(licens
e) - GrantParser first_gp
- listlt GrantParser gt l
- if (licence_parser-gtgetGrants( l ))
- listlt GrantParser gtconst_iterator it
l.begin() - while(it ! l.end())
- first_gpit
- if (first_gp-gtcontainsProtectedResource(
)) - ProtectedResourceParser
protectedresource - first_gp-gtgetProtectedResource(prot
ectedresource) - MXMObject master_encrypted0
- protectedresource-gtgetEncryptedKey(
master_encrypted) - ....
- _mfengine-gtsetIPMPTool(drmtools)
- _mfengine-gtopen(resource_url)
- _mfengine-gtplay()
- ....
- _mfengine-gtpause()
12MXM 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 _at_ ease
13A 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
14MXM info
- MXM Mailing list
- mxm_at_lists.uni-klu.ac.at
- Website
- http//mxm.wg11.sc29.org/
- (my)Personal contacts
- angelo_at_smartrm.com
- skype angelo.difino
15Thank you for your attention!
angelo_at_smartrm.com
protect and share your secrets _at_ ease