DLNA rendering throwing a COMException (0x80040501)

I am trying to configure a DLNA controller to control an iPush Renderer device . iPush Renderer is becoming very popular as many iphone DLNA controllers and even the native Airplay do a great job of this. It supports almost all video file formats. My DLNA controller works with all the devices on which I have tested them so far (WDTV, Intels Media Renderer, XBox360 and many other iphone Renderers), except for this. iPush Renderer Device .

When I use UPNPLid.dll [UPnP 1.0 Type Library (Control Point)], I get all Renderers, including iPush

UPnPDeviceFinder finder = new UPnPDeviceFinder(); UPnPDevices devs = finder.FindByType(type, 0); 

Further, when I try to iterate through iPush services, I get "COMException (0x80040501)"

  foreach (var service in device.Services) {//get the right service} 

I tried using Intels Device Spy and Intels Media Controller to click on iPush. When Play is called, iPush simply displays the download screen forever. Please note that iPush works great with all the iphone controllers that I tested on it.
After checking the Internet for this error, I saw a similar question regarding WMP and xBox giving the same exception, but there was no answer.

+1
source share
1 answer

0x80040501 UPNP_E_EVENT_SUBSCRIPTION_FAILED , which assumes the renderer does not understand your controller request. Unfortunately, this particular Windows API is strictly documented. I would suggest taking Wireshark and grabbing the initial handshake from iWhatever and comparing it with the same traffic from your implementation. Having captured your implementation, you should also see a more descriptive error from iDevice. It does not matter. I would not be surprised to know that these iDevices do some exclusive things. The Intel UPnP suite is a reference implementation, so if THAT doesn't work, something is suspicious. Although, if I understand correctly, Intel does not have problems with subscription and listing, but later stages of the actual work. But anyway, Wireshark is now your friend. Creating DLNA work with hardware devices is an endless search for packet capture.

This link may be useful: http://www.archivum.info/microsoft.public.upnp/2007-08/00009/Device-gt-get_Service-failed.html

Disclaimer: I am not a specific friend with the UPnP Windows API, the less C #. I'm just used to working a lot with UPnP in C ++.

+1
source

All Articles