hzeller / gmrender-resurrect

Resource efficient UPnP/DLNA renderer, optimal for Raspberry Pi, CuBox or a general MediaServer. Fork of GMediaRenderer to add some features to make it usable.
GNU General Public License v2.0
839 stars 204 forks source link

update TRANSPORT_SERVICE for compatibility #13

Closed badfortrains closed 11 years ago

badfortrains commented 11 years ago

Update service type to make action results work with platinum sdk (http://sourceforge.net/projects/platinum/).

Not sure if this is a bug, or if version 1 is just a newer version. Couldn't find any documents referencing an earlier version.

The only av transport spec I found used the urn:schemas-upnp-org:service:AVTransport:1 format http://upnp.org/specs/av/UPnP-av-AVTransport-v1-Service.pdf

hzeller commented 11 years ago

Thanks!

hzeller commented 11 years ago

FYI, did you actually file a bug with the platinum folks ? By my understanding, the ServiceID should not matter too much as the serviceType is the important part.

Typically, this should actually be "urn:upnp-org:serviceId:AVTransport"; can you try if that is working with platinum ?

hzeller commented 11 years ago

I have now changed the service-IDs to what typically is used for these; can you check if the latest git version works for you with platinum ? If not, we need to work with the platinum people to see what the reason is.

hzeller commented 11 years ago

(the interesting thing is, they use these service IDs themself:

./Platinum/Source/Devices/MediaRenderer/PltMediaRenderer.cpp: "urn:upnp-org:serviceId:AVTransport", ./Platinum/Source/Devices/MediaRenderer/PltMediaRenderer.cpp: "urn:upnp-org:serviceId:ConnectionManager", ./Platinum/Source/Devices/MediaRenderer/PltMediaRenderer.cpp: "urn:upnp-org:serviceId:RenderingControl",

)

hzeller commented 11 years ago

Looks like, there is indeed a bug in Platinum (?) that expects the serviceId to be the same as serviceType.

I've added now a conditional compile for this that enabled the 'broken' behavior while I send this to being investigated with some foobar2000 plugin maintainers: https://github.com/hzeller/gmrender-resurrect/blob/master/src/upnp_transport.c#L50

Foobar2000 forum post http://www.hydrogenaudio.org/forums/index.php?showtopic=101360

hzeller commented 11 years ago

Alright, found the actual problem; somewhere in gmrender-resurrect, the XML namespace was set to the service ID instead of service type. https://github.com/hzeller/gmrender-resurrect/commit/bdb46e19b23e7049af629859b7db91ccf0550706