chocolateboy wrote:User-agent regex conflicts with existing renderer confs e.g.:
Platinum: XBMC
DLNADOC: FreecomMusicPal, Kuro
https://code.google.com/p/ps3mediaserve ... id=1116#c1
There is overlap indeed. However, the iPad-iPhone.conf should not cause any ruckus because it is using the most narrow definition:
- Code: Select all
# iPad-iPhone.conf
UserAgentSearch=AirPlayer/|Lavf|Platinum/.*DLNADOC/|yxplayer2|MPlayer |NSPlayer/
# Kuro.conf
UserAgentSearch=POSIX UPnP/1.0 DLNADOC/1.50 UPnP SDK/1.6.0
# XBMC.conf
UserAgentSearch=Neptune|Platinum|XBMC
To match one of the players used by the app "yxplayer2" it uses the fragment "Platinum/.*DLNADOC", meaning a match requires both "Platinum" and "DNLADOC" to appear on the same line.
This means there is no conflict with "Kuro.conf", which matches the full line "POSIX UPnP/1.0 DLNADOC/1.50 UPnP SDK/1.6.0".
However, there is overlap with "XBMC.conf", which matches the more general "Platinum" without further detailing.
The new iPad-iPhone.conf should not cause a conflict with that unless XBMC also passes on a User-Agent header that also contains both "Platinum" and "DLNADOC".
Strangely enough the devices are determined correctly by PMS!
Meaning: the more general "XBMC.conf" does not show up as the renderer for the "yxplayer2" app. I experimented with removing that particular useragentsearch bit and indeed, XBMC was detected.
So the current detection scheme does seem to work out right, even though there is unintended overlap.
On a side note: the app "yxplayer2" has pretty crappy support for movie playback right now, read: we could simply drop support for it and not lose much.
It is the only free solution I got working though.
Also chocolateboy suggests:
chocolateboy wrote:iOS renderers that report generic/common DLNA libraries/user agents would be better handled with a) dedicated renderer confs (e.g. AirPlayer.conf) and b) additional probes for identifying headers i.e.:
UserAgentAdditionalHeader=Header Name
UserAgentAdditionalHeaderSearch=Header Value
I think you are right.
My intention was to detect the devices, but examining the traffic it turns out that the headers are very app specific and often do not hint about the device at all. And there are quite a few apps available...
On top of that, there are rarely ever any useful additional headers sent.
Also, apps use multiple players internally, meaning one app can return several User-Agent headers. Mkv could be handled by one player, avi by another, ogg by a third etc., each resulting in a different User-Agent header.
All that makes device detection a very tricky business.
Having an "AirPlayer.conf" will at least narrow down the amount of clutter a bit.



