UPnP support (Universal Plug and Play) (1 Viewer)


Portal Pro
May 12, 2004
Home Country
Sweden Sweden
This is a request for "UPnP (Universal Plug and Play Protocol)" support in MediaPortal:

The UPnP AV (UPnP = Universal Plug and Play Protocol, and AV = Audio/Video) standard is a collection of connectivity and communication protocols, a few of which would suit MediaPortal:
- UPnP MediaServer DCP - which is the UPnP-server (a 'slave' device) that share/stream media-data (like audio/video/picture/files) to UPnP-clients on the network).
- UPnP MediaServer ControlPoint - which is the UPnP-client (a 'master' device) that can auto-detect UPnP-servers on the network to browse and stream media/data-files from them.
- UPnP Remote User Interface (RUI) client/server - which sends/recieves control-commands beween the UPnP-client and UPnP-server over network, (like record, schedule, play, pause, stop, etc.).
- UPnP MediaRenderer DCP - which is a 'slave' device that can render content.
- UPnP RenderingControl DCP - control MediaRenderer settings; volume, brightness, RGB, sharpness...).

Some information on UPnP (Universial Plug'n'Play), for developers and end-users alike:
UPnP (Universial Plug and 'Play) looks set to be the default standard among media-share network-protocols of the future, it's an open and free spec/format developed by the Digital Living Network Alliance (DLNA), (Formely: Digital Home Working Group). Those who are familiar with Apple's Bonjour/ZeroConf (formely: Rendezvous) protocol will understand the basic concept of UPnP as it works in a very similar way from the end-users point-of-view, however UPnP is designed to compete with Bonjour/ZeroConf, and UPnP is much more aimed from the start to be an open community project. Basicaly the MediaServer ControlPoint and MediaRenderer is the network-client (and digital-media-player) which will automaticly detect/find all UPnP-MediaServers on the local-network through multicast/broadcast and you can then stream audio/video/pictures from them, (UPnP can also be used over the internet if a "UPnP Internet Gateway Device" is implemented too). Then is also RUI (Remote User Interface) part which can be implemented into both the client and the server, when RUI is supported by both the client can fully control the server, (and act like a remote-control device). Because UPnP is an fre and open standard a UPnP-client can auto-detect and stream from all UPnP-servers without any configuration/settings have to be made by the end-user, plus any software of hardware developer can implement the UPnP standard into their application/device. Philips/Sony has already revieled UPnP standalone set-on-top-boxes, D-Link has unvieled a UPnP-enabled "Central Home Storage Drive", and on the software side latest MusicMatch, also SnapStream's BTV and even Microsoft's Media Center Extenders feature UPnP support. So far the UPnP forums has over 40 members, (among them giants like Intel, AMD, Microsoft, IBM, HP, DELL, Sony, Nokia, Samsung, Panasonic).

For a more detailed overview on the basic concept behind UPnP I recommend you read the "Universal Plug and Play" Article on Wikipedia (link)".

What are the benefits of UPnP technology?

* Media and device independence. UPnP technology can run on any medium including phone line, power line, Ethernet, RF, wireless, and 1394.
* Platform independence. Vendors use any operating system and any programming language to build UPnP products.
* Broad industry acceptance, over 800 companies/manufactures/vendors members, and climbing.
* Internet-based technologies. UPnP technology is built upon IP, TCP, UDP, HTTP, and XML, among others.
* UI Control. UPnP architecture enables vendor control over device user interface and interaction using the browser.
* Programmatic control. UPnP architecture also enables conventional application programmatic control.
* Common base protocols. Vendors agree on base protocol sets on a per-device basis.
* Extendable. Each UPnP product can have value-added services layered on top of the basic device architecture by the individual manufacturers.
*Auto-discovery and zero-configurations, making it very user-friendly for all end-users

Personaly I really like to see UPnP MediaServer and RUI server support in MediaPortal because then a UPnP MediaServer ControlPoint and RUI client could be implemented into XBMC (Xbox Media Center) and thus XBMC will be able to auto-detect MediaPortal 'servers' on the network to stream from them and control MediaPortal remotly over the network via the XBMC GUI (to send command such as record, schedule, play, stop, change channel) and thus be able to function as a front-end for MediaPortal, (you could then have one MediaPortal PC function as a back-end hub and have several Xboxes in the house which could control MediaPortal from each one of them). Of course XBMC is not the only thing that would benifit from UPnP MediaServer and Remote UI support in MediaPortal, but because UPnP is an open standard anyone who add MediaServer ControlPoint to their application or device would in theory be able to stream audio/video/pictures from MediaPortal, and you could for example make a small application (with a RUI client) for PDA or TabletPC that simply functions as a remote control for MediaPortal, (and that application would also be compatible with other UPnP devices that feature a RUI server-side.

Official UPnP websites (with free specs, source code, samples and SDK's):
www.upnp.org and DLNA (Digital Living Network Alliance)

DLNA Home Networked Device Interoperability Guidelines v1.0 PDF
DLNA Overview and Vision White Paper (PDF)
DLNA Use Case Scenarios White Paper (PDF)
Universal Plug and Play in Windows XP (Microsoft TechNet)
Description of Universal Plug and Play Features in Windows XP (MSDN)
Hosting Devices on Windows XP Using Universal Plug and Play (MSDN)

Other resourses: source code exampels, full applications and more:
UPnP official specs, source and SDK's (it's free): www.upnp.org/www.upnp.com
Intel's UPnP SDK/toolset (donno if open source?, but it's free to use for non-commercial software): http://developer.intel.com/ial/upnp/
CyberLink for C++ http://sourceforge.net/projects/clinkcc/
Yet Another UPnP Control Point http://sourceforge.net/projects/upnp2k/
UPnP SDK for Linux http://sourceforge.net/projects/upnp/
Linux UPnP Internet Gateway Device http://sourceforge.net/projects/linux-igd/
Linux UPNP Internet Gateway http://sourceforge.net/projects/ligd/
SharpIGD (Internet Gateway Device) http://sourceforge.net/projects/sharp-igd/
openIGD (Internet Gateway Device) http://sourceforge.net/projects/openigd/
Pseudo ICS daemon http://sourceforge.net/projects/pseudoicsd/
ESDP for Linux (UPnP over Bluetooth) http://sourceforge.net/projects/esdp4linux/
igd (Internet Gateway Device) http://sourceforge.net/projects/igd/
ReplayTV Remote Control http://sourceforge.net/projects/replaytvremote/[/quote]


Portal Pro
August 25, 2004
Melbourne, Australia

We've already started this discussion, but unfortunately it became a bit offtrack because there's a developer using VideoLAN to implement something. Anyway, the upnp-related posts are here:

I did some investigation into it and checked out the intel tutorial videos and my basic conclusion is that XPMCE works with MCXs via RemoteIO. But in order to do this, MP needs to be split into a frontend/backend structure, which it is not now. Once this is done, I don't think it would be too hard to upnp-enable MP.

Have a look at those posts, but I think its better if the uPNP stuff is given its own thread so reply to this thread.



Thanks for starting a dedicated thread on this - its a good idea. Great to see the XBMC people interested in it also.

samuel337 said:
MP needs to be split into a frontend/backend structure, which it is not now. Once this is done, I don't think it would be too hard to upnp-enable MP.

I think some basic work could be done without having MP split into front/back. The MediaServer and MediaRenderer stuff could be implemented with real practical results and (from my reading) is not dependant on MP being split or the Remote User Interface. It would just be an implementation of:

1. SSDP - auto discovery of UPnP devices

2. ContentDirectory - to list the content available to be streamed (ie just the "My Videos", "My Music", etc directories)

3. ConnectionManager - to stream the content (probably just via http as its over a home network)

4. RenderingControl - to control the rendering device (play, stop etc)

End result would be turn on MP, it auto discovers other instances of MP and they can stream content between them over a home network. With the RenderingControl, you could even push content to another instance of MP just like a second set of speakers.


benji said:
End result would be turn on MP, it auto discovers other instances of MP and they can stream content between them over a home network.

That is a great way to conceptualize this. If someone really required a "server" version of mp, it might be feasible to make a branch in the code that seperates out the client code (basically sends nothing to render and opens no window) leaving only server, but I think a client only version is unecessary in light of this concept.


Portal Member
December 17, 2004
Are there any developers interested in seeing this done? It would actually be beneficiary to many more people than just XBMC people. I am an XBMC user and would love to have several Xboxes all over the house with TV support and MediaPortal could provide a start to making that happen. UPnP support would actually work for several other applicaitons as well, people with a few old computers sitting around could just load a frontend up on them and no need for tuners in each one so you would have MediaPortal running on several systems for a very limited cost. I wish I knew how to code, I would jump on this, maybe one day I will learn, until then I am relying on you guys. Anyways, are any developers interested in working on this?


Retired Team Member
  • Premium Supporter
  • September 28, 2004

    Your idea sounds good. It would serve current developing and drive MP to new direction without major architectual changes. Way to go :)



    Windows Update Has a upnp server avalible

    Last night, when running Windows Update, I noticed a download for Windows Media Connect. I had no idea what this was, but some investigation lead me to the following press release:

    Windows Media Connect supports interoperability standards such as Universal Plug and Play (UPnP) and HTTP, and is planned to conform to the guidelines under development by the Digital Home Working Group. This will make it easy and cost-effective for consumer electronics companies to build support for Windows Media Connect into their products while following industry standards for home networking products. Windows Media Connect supports popular media formats including WMA, MP3 and PCM for audio; Windows Media Video (WMV), MPEG-2, MPEG-1 and AVI for video; and JPEG, GIF, PNG, BMP and TIFF for images.

    Basically, Windows Media Connect is a UPNP server that can be used to stream media from a Windows XP box to any UPNP compatible consumer electronics device, such as the GoVideo Networked DVD player.

    This rocks. I'm going to give it a whirl tonight, and I'll let you know how it works out.

    More information about WMC can be found in the Windows Media Connect Device Design Considerations.

    posted on Wednesday, October 13, 2004 3:41 PM

    From http://blogs.msdn.com/smakofsky/archive/2004/10/13/241774.aspx

    Just Need to make MediaPortal And XBMC in to Servers/Clients


    Yep. Using Intel Upnp stack. It seems to have the best tools and documentation at the moment. I haven't really got into it yet though - too much Chirstmas and New Years stuff :) Don't expect something from me for a while.

    EDIT: Just looking through the Intel license T&Cs and now not certain it is GPL compatible. Using Intel stack may not be the way to go. Will start looking for something different.


    benji : I'm currently writing a UPnP MediaServer in VB.Net with my own UPnP stack because of the limitation of Intel's license.

    Of course, I'm far from having all what Intel has in their DLLs...

    For now, I wrote what is needed to make a MediaServer and being recognized by other UPnP devices. After a bit of code cleaning and some tests, I will release the whole thing (in GPL of course) as a pre-alpha version here : http://sourceforge.net/projects/andrea-upnp/

    I hope it will be usefull for what you want to do :wink:

    Users who are viewing this thread

    Top Bottom