Philips 55POS9002/12 can't reach UMS

For help and support with Universal Media Server
Forum rules
Please make sure you follow the Problem Reporting Guidelines before posting if you want a reply
galmok
Posts: 18
Joined: Wed Mar 26, 2014 10:31 pm

Philips 55POS9002/12 can't reach UMS

Post by galmok »

I am using UMS 6.7.4 and am trying to get my TV to show this as a source. It has been a partial success. It shows up in the list of sources along with a few other DLNA servers, but when selected, the TV claims there is nothing offered at all, not even the static categories. The TV on the other han has no issue showing the other DLNA servers content.

What is more strange, if I use BubbleUPNP (Android DLNA server/player/controller), and ask it to use the TV as a player and my UMS as server, the TV will happily play content from UMS. It still can't list the content, though.

Also, every other DLNA controller I have used can perfectly fine see what is offered by UMS. Only the combination of UMS and Philips 55POS9002/12 doesn't work.

I have created a debug file but I'd rather not put it up here. If you want it, could you please message me for a link?

Edit: Forgot to say, UMS runs on Windows 10 with the firewall turned off.
Nadahar
Posts: 1990
Joined: Tue Jun 09, 2015 5:57 pm

Re: Philips 55POS9002/12 can't reach UMS

Post by Nadahar »

I can't see anything obvious in your log except that I'm confused by your network configuration. There is no valid address for any physical NIC, which means UMS ends up binding to a virtual adapter. That might be ok, but I know there's been issues earlier with virtual adapters not fully implementing multicast or having other "non-standard" behaviour.

It might not be the case here though, but it is important that there's no router - virtual or not - between UMS and the renderer. Or, more correctly, if there is the router must be properly configured to also route multicase traffic.

Since your TV can see UMS but can't list any content, it doesn't seem like the problem is with multicast though, since multicast is used for discovery while unicast is used for "everything else".

Is UMS running on a VM, or on the host itself? How is the virtual adapter connected to the rest of the network? It could be that there's a firewall running on the virtualization host even if the WIndows firewall is off, blocking incoming traffic but allowing SSDP (multicast discovery).
galmok
Posts: 18
Joined: Wed Mar 26, 2014 10:31 pm

Re: Philips 55POS9002/12 can't reach UMS

Post by galmok »

UMS runs on the host and there is no routing between the client and the server.

I don't know how much you know about Hyper-V, but it creates a new (virtual) NIC that hides the real NIC. This is a Microsoft way to do it and it is fully transparent. It is the same technology used on Windows Server and offers the client servers any virtual IP the DHCP server gives, and allows any IP communication wanted. I sincerely can't imagine this being the issue.

The issue could perhaps be that UMS cannot determine the correct IP to bind to. I know Serviio has this issue, but has a configuration that lets me chose which NIC to bind to. By default Serviio will bind to the wrong one. I don't know why, though, except for poor NIC selection algorithm.

If the programs used the routing table to determine which interface to bind to, this would be much more reliable. Here is my routing table:

Code: Select all

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.1.1      192.168.1.4     25
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    331
      192.168.1.0    255.255.255.0         On-link       192.168.1.4    281
      192.168.1.4  255.255.255.255         On-link       192.168.1.4    281
    192.168.1.255  255.255.255.255         On-link       192.168.1.4    281
     192.168.56.0    255.255.255.0         On-link      192.168.56.1    281
     192.168.56.1  255.255.255.255         On-link      192.168.56.1    281
   192.168.56.255  255.255.255.255         On-link      192.168.56.1    281
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    331
        224.0.0.0        240.0.0.0         On-link      192.168.56.1    281
        224.0.0.0        240.0.0.0         On-link       192.168.1.4    281
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  255.255.255.255  255.255.255.255         On-link      192.168.56.1    281
  255.255.255.255  255.255.255.255         On-link       192.168.1.4    281
===========================================================================
From this table it is easily determined that 192.168.1.4 is the IP to bind to. It has the 0.0.0.0 network destination paired with 0.0.0.0 network mask, has a gateway (important for routing) and has the lowest metric (if anything else equal, the lowest metric is used).

The 192.168.56.1 is actually the VirtualBox virtual NIC.

How does UMS pick the interface to bind to? Is there a way to override it?
Nadahar
Posts: 1990
Joined: Tue Jun 09, 2015 5:57 pm

Re: Philips 55POS9002/12 can't reach UMS

Post by Nadahar »

I haven't tested Hyper-V, but I'm quite used to virtualization, primarily via ESXi. Most of my VMs are non-Windows anyway, so it wasn't very tempting to use anything from MS as a basis - considering their track record for how things mysteriously stops working without explanation when it suits them.

Microsoft has always had trouble following standards properly, I as far as I know there's some quite basic TCP/IP implementation details that's actually not to standard in Windows. Not that it's relevant here, I'm just saying that the fact that it's "the Microsoft way to do it" doesn't mean it's fully compliant. I know there have been some problems related to using virtual adapters, but I don't remember the details, which virtual adapters etc. I think it was something with buffering or queuing that isn't properly implemented creating problems. I doubt that is the issue here though, as I think that's the kind of issues that give unstability, not a complete failure to connect.

What confuse me a bit is when I read the log, there are more than 20 network adapters (mostly virtual obviously). From their names, there were one or two that looked to be physical adapters to me, but with no assigned IP address. If they are supposed to be hidden, they aren't very well hidden as UMS enumerates them.

When it comes to using the routing table to select network interface, I don't think it's worth the effort. I would make the right choice some times, the wrong choice at other times - but be confusing for the user at all times. The default gateway isn't really important when it comes to UPnP/DLNA, since it basically only works on the local subnet. Routing will break it unless you really dig in and figure out how to get multicast routing to work properly (I've never taken the time to figure that out completely myself).

The way UMS select is simply by inspecting all network adapters, keeping valid IP addresses from some criteria (non-loopback, IPv4 AFAICR) and then pick the first one on the list that has a "valid" IP address once the interfaces that UMS can't use is filtered out. This list is in the order given by the OS, so I assume there's some logic to the order.

It's easy to configure manually, it's on the "General" tab in the GUI, you can either bind to an interface or to an IP address. If you don't use the GUI, you will have to configure it in UMS.conf.

UMS does bind to 192.168.1.4 in your case, so it doesn't look like that's the problem though. I can't see that the TV attempts to contact UMS, which indicates to me that the TV either never attempts to connect or that the packets never get there. If you can "see" UMS from your TV, discovery seems to work and I would expect that the TV would try to contact UMS based on that. They usually exchange some basic information about capabilities without any user action.

I still don't understand your configuration, nor why you run both Hyper-V and VirtualBox on the same host and NIC (I assume). Is the Windows 10 installation that runs UMS also the host for both Hyper-V and VirtualBox, or is it itself a VM? If so, with what hypervisor?
galmok
Posts: 18
Joined: Wed Mar 26, 2014 10:31 pm

Re: Philips 55POS9002/12 can't reach UMS

Post by galmok »

I'll try to answer your questions. :)

There may be like 20 ethernet adapters when enumerated, but only 4 are visible (at the moment).

My system has 2 hardware NICs, and on top of those, there is the Hyper-V virtual NIC and the VirtualBox NIC. I am not currently running anything but the host, but the NICs are static configurations.

One of the HW NICs is not un use. The other is not usable as the only items configured for this NIC are Microsoft LLDP Protocol Driver and Hyper-V Extensible Virtual Switch. This means the virtual switch can see the hardware NIC and Hyper-V Host configuration connects the host to this virtual switch as well, allowing full ethernet capabilities. A simple switch doesn't have any IP, right? ;-) The virtual NIC also has the driver to allow VirtualBox to perform its magic.

Some of the virtual NICs are probably remnants of wifi dongles and other stuff, all inactive and hence of no consequence.

Regarding running both Hyper-V and VirtualBox, well, they both have their uses. Hyper-V has fairly advanced support for disk and network (and is very high performance), whereas VirtualBox has more features in the GUI department. At work we have a WinSer2012 that has run 3 virtual machines for years without issues. Not even one hickup. It is pretty solid software.

Regarding Hyper-V, the host (windows 10) is actually partially virtualized, but has kept the hardware control. This means the Hyper-V virtualizer layer is the 'OS', controlled by the Host (now being a virtual machine itself). Windows 10 is hence split into two, the hardware drivers and virtualization layer, and everything else. But if no other virtual machine is running, the loss is negligible. My games run the same speed as before I enabled Hyper-V. Pretty advanced stuff. Benchmarks show that Hyper-V kicks ESX's ass in raw processing power (also, quite cheap as it is built into Windows 10 Professional).

Thanks for letting me know about the advanced section. I had completely missed it!

I have now fixed UMS to the vitual NIC (192.168.1.4) but it is too late for me to test today (also just gotten a heavy cold, so I am not really up for the exercise (pc upstairs, tv downstairs). :-P
galmok
Posts: 18
Joined: Wed Mar 26, 2014 10:31 pm

Re: Philips 55POS9002/12 can't reach UMS

Post by galmok »

Well, the test is negative. The TV still can't browse UMS. It shows up in the list, but the TV claims there are no files. And yet, with a third party DLNA controller (like BubbleUPNP), the TV has no problems streaming from UMS. It is only browsing that doesn't work. :-(
Nadahar
Posts: 1990
Joined: Tue Jun 09, 2015 5:57 pm

Re: Philips 55POS9002/12 can't reach UMS

Post by Nadahar »

I took another look at your log and I think I might have found the problem. In the Philips renderer configuration file (Philips-PFL.conf), this is set:

Code: Select all

CreateDLNATreeFaster = true
That setting is a very bad hack that I personally can't understand that will do anything good in any situation. In any case, it seems that this leads to UMS responding with an invalid response to your TV, after which your TV seems to "give up" (I don't blame it, imagine trying to talk to a person like Trump, where you only get bullshit back nomatter how reasonable your request is).

You can find this file in the "renderers" subfolder in the UMS installation folder. Please edit this line while UMS isn't running and set it to false like this:

Code: Select all

CreateDLNATreeFaster = false
If that helps I'd need to know, as we need to change this in the bundled version of Philips-PFL.conf.
galmok
Posts: 18
Joined: Wed Mar 26, 2014 10:31 pm

Re: Philips 55POS9002/12 can't reach UMS

Post by galmok »

I changed the feature you mentioned and now the TV can browse UMS just fine. Success! :-)

Thank you for your assistance. :)


I haven't had a look at this file before, but it seems to be invalid in more places than one. Lots of stuff mentioned as not supported should actually be supported.

How would I make my own file and be certain this file is picked up instead of the present configuration file?

I guess any information from this line is querable, right?
14:11:53 DEBUG Matched media renderer "Philips TV" based on dlna details "55POS9002/12 192.168.1.57 uuid:F00DBABE-AA5E-BABA-DADA-121EE3E3CA2A Philips Philips TV DMR 2k15MTK UPnP Media Renderer 1.0 http://www.philips.com http://www.philips.com/"
Can I change this:
UpnpDetailsSearch = Philips TV
With this:
UpnpDetailsSearch = 55POS9002/12
Can I make it more exact? I know the model number is exact, but the Philips TV DMR part is completely left out. Are there wildcard support? Regex?

Is there any documentation on what to do in these files?
Nadahar
Posts: 1990
Joined: Tue Jun 09, 2015 5:57 pm

Re: Philips 55POS9002/12 can't reach UMS

Post by Nadahar »

Good to hear. We definitly need to change that setting. It's actually a bit random if this bug is detected, as it depends on the number of media items in a folder in relation to how many items the renderer requests. It's thus entirely possible that many won't experience this at all, simply from sharing different files with different content.

You can place renderer configuration files in the "renderers" subfolder of you profile folder. On Windows (Vista or newer) this default to "C:\ProgramData\UMS\renderers". I think those get preference. You can even make one only for your unique renderer by setting "Device = uuid:<UUID>" in the renderer configuration file - not that it's very useful most of the time.

There is a priority system for renderer configurations, priority can be set in the configuration. All settings have a default value, so any value not explicitly set will be the default. You can find most settings with description in "DefaultRenderer.conf" which can be found in the same folder as the other renderer configuration files.

There are also some more or less outdated information scattered around, a little bit in the Wiki and a bit here. You can also find a lot of information about it by searching this forum. I'm afraid nobody has done the job of consolidating and organizing this information that I am aware of.

The "search" fields supports regex, Java style.

All the information in the line you quoted should be querable with "UpnpDetailsSearch". In addition there is "UserAgentSearch" which looks at the user agent in the HTTP header. UPnP details are preferrable though, but not all renderers provides this or the information is too generic to be useful.

For your personal use it doesn't really matter how much you narrow it down, but you're thinking of helping us by providing an improved file there's a couple of things to take into account. We don't want to narrow it down too much, as an "almost correct" renderer configuration often works better than none at all (aka the default). Most manufactureres use the same or very similar software for DLNA across many models, so chances are that configurations working for one model will work for many "similar" or "same generation" models as well. The idea is to have the more general configurations with a lower priority and then have higher priority for the more specific ones.

The information provided in the UPnP details, and particularly in the user agent, often isn't stable. Manufactureres frequently change these in firmware updates, which can be a hazzle. This is also a reason to try to be as generic as possible without matching devices that won't work with that configuration.

It's also important to note that you can't always trust the manufacturer's information about what's supported. This information is often outdated or lacking, so everything needs to be tested. Information about general support for a format or codec when played from USB or other sources, often doesn't apply to DLNA. I suspect this is because the manufacturers doesn't bother to customize the DLNA software to each model, they just use their "generic" DLNA software which might have a more narrow support.
galmok
Posts: 18
Joined: Wed Mar 26, 2014 10:31 pm

Re: Philips 55POS9002/12 can't reach UMS

Post by galmok »

I would actually like to create a better suited config file for this tv, but to do that, I would need a rather large sample of videos to know if I have captured all combinations of container, video codec, and audio codec.

Or maybe just build it from what the TV itself announces... I am looking into it.
Post Reply