I've been using CyberLink to develop upnp support for tRio (see http://triot.sf.net ). I am implementing a control point which browses the content directory on music servers.
It works great with the free TwonkyVision music server, but I am struggling to get it to work with Window Media Connect at all.
I am discovering the Media Server okay (and have added tRio as authenticated device in wmc), but I consistently get a 501: Action Failed response then I then try to browse the structure:
browse("0", "BrowseDirectChildren", "*", 0, 3, "")
Has anyone experienced this? Any ideas?
There is a bug of HTTP v1.1 streaming about
CyberLink v1.6.1 under.
I fixed HTTPPacket::set() not to read over
the content length when the stream is keep
alive such as HTTP v1.1 client.
I have released the new package as CyberLink
v1.6.2 and CyberMediaGate v1.1.2.
Please check it :-)
Thanks for spending time helping me with this. As a fellow open-source developer I know how time consuming it can be. CyberLink is a great piece of software - it'd have taken me ages to implement it all myself.
I gave the 1.6.2 code a try this morning, but I'm still getting the same 501/Action Failed error when I do the Browse().
As an experiment I also tried the Netgear MP115 server (see http://kbserver.netgear.com/products/MP115.asp ), but this generates a system dump when I send the Browse(). And so I must be doing something wrong from my side.
Currently I am only creating a Control Point instance through CyberLink. Instead of creating a Device instance, I am just streaming the data from the url info in the <res> elements. This works fine with TwonkyVision.
Do you think that the WMC and Netgear servers might be expecting to find renderer devices on the network and are failing because I'm not creating any?
Thanks again for your help
I assume that you know about WMC's add/remove device requirement? I got it to work by issuing
a browse (which failed the 1st time), then going
to WMC's config window and adding all the devices that were listed (there should be a new one after
you issue the first browse from an IP that WMC hasn't seen a request from before). After that,
the next browse should work...maybe!
Also, be aware that if you run your control point
on the same host as WMC, WMC may not see and
respond to your search requests (known bug in WMC which MS will hopefully fix soon). If you
leave your control point up for 5 min, it should
pick up WMC when WMC sends out its periodic
Hope this helps
Oops, sorry Paul - I didn't read your message carefully enough to notice the fact that you added the device to WMC!
Thanks for the heads-up on the localhost issue. I'm currently connecting from a different host and so it isn't a factor right now. But I need to be able to run on the same host, so I'll bear that in mind.
FYI, WMC returns a 801/Not Authorised error if the device hasn't been added/authorised. I think I read that this is based on MAC rather than IP address - but I may well be wrong.
Have you managed to use WMC via CyberLink yourself? If so, I'd really helpful if you could show me how you did it.
For lack of any other ideas, I think I'll start implementing a Media Renderer in tRio and see if that makes a difference. It's something that I've always intended doing in the longer term anyway.
I tracked down the cause of this last night. I was specifying the 5th param as "RequestCount" instead of "RequestedCount". Doh!!!
Twonkyvision didn't complain about it and WMC didn't return the proper error code (a 402/Invalid args would have been nice).
Thanks for everyones help with this.