An MXM-based Application for Sharing Protected Content

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    An MXM-based Application for Sharing Protected Content - Presentation Transcript

    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
    SlideShare Zeitgeist 2009

    + Klagenfurt UniversityKlagenfurt University Nominate

    custom

    191 views, 0 favs, 1 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 191
      • 151 on SlideShare
      • 40 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 2
    Most viewed embeds
    • 40 views on http://mxm.wg11.sc29.org

    more

    All embeds
    • 40 views on http://mxm.wg11.sc29.org

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories