Talk:UPnP

From MythTV Official Wiki
Revision as of 00:04, 20 February 2010 by MythMike (talk | contribs) (Page Improvements: new section)

Jump to: navigation, search

UPnP Discussion (Talk:UPnP)

UPnP standard protocols has the potential of replacing all communication (including data control and /audio/video streaming) between MythTV back-end (server-side) and front-end (client-side). UPnP even has a 'extendable' feature where the application developer could add extra UPnP commands which are not in the standard UPnP specifcitions, thus covering every existing and future connectivity and communication needs between the MythTV back-end and the MythTV front-end.

Other info needed?

This article is a great overview of UPnP, but I think some more information in the context of how MythTV interacts in UPnP mode would be very useful. I think many people looking here for information will be MythTV users who are considering adding a UPnP media extender. Some relevant topics would be: What is the user interface like (ideally with screenshots of the menus, filenames and general usage experience)? What do you lose (gain?) when using a UPnP frontend?

Update May 5, 2007

Individual pages are being created for hardware UPnP players here: UPnPClientInfo

UPnP Wishlist

All UPnP AV (UPnP = Universal Plug and Play Protocol, and AV = Audio/Video) connectivity and communication protocols could also make MythTV be fully UPnP compliant on both the back-end (server) side and the front-end (client) side. So that both MythTV's back-end and front-end would be intercooperative with other UPnP servers and clients, (then especially other HTPC applications, both open sourced ones and closed source commersial ones, thus the end-user can choose the best 'back-end' and the best 'front-end' which suits their needs, like a MediaPortal back-end, or a XBMC front-end together with MythTV). For more information see MythTV developers notes on UPnP.

Note! UPnP could be implemented one or more native feature(s) or one or more plugin(s):
  • UPnP AV MediaServer - which is the UPnP-server (a 'slave' device) that share/stream media-data (like audio/video/picture/files) to UPnP-clients on the network). Now a UPnP AV MediaServer has already been implemented into MythTV back-end but the code classes could be updated according to the v2.0 specifications to be UPnP v2 compliant.
  • UPnP SSDP Discovery Service in both MythTV back-end and front-end to make the MythTV and MythTV auto-discover each other. If not into to both then at least into the MythTV front-end to let it (and other UPnP-clients) auto-detect the MythTV back-end over a local-network.
  • UPnP Remote User Interface (RUI) server/client (in MythTV back-end and front-end respectivly) - which recieves/sends control-commands beween the UPnP-server and UPnP-client over network, (like record, schedule, play, pause, stop, etc.). With UPnP RUI in both MythTV back-end and front-end, the front-end can control/command the back-end via UPnP, and since UPnP is a standard other 'front-ends' which also feature UPnP RUI can also control/command the MythTV back-end, and the MythTV front-end can control/command other 'back-ends' if they feature UPnP RUI.
  • 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. Should be implemented into
  • UPnP MediaRenderer DCP - which is a 'slave' device that can render content.
  • UPnP RenderingControl DCP - control MediaRenderer settings; volume, brightness, RGB, sharpness...).


Developers notes on UPnP

A v1.0 compliant UPnP AV MediaServer was implemented in MythTV CVS on the 6th of June 2006 by dblain, (for more specific MythTV code information see Changeset 10118). UPnP in MythTV is still a work in progress, there is a lot of work left to get a totally compliant implementation, and as there are so many aspects (and potential) to UPnP feel free to help out in adding new UPnP features, (or improve the existing functions, like make the UPnP AV MediaServer in MythTV UPnP AV v2.0 compliant by the new UPnP AV v2 specifications, see upnp.org). Note that once nice thing about the UPnP standards it is extendable by design, meaning each UPnP product can have value-added services layered on top of the basic device architecture by the individual manufacturers.

UPnP (Universal Plug and Play) is a set of royalty-free computer network protocols from the UPnP Forum. UPnP is built upon open, internet-based communication standards such as SSDP, HTTP, XML, SOAP, etc. (which means that any developer/programmer can make a device or software for any operating-system/platform in any programing-language by following the UPnP standards and it should automaticly be compatible with all other UPnP devices). UPnP achieves this by defining and publishing UPnP device control protocols (also called profiles). One profile called UPnP Gateway is what routers implements to let computers automatically discover them or even control them by opening/closing ports on a firewall for example. Another profile which is not to be confused with the previous one is UPnP AV (for audio/video) which defines a set of functionalities to share/control and render content on a local network. There are typically three types of devices in UPnP AV (Audio/Video); a MediaServer which is a 'slave' device which sole purpose is to share content, a MediaRenderer which is a 'slave' device that can render content, and a UPnP MediaServer ControlPoint which is the 'master' that can detect/find UPnP MediaServers and control them (browse). UPnP MediaServers ControlPoint is not an actual UPnP device as it cannot be detected by other UPnP devices. A UPnP MediaRenderer ControlPoint is the 'master' that can detect/find and control UPnP MediaRenderers. A DMP (Digital Media Player) only implements a UPnP MediaServer ControlPoint. The UPnP architecture supports zero-configuration, invisible networking and automatic discovery for a breadth of device categories from a wide range of vendors, whereby a device can dynamically join a network, obtain an IP address, announce its name, convey its capabilities upon request, and learn about the presence and capabilities of other devices. DHCP and DNS servers are optional and are only used if they are available on the network. A device can leave a network smoothly and automatically without leaving any unwanted state information behind.

MythTV current UPnP AV MediaServer implementation is based on the CyberMedia Gate for C++ reference code (that is in turn based on CyberLink for C++) which is licenced under BSD open source licence. If you are a C/C++ programmer and like to add a UPnP MediaServer ControlPoint / UPnP-client (or other UPnP features) to MythTV then you should also checkout an GPL licenced alternative; the Platinum UPnP SDK, available on SourceForge.net is a free and open source software development kit (under the GPL licence) that lets you easily create a UPnP MediaServer, MediaRenderer or Contol Point. You should also visit the official UPnP™ Forum, also, other good links for developers can be found at the bottom of the UPnP article on Wikipedia.

  • 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 MythTV:
    • 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/receives 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...).

UPnP is the future of networked entertainment and are leading the way to an interconnected lifestyle. The UPnP™ Forum currently consists of over 800 members (which consists of vendors, industry leaders in consumer electronics, computing, home automation, home security, appliances, printing, photography, computer networking, and mobile products), including companies such as; Microsoft, Intel, AMD, Adobe, Belkin, Cisco, LinkSys, D-Link, 3com, Fujitsu, IBM, NEC, RealNetworks, ReplayTV, ...and many, many more huge coperations. Membership of the UPnP™ Forum free.

Much information about compatibility can be found on the Digital Living Network Alliance (DLNA) website. DLNA is a specification that allows the sharing of music, photo, and video files over the home network, between different consumer electronics and PC products. The DLNA like the UPnP™ Forum made from consists of vendors, industry leaders in consumer electronics, etc. Their goal is to make sure different UPnP devices work together without problem, they feature a "DLNA CERTIFIED™" certificate for products that have passed their interoperability testing standards, that includes guidelines which should be followed when making a UPnP device. Membership of DLNA is free.

Page Improvements

This page has a lot of good info but it could use some reorganization. For example, information specific to particular UPnP clients should be on the page for the specific device. If there are no objections, I'd like to work on this page and improve its layout, etc. MythMike 00:04, 20 February 2010 (UTC)