![Page 1: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/1.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
Coherence
UPnP/DLNAframework
CELF Europe 2007
November 3rd, 2007 – Frank Scholz
![Page 2: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/2.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
Intro (1)
a framework to simplify the interaction with UPnP/DLNA devices
be aware that UPnP is not only about punching holes into firewalls
![Page 3: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/3.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
Intro (2)
one division of UPnP is UPnP A/V
it is about storing media on one device and playback on someother device
control who is playing what with a third device
without configuration by the user!
![Page 4: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/4.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
Intro (3)
stream
stream
stream
![Page 5: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/5.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
Intro (4)
who wants to storemedia in directory trees?
![Page 6: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/6.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
Intro (5)
stream
store
control?
stream
stream
![Page 7: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/7.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
UPnP – what is it (1/3)
some say it is a developers nightmare
a wierd mixture of bent specs and protocols
Universal Plug and Play
![Page 8: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/8.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
specs and protocols
XML
ARPDHCP
GENA
SSDP
HTTPHTML
SOAPHTTPU
HTTPMU
![Page 9: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/9.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
UPnP – what is it (2/3)
BUT...
![Page 10: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/10.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
it is THE standard for CE devices to communicate on a network
UPnP – what is it (3/3)
it is all about interoperability
between devices of different vendors!
![Page 11: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/11.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
created by Microsoft
UPnP – history
adopted end of the '90s by the BIG players in CE
and immediatelly a big success
- on the paper
![Page 12: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/12.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
another specification
DLNA
refines the UPnP ones
defines a minimal subset
on top of UPnP
introduces detailed media format description and content transcoding
Digital Living Network Alliance
![Page 13: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/13.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
composed of six parts
UPnP – a quick overview (1/2)
Addressing Discovery Description Control Eventing Presentation
![Page 14: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/14.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
actually a set of specifications
UPnP – a quick overview (2/2)
Networking
Audio/Video
Home Automation Printer and Scanner
Internet Gateway Device WLAN Access Point
MediaServer and MediaRenderer ControlPoint
![Page 15: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/15.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
MediaServer
UPnP A/V - devices
ControlPoint
MediaRenderer
stores and organizes media does recording
displays images plays back audio and video
interconnects MediaServer and -Renderer provides information about content controls and provides status
![Page 16: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/16.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
media sharing
UPnP A/V - capabilities
media exchange
playback and controlling
recording
organizing
![Page 17: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/17.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
a framework to hide the UPnP/DLNA related tasks from the application
Coherence (1/6)
allows server and client creation
acts as a daemon or can be embedded
exposes local and discovered devices/services via D-Bus (maybe Avahi too)
provides a D-Bus interface to create UPnP devices (WiP)
written in Python
![Page 18: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/18.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
core is pure Python
Coherence (2/6)
works on „normal hw“, STBs, Nokia Tablets, AVR32,...
port by copy
anything that provides a recent Python (>2.4)
licenced under MIT
![Page 19: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/19.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
UPnP v1 and v2
Coherence (3/6)
works with „old“ UPnP devices, with special ones like the X-Box and with DLNA devices, e.g. PS3
DLNA 1.5
![Page 20: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/20.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
Architecture
![Page 21: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/21.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
Coherence (4/6)
has its „own“ device backends:
filesystem MediaServer
db MediaServer
Flickr MediaServer
GStreamer MediaRenderer
Axis Cam Proxy
...
![Page 22: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/22.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
Coherence (5/6)
and plugins for:
Elisa
Rhythmbox
Dreambox STB (Enigma)
Buzztard
...
![Page 23: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/23.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
Coherence (6/6)
side projects:
Compère
TestSuite
DeviceSpy
presentation controller
FritzBox phonebook
![Page 24: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/24.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
Code
1 BUS_NAME = 'org.Coherence'2 OBJECT_PATH = '/org/Coherence'34 class CoherenceDBusClient(object):56 def __init__(self):7 self.bus = dbus.SessionBus()8 self.coherence = self.bus.get_object(BUS_NAME,OBJECT_PATH)910 self.coherence.get_devices(dbus_interface=BUS_NAME,11 reply_handler = self.handle_devices_reply, error_handler = handle_error)1213 self.coherence.connect_to_signal('UPnP_ControlPoint_MediaServer_detected',14 ms_detected, dbus_interface=BUS_NAME)15 self.coherence.connect_to_signal('UPnP_ControlPoint_MediaServer_removed',16 ms_removed, dbus_interface=BUS_NAME)1718 def handle_devices_reply(self,devices):1920 def reply(r):21 if r[1] == 'Coherence Test Content':22 for service in r[3]:23 if service.split('/')[-1] == 'ContentDirectory':24 s = self.bus.get_object(BUS_NAME+'.service',service)25 s.browse({'object_id':'0'}, reply_handler = browse_reply,26 error_handler = handle_error)2728 for device in devices:29 d = self.bus.get_object(BUS_NAME+'.device',device)30 d.get_info(reply_handler = reply, error_handler = handle_error)
DBus MediaServer client in ~ 30 lines
![Page 25: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/25.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
building UPnP enabled devices seems to be a hard job
TestSuite (1/2)
tools to test and to validate UPnP methods are available as part of the Intel UPnP kit, but only for Windows
some issues only show up during interaction with another device
created by Michael Weinrich as part of his Master Thesis
![Page 26: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/26.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
TestSuite (2/2)
Coherence can simulate any devices, even broken ones
creates complex scenarios
scripting on board
![Page 27: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/27.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
Outlook
core code base is feature complete
documentation and cleanup phase
better DLNA compliance
media transcoding with Gstreamer pipelines Q1/08
WAN tunneling and security addons
version 1.0 planned 31.12.2007
more UPnP devices
![Page 28: Coherence - eLinux.org · 2016. 7. 6. · Coherence/CELF-E 2007 v1.1 - 20071101/fs Intro (2) one division of UPnP is UPnP A/V it is about storing media on one device and playback](https://reader035.vdocuments.site/reader035/viewer/2022071106/5fe0570b3777f51550749dfd/html5/thumbnails/28.jpg)
Coherence/CELF-E 2007 v1.1 - 20071101/fs
Thank YOU!
Questions?
https://coherence.beebits.net
irc://irc.freenode.net/#coherence
The End