network integrated multimedia middleware
play

Network-Integrated Multimedia Middleware KDE aKademy 2004 Marco - PowerPoint PPT Presentation

Network-Integrated Multimedia Middleware KDE aKademy 2004 Marco Lohse, Michael Repplinger, Philipp Slusallek Computer Graphics Lab, Saarland University, Germany KDE aKademy 2004 - NMM p.1/46 Motivation camera display PDA Multimedia VCR


  1. Network-Integrated Multimedia Middleware KDE aKademy 2004 Marco Lohse, Michael Repplinger, Philipp Slusallek Computer Graphics Lab, Saarland University, Germany KDE aKademy 2004 - NMM – p.1/46

  2. Motivation camera display PDA Multimedia VCR Internet PC Hi-fi equipment Mobile Set-top phone box PC • PC-centric approach (back in 2000, today?) • Stand-alone multimedia-PC • Streaming predefined content from the Internet • Many other multimedia devices ⇒ Unexploited networking capabilities KDE aKademy 2004 - NMM – p.2/46

  3. Motivation camera display PDA ........................................................................ Multimedia VCR Internet PC Hi-fi equipment Mobile Set-top phone box PC ⇒ Network-Integrated Multimedia Middleware (NMM) • GNU/Linux (x86/ARM), LGPL/GPL, C++ • http://www.networkmultimedia.org KDE aKademy 2004 - NMM – p.3/46

  4. NMM • Network-Integrated • Extend cooperation and control to network • Multimedia (for GNU/Linux) • Uniform access to available drivers and libraries • Middleware • Layer between applications and distributed systems Application NMM Operating Operating system system Network KDE aKademy 2004 - NMM – p.4/46

  5. Application Scenarios • Access distributed resources • Distributed transcoding • Watch TV using remote TV receiver • Control remote TV receiver Stationary system Stationary system Processing power Distributed processing power I/O capabilities Distributed TV receiver I/O capabilities KDE aKademy 2004 - NMM – p.5/46

  6. Collaborative Scenarios • Number of users simultaneously enjoys the same (or similar) content using different devices • “Drive-in cinema” • Watch video of DVD on large screen • Synchronized playback on different PDAs Mobile system 1 Stationary system audio track 0 video Mobile system 2 DVD playback audio track 1 KDE aKademy 2004 - NMM – p.6/46

  7. Dynamic Scenarios • User and device mobility • Use capabilities of surrounding environment • Handover of media playback • E.g. use high-fidelity audio output Mobile system Stationary system MP3 playback KDE aKademy 2004 - NMM – p.7/46

  8. Dynamic Scenarios • User and device mobility • Use capabilities of surrounding environment • Handover of media playback • E.g. use high-fidelity audio output Mobile system Stationary system MP3 playback KDE aKademy 2004 - NMM – p.7/46

  9. Beyond Client/Server • Traditional client/server streaming ⇒ Black-box • Locate server? Activate server? Provided functionality? Connection setup? Streamed data format? Control server, e.g. switch the TV channel? Complex application scenarios, e.g. transcode content? Distribute workload? Synchronization? Shared applications? KDE aKademy 2004 - NMM – p.8/46

  10. Beyond Client/Server • Traditional client/server streaming ⇒ Black-box • Locate server? Activate server? Provided functionality? Connection setup? Streamed data format? Control server, e.g. switch the TV channel? Complex application scenarios, e.g. transcode content? Distribute workload? Synchronization? Shared applications? ⇒ It’s not a question of“if”– it’s a question of“how” ⇒ Generally solve challenges within middleware ⇒ Provide suitable abstractions and programming model ⇒ Easy, efficient development of distributed applications KDE aKademy 2004 - NMM – p.8/46

  11. Overview • Motivation • Architecture of NMM • Developing plug-ins for NMM • Basic middleware services • Registry service, Synchronization, GraphBuilder • Distributed multimedia application • helloworld, clic, Multimedia-Box, ... • Advanced Middleware Services • Application sharing, seamless handover • Summary, future work & discussion KDE aKademy 2004 - NMM – p.9/46

  12. Flow Graph • Nodes as smallest processing unit • Jacks to connect nodes • Formats to type connections • Interfaces to control objects • Messages to forward media data or control information Application MPEG Generic Audio Playback Output Input Output Input Read Decode Jack Jack Jack Jack Node Node Node audio/mpeg audio/raw KDE aKademy 2004 - NMM – p.10/46

  13. Flow Graph • Nodes as smallest processing unit • Jacks to connect nodes • Formats to type connections • Interfaces to control objects • Messages to forward media data or control information Application INode INode INode MPEG Generic Audio Playback Output Input Output Input Read Decode Jack Jack Jack Jack Node Node Node audio/mpeg audio/raw KDE aKademy 2004 - NMM – p.10/46

  14. Flow Graph • Nodes as smallest processing unit • Jacks to connect nodes • Formats to type connections • Interfaces to control objects • Messages to forward media data or control information Application INode ISeekable INode INode MPEG Generic Audio Playback Output Input Output Input Read Decode Jack Jack Jack Jack Node Node Node audio/mpeg audio/raw KDE aKademy 2004 - NMM – p.10/46

  15. Flow Graph • Nodes as smallest processing unit • Jacks to connect nodes • Formats to type connections • Interfaces to control objects • Messages to forward media data or control information Application INode INode INode out-of-band E E E downstream MPEG Generic Audio Playback B B C Read Decode C B B Node Node Node upstream KDE aKademy 2004 - NMM – p.10/46

  16. Messaging System • Message • Header information such as timestamps • Buffer • Multimedia data • Efficiently managed by buffer pools • Composite event (CEvent) • Stores list of events • Event • Key, list of values, return value, exception • Represents single method call for dispatcher • Both, out-of-band and instream interaction KDE aKademy 2004 - NMM – p.11/46

  17. Flow Graph • NMM flow graphs are distributed • Local and remote nodes can be controlled and integrated into a common flow graph • Transparent for developers, no overhead for all co-located parts of flow graph Application INode INode INode MPEG Generic Audio Playback Output Input Output Input Read Decode Jack Jack Jack Jack Node Node Node KDE aKademy 2004 - NMM – p.12/46

  18. Flow Graph • NMM flow graphs are distributed • Local and remote nodes can be controlled and integrated into a common flow graph • Transparent for developers, no overhead for all co-located parts of flow graph Application INode INode INode MPEG Generic Audio Playback Output Input Output Input Read Decode Jack Jack Jack Jack Node Node Node KDE aKademy 2004 - NMM – p.12/46

  19. Interfaces • NMM Interface Definition Language (NMM IDL) • Similar to CORBA IDL • Interface class and implementation skeleton • Supports inheritance, exceptions, arbitrary data types, state machine, ... • Both, out-of-band and instream interaction KDE aKademy 2004 - NMM – p.13/46

  20. Interfaces IFileHandler.idl module NMM { interface IFileHandler { void setFilename(in string name); Result endTrack() instream; }; } Code generation IFileHandler IFileHandlerImpl +setFilename(const string&): void +setFilename(const string&): void +endTrack(): Result +endTrack(): Result +create_endTrack(): Event* ConcretePluginNode +setFilename(const string&): void +endTrack(): Result KDE aKademy 2004 - NMM – p.14/46

  21. Nodes • Different types of nodes & generic base classes Mux Source Mux Demux Sink Filter / Demux Converter Node Node Node Node Node Node • State machine controls life-cycle init(); initOutput(); activate(); start(); Constructor(); doInit(); doInitOutput(); doActivate(); doStart(); OUTPUT ACTIVATED STARTED CONSTRUCTED INITIALIZED INITIALIZED deinit(); deinitOutput(); deactivate(); stop(); doDeinit(); doDeinitOutput(); doDectivate(); doStop(); KDE aKademy 2004 - NMM – p.15/46

  22. 60+ Plug-ins • Source • CDDA, DVD/menus, WinTV PVR, KFIR, DVB, Firewire, VISCA cameras, audio devices, WAV, AVI • Encoder/decoder/converter/filter • MPEG audio, MPEG video, DivX, Ogg/Vorbis, SPU, PNG, JPEG, RTJPEG • Color space, video scaler, on-screen menus, deinterlacer • Multiplexer/demultiplexer • AVI, MPEG, OGM • Sink • Video output via X or OpenGL, audio devices, WAV, AVI KDE aKademy 2004 - NMM – p.16/46

  23. Communication Channels Application B Buffer C Composite event E Event Interface Communication Network E E Channel Communication Channel C B B Output Input Node Jack Jack B B C KDE aKademy 2004 - NMM – p.17/46

  24. Communication Channels • Serialization and transport of objects • E.g. Buffers, composite events, events • Scalable transparency • Automatic setup vs. manual configuration • Serialization strategies • Magic number, XML, ... • Transport strategies • Pointer forwarding, TCP, UDP, RTP, ... • Local optimization • Pointer forwarding or elimination of communication channel KDE aKademy 2004 - NMM – p.18/46

  25. Developing Plug-ins • Specification • Supported functionality? Features? • Granularity and base classes • How many nodes? What kind of node? • Implementation of (some) state transitions • doInit() : generally supported formats • doInitOutput() : currently supported formats • Definition and implementation of interfaces • Out-of-band and instream interaction • Implementation of processBuffer() • Register node with registry service KDE aKademy 2004 - NMM – p.19/46

Recommend


More recommend