UPnP support (Universal Plug and Play)

Discussion in 'Improvement Suggestions' started by Gamester17, December 15, 2004.

  1. Gamester17

    Gamester17 Portal Pro

    Joined:
    May 12, 2004
    Messages:
    98
    Likes Received:
    3
    Occupation:
    x86 Servers Technical Support Engineer
    Location:
    Sweden
    Ratings:
    +3 / 0
    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)".

    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)

    Documentation:
    http://www.upnp.org/standardizeddcps/mediaserver.asp
    http://www.upnp.org/standardizeddcps/remoteui.asp
    http://www.upnp.org/download/MediaRenderer%201.0.pdf
    http://www.upnp.org/download/RenderingControl%201.0.prtad.pdf
    DLNA Home Networked Device Interoperability Guidelines v1.0 PDF
    DLNA Overview and Vision White Paper (PDF)
    DLNA Use Case Scenarios White Paper (PDF)
    http://www.intel.com/technology/upnp/index.htm
    http://www.intel.com/technology/UPnP/tutorial.htm
    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]
     
  2. Google AdSense Guest Advertisement



    to hide all adverts.
  3. samuel337

    samuel337 Portal Pro

    Joined:
    August 25, 2004
    Messages:
    772
    Likes Received:
    0
    Location:
    Melbourne, Australia
    Ratings:
    +0 / 0
    Hey

    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:
    http://nolanparty.com/mediaportal.sourceforge.net/phpBB2/viewtopic.php?p=16120#16120

    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.

    Sam
     
  4. Anonymous

    Anonymous Guest

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

    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.
     
  5. Anonymous

    Anonymous Guest

    Ratings:
    +0 / 0
    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.
     
  6. los93sol

    los93sol Portal Member

    Joined:
    December 17, 2004
    Messages:
    5
    Likes Received:
    0
    Ratings:
    +0 / 0
    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?
     
  7. CoolHammer
    • Premium Supporter

    CoolHammer Retired Team Member

    Joined:
    September 28, 2004
    Messages:
    174
    Likes Received:
    0
    Location:
    Finland
    Ratings:
    +0 / 0
    Benji:

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

    CoolHammer
     
  8. Anonymous

    Anonymous Guest

    Ratings:
    +0 / 0
    Windows Update Has a upnp server avalible

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

    Just Need to make MediaPortal And XBMC in to Servers/Clients
     
  9. los93sol

    los93sol Portal Member

    Joined:
    December 17, 2004
    Messages:
    5
    Likes Received:
    0
    Ratings:
    +0 / 0
    Is anybody currently working on this?
     
  10. Anonymous

    Anonymous Guest

    Ratings:
    +0 / 0
    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.
     
  11. Anonymous

    Anonymous Guest

    Ratings:
    +0 / 0
    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:
     
Loading...

Users Viewing Thread (Users: 0, Guests: 0)

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice
  • About The Project

    The vision of the MediaPortal project is to create a free open source media centre application, which supports all advanced media centre functions, and is accessible to all Windows users.

    In reaching this goal we are working every day to make sure our software is one of the best.

             

  • Support MediaPortal!

    The team works very hard to make sure the community is running the best HTPC-software. We give away MediaPortal for free but hosting and software is not for us.

    Care to support our work with a few bucks? We'd really appreciate it!