UPnPNotes

Erland Isaksson edited this page Dec 31, 2015 · 1 revision

This page is a bunch of notes taken during inquiry about upnp/dlna technologies

Introduction

The openness of SMD was discussed on the mailing list. SMD is primary designed for the SqueezeBoxes universe, but it seems that this universe could be broaden. As it was discussed on the mailing-list, technologies like UPnP/DLNA could be somehow interesting for SMD.

It was decided on the mailing list that today (20100825), openness isn't a short term objectives for SMD, but could possibly remain a future goal. To prevent the risk of feature creep (and never ending talk on the list)

As of today (20100825), at very early stages of the project, it was decided that openness seems to be an interesting long term goal but that it should be totally out of scope for first versions.

This page summarize some information about this technology for a possible future use

UPnP Technology

UPnp is a device protocol designed for auto discovery and zero configuration (for more exact definition, there's wikipedia:

The UPnP architecture allows device-to-device networking of personal computers, networked home appliances, consumer electronics devices and wireless devices. It is a distributed, open architecture protocol based on established standards such as the Internet Protocol Suite (TCP/IP), HTTP, XML, and SOAP.

UPnP AV

UPnP AV is an audio and video extension of UPnP. This extension defines different AV Components wich can be used through a network connection. These components can be media library (which can be browsed, searched, etc.), media player, media remote... (more information on wikipedia )

The UPnP standard is available at http://www.upnp.org, where you can find a lot of information (examples and uses cases are available in documents). For example, here is some "use cases" defined in ContentDirectory v1 specification:

 2.8.2. Content setup for Browsing and Searching
 2.8.3. Browsing
 2.8.4. Searching
 2.8.5. Browsing, Searching, and References
 2.8.6. Browsing, Searching, and Filtering
 2.8.7. Object Creation
 2.8.8. File Transfer of a resource in Objects
 2.8.9. Playlist Manipulation
 2.8.10. Internet Content Representation
 2.8.11. Vendor Metadata Extensions

Tools, UPnP software, etc.

UPnP/DLNA seems to be everywhere in Winwows 7. Windows Media Player can act as a Media Server (library) or a Media Renderer (player). You can stream media from another WMP computer or even control this remote WMP.

Screenshot of WMP controling and streaming from another device through UPnp:

http://www.winsupersite.com/images/blog/wmp_playto_2.jpg

There's even a plugin for foobar to use it as a a Media Server or a Media Renderer (see screenshot).

Developer Tools for UPnP Technologies are a set of tools built for windows with .Net that can be used to browse, sniff and do a lot of things with UPnP.

SDKs, Libs...

It seems that UPnP stacks exists to help using UPnP, some of them are listed there: http://upnp.org/sdcps-and-certification/resources/sdks/

The OpenSource frameworks available at "Cybergarage" exists for Java, Perl, etc.

Cybergarage has a perl UPnP module that seems to work (though it should be checked if it works flawlessly): http://search.cpan.org/dist/Net-UPnP/

http://www.sbbi.net/site/upnp/index.html

http://teleal.org/projects/cling/

Microsoft Windows Media Player analysis

Playing with "devtools for upnp", you can play with windows seven upnp server.

It seems that we can use different sort and search methods with upnp, here is the result of introspect services:

GetSortCapabilities

dc:title,
upnp:genre,
upnp:album,
dc:creator,
res@size,
res@duration,
res@bitrate,
dc:publisher,
dc:language,
upnp:originalTrackNumber,
dc:date,
upnp:producer,
upnp:rating,
upnp:actor,
upnp:director,
upnp:toc,
dc:description,
microsoft:year,
microsoft:userRatingInStars,
microsoft:userEffectiveRatingInStars,
microsoft:userRating,
microsoft:userEffectiveRating,
microsoft:serviceProvider,
microsoft:artistAlbumArtist,
microsoft:artistPerformer,
microsoft:artistConductor,
microsoft:authorComposer,
microsoft:authorOriginalLyricist,
microsoft:authorWriter,
microsoft:sourceUrl,
upnp:userAnnotation,
upnp:channelName,
upnp:longDescription,
upnp:programTitle

GetSearchCapabilities

@id,
@refID,
dc:title,
upnp:class,
upnp:genre,
upnp:artist,
upnp:author,
upnp:author@role,
upnp:album,
dc:creator,
res@size,
res@duration,
res@protocolInfo,
res@protection,
dc:publisher,
dc:language,
upnp:originalTrackNumber,
dc:date,upnp:producer,
upnp:rating,upnp:actor,
upnp:director,
upnp:toc,
dc:description,
microsoft:userRatingInStars,
microsoft:userEffectiveRatingInStars,
microsoft:userRating,
microsoft:userEffectiveRating,
microsoft:serviceProvider,
microsoft:artistAlbumArtist,
microsoft:artistPerformer,
microsoft:artistConductor,
microsoft:authorComposer,
microsoft:authorOriginalLyricist,
microsoft:authorWriter,
upnp:userAnnotation,
upnp:channelName,
upnp:longDescription,
upnp:programTitle
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.