[mythtv] Ticket #1495: uPnp Support - Additional information

David Blain MythTv at TheBlains.net
Sun Mar 12 07:39:22 UTC 2006


 
Isaac,

I was going to wait until after you reviewed my code before I created a
ticket, however, the attachments were too large so I thought it was easiest
just to bite the bullet and create the ticket.

The diff attached to ticket #1495 is against SVN 9320.  I copied some of the
below text in the ticket, however this is some additional explanation.

I am planning on creating a detailed document/web site explaining the design
and how to extend it, however it is going to take me a couple of weeks due
to projects at work.

Here is a quick description of some of the features/requirements:

--- Installation:

There are 3 xml files that are used to describe the upnp devices/services in
mythtv. A 'make install' will copy them to the same directory as the
executables.  In order for the application to know where the files are you
MUST add a setting to the database:

	  upnpDescXmlPath = /usr/local/bin/

I'm sure there is a better way to handle this, and am open to suggestions.

Also, if you want to assign a friendly name to be displayed on upnp clients
you can add this setting to the database (If it does not exist, it will
build a default name with the hostname embedded in it.)

	upnpFriendlyName = "MythTv..."

--- Features / Limitations

1) Only Recorded programs are displayed on the client and I have not
included groups yet.
2) I used a D-Link DSM-520 as the playback client when testing... I had to
add device specific code for it not to treat MythTv as a foreign server.
(If an <mpeg file name>.idx file existing, then FF & FB work... I don't know
how to create these files yet, I had to use videoi.exe on a windows machine
to generate one)
3) The Connection Manager Service is NOT implemented yet.
4) uPnp Subscriptions & Events are not implemented yet.
5) All upnp & other methods can be accessed via SOAP, Form POST or by REST
(query strings).
6) I have added a handful of methods that return XML (these were added
before I started the upnp support... Some will be enhanced in the future to
be more upnp like).

	/                     Same as getStatusHTML
	xml                   Same as getStatusXML

	getStatusHTML  		Returns the original HTML Status Page

	*** All of the following return XML ***

	getStatusXML   		Returns the current Status Data
	getProgramGuide		Returns a subset of the program listings
	getHosts       		Returns a list of unique Hosts contained in
the Setting table.
	getKeys        		Returns a list of unique Keys in the Setting
Table
	getSetting     		Returns a Keys value
	putSetting     		Sets a Keys Value
	getChannelIcon 		Retrieves the channel Icon
	getRecorded    		Retrieves a list of Recorded Programs
	getPreviewImage		Retrieves a recorded programs thumbnail
image
	getRecording   		Retrieves a complete recorded video (***
Used for upnp playback)

I have included a simple web page that can be used to test all the above
methods.  It's all client side script, so it can be used on any machine (no
web server needed).

7) I refactored my code so that there are as little changes to the base
source as possible.

I have a lot more code to write to make this a complete implementation,
however, the attached patch is far enough along for discovery and playback
of recorded programs to work.

That's all I can think of for now... I look forward to your (or anyone
else's comments).

David Blain.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: MythXMLTest.zip
Type: application/x-zip-compressed
Size: 10694 bytes
Desc: not available
Url : http://mythtv.org/pipermail/mythtv-dev/attachments/20060312/eab922bf/attachment.bin 


More information about the mythtv-dev mailing list