Renderer detection solution

Discuss media renderers like Xbox 360, TVs, smartphones, etc.
SpeedyQ
Posts: 173
Joined: Tue Jul 03, 2012 9:43 pm

Renderer detection solution

Post by SpeedyQ »

I am looking for an advice or solution to the renderer detection.

I own a Yamaha RX-V773 receiver, used for audio streaming.
I have created a .conf file for it and it streams perfectly.
However at installation time I have to manualy install the .conf file, because the receiver seems to be detected using the same data as configured in the Streamium.conf file.
So right now my workaround is to leave only the renderer config files in the renderers directory that I actually use (including my yamaha renderer config; see attachment).

So my questions:
1. Is there a way to distinguish further for the correct renderer apart from the options (UserAgentSearch, UserAgentAdditionalHeader, UserAgentAdditionalHeaderSearch) that we currently have?
2. If the answer to question 1 is 'No', is it possible to add funtionality in a future release to let the user choose at installation time which renderer configs he wishes to install?

(And by the way, feel free to add the attachment to the UMS distribution because it works just fine...)
Attachments
YamahaRXV773.conf
(1.72 KiB) Downloaded 552 times
User avatar
Optimus_prime
Posts: 678
Joined: Fri Jun 01, 2012 6:39 pm
Location: Sydney, Australia

Re: Renderer detection solution

Post by Optimus_prime »

SpeedyQ could you post me a debug log set on trace. you can some instructions here viewtopic.php?f=9&t=556
thats if you need them. I would like to see what your RX-V773 is sending out as my RX-V3900 is easily identified so i would just like to check
How Ask For Support
Remember, Debug Log's Can/Will Help and Explain your issues, we're not mind reader's but here to help
OS's I Use And Can Assist With: Windows 7/8, Mac OS-X 10.8 & 10.9
Mac OS-X Java 7 Builds Mac OS-X Java 7 Forum
elsabio
Posts: 17
Joined: Thu Jan 31, 2013 7:52 am
Location: UK

Re: Renderer detection solution

Post by elsabio »

This must be a very common chipset as my Naim Uniti (and from another thread, a Denon receiver) seem to be returning the same headers.
What's more, while originally my Unit2 was matched to the Streamium, that configuration did not work. I wrote a specific config tor the device too (it's here on another thread) but of course, I have to move the Streamium.conf out of the way for it to work. I have no idea if my config also works for the Streamium.

[Optimus Prime] If you want to see my debug log for the returned headers I'll attach them, but there is quite a lot on my network so it needs a little picking over!

Mark.
SpeedyQ
Posts: 173
Joined: Tue Jul 03, 2012 9:43 pm

Re: Renderer detection solution

Post by SpeedyQ »

This is the interesting part of the debug.log on log level TRACE
with the USER-AGENT string showing as: KnOS/3.2 bridgeCo-DMP/3.0 DLNADOC/1.50 INTEL_NMPR/2.0

Code: Select all

...
TRACE 2013-05-01 23:12:05.443 [New I/O server boss #36] Creating new pipeline
TRACE 2013-05-01 23:12:05.443 [New I/O worker #28] Opened request handler on socket /192.168.1.15:1737
TRACE 2013-05-01 23:12:05.443 [New I/O worker #28] Request: HTTP/1.1 : GET : description/fetch
TRACE 2013-05-01 23:12:05.443 [New I/O worker #28] Matched media renderer "Yamaha RX-V773" based on address /192.168.1.15
TRACE 2013-05-01 23:12:05.443 [New I/O worker #28] Received on socket: Accept: */*
TRACE 2013-05-01 23:12:05.443 [New I/O worker #28] Received on socket: Connection: close
TRACE 2013-05-01 23:12:05.443 [New I/O worker #28] Received on socket: Host: 192.168.1.10:5001
TRACE 2013-05-01 23:12:05.443 [New I/O worker #28] Received on socket: User-Agent: Mozilla/4.0 (compatible)
TRACE 2013-05-01 23:12:05.443 [New I/O worker #28] Recognized media renderer: Yamaha RX-V773
TRACE 2013-05-01 23:12:05.443 [New I/O worker #28] HTTP: description/fetch / 0-0
TRACE 2013-05-01 23:12:05.443 [New I/O worker #28] Sent to socket: Accept-Ranges: bytes
TRACE 2013-05-01 23:12:05.443 [New I/O worker #28] Sent to socket: Cache-Control: no-cache
TRACE 2013-05-01 23:12:05.443 [New I/O worker #28] Sent to socket: Connection: keep-alive
TRACE 2013-05-01 23:12:05.443 [New I/O worker #28] Sent to socket: Content-Length: 2012
TRACE 2013-05-01 23:12:05.443 [New I/O worker #28] Sent to socket: Content-Type: text/xml; charset="utf-8"
TRACE 2013-05-01 23:12:05.443 [New I/O worker #28] Sent to socket: Expires: 0
TRACE 2013-05-01 23:12:05.443 [New I/O worker #28] Sent to socket: Server: Windows_7-amd64-6.1, UPnP/1.0, UMS/2.6.3
TRACE 2013-05-01 23:12:05.771 [New I/O server boss #36] Creating new pipeline
TRACE 2013-05-01 23:12:05.771 [New I/O worker #29] Opened request handler on socket /192.168.1.15:1738
TRACE 2013-05-01 23:12:05.771 [New I/O worker #29] Request: HTTP/1.1 : SUBSCRIBE : upnp/event/content_directory
TRACE 2013-05-01 23:12:05.771 [New I/O worker #29] Matched media renderer "Yamaha RX-V773" based on address /192.168.1.15
TRACE 2013-05-01 23:12:05.771 [New I/O worker #29] Received on socket: CALLBACK: <http://192.168.1.15:1900/>
TRACE 2013-05-01 23:12:05.771 [New I/O worker #29] Received on socket: CONNECTION: close
TRACE 2013-05-01 23:12:05.771 [New I/O worker #29] Received on socket: Host: 192.168.1.10:5001
TRACE 2013-05-01 23:12:05.771 [New I/O worker #29] Received on socket: NT: upnp:event
TRACE 2013-05-01 23:12:05.771 [New I/O worker #29] Received on socket: TIMEOUT: Second-300
TRACE 2013-05-01 23:12:05.771 [New I/O worker #29] Recognized media renderer: Yamaha RX-V773
TRACE 2013-05-01 23:12:05.771 [New I/O worker #29] HTTP: upnp/event/content_directory / 0-0
TRACE 2013-05-01 23:12:05.771 [New I/O worker #29] Sent to socket: Content-Length: 307
TRACE 2013-05-01 23:12:05.771 [New I/O worker #29] Sent to socket: Server: Windows_7-amd64-6.1, UPnP/1.0, UMS/2.6.3
TRACE 2013-05-01 23:12:05.771 [New I/O worker #29] Sent to socket: SID: uuid:ebbb7981-ccd8-3252-ad23-83e32f84c363
TRACE 2013-05-01 23:12:05.771 [New I/O worker #29] Sent to socket: TIMEOUT: Second-1800
TRACE 2013-05-01 23:12:07.893 [New I/O server boss #36] Creating new pipeline
TRACE 2013-05-01 23:12:08.111 [New I/O worker #30] Opened request handler on socket /192.168.1.15:1739
TRACE 2013-05-01 23:12:08.111 [New I/O worker #30] Request: HTTP/1.1 : POST : upnp/control/content_directory
TRACE 2013-05-01 23:12:08.111 [New I/O worker #30] Matched media renderer "Yamaha RX-V773" based on address /192.168.1.15
TRACE 2013-05-01 23:12:08.111 [New I/O worker #30] Received on socket: CONNECTION: close
TRACE 2013-05-01 23:12:08.111 [New I/O worker #30] Received on socket: Content-Length: 291
TRACE 2013-05-01 23:12:08.111 [New I/O worker #30] Received on socket: CONTENT-TYPE: text/xml ; charset="utf-8"
TRACE 2013-05-01 23:12:08.111 [New I/O worker #30] Received on socket: Host: 192.168.1.10:5001
TRACE 2013-05-01 23:12:08.111 [New I/O worker #30] Received on socket: SOAPACTION: "urn:schemas-upnp-org:service:ContentDirectory:1#GetSearchCapabilities"
TRACE 2013-05-01 23:12:08.111 [New I/O worker #30] Received on socket: USER-AGENT: KnOS/3.2 bridgeCo-DMP/3.0 DLNADOC/1.50 INTEL_NMPR/2.0
TRACE 2013-05-01 23:12:08.111 [New I/O worker #30] Recognized media renderer: Yamaha RX-V773
TRACE 2013-05-01 23:12:08.111 [New I/O worker #30] HTTP: upnp/control/content_directory / 0-0
TRACE 2013-05-01 23:12:08.111 [New I/O worker #30] Sent to socket: Content-Length: 354
TRACE 2013-05-01 23:12:08.111 [New I/O worker #30] Sent to socket: Content-Type: text/xml; charset="utf-8"
TRACE 2013-05-01 23:12:08.111 [New I/O worker #30] Sent to socket: Server: Windows_7-amd64-6.1, UPnP/1.0, UMS/2.6.3
TRACE 2013-05-01 23:12:08.111 [New I/O server boss #36] Creating new pipeline
TRACE 2013-05-01 23:12:08.329 [New I/O worker #31] Opened request handler on socket /192.168.1.15:1740
TRACE 2013-05-01 23:12:08.329 [New I/O worker #31] Request: HTTP/1.1 : POST : upnp/control/content_directory
TRACE 2013-05-01 23:12:08.329 [New I/O worker #31] Matched media renderer "Yamaha RX-V773" based on address /192.168.1.15
TRACE 2013-05-01 23:12:08.329 [New I/O worker #31] Received on socket: CONNECTION: close
TRACE 2013-05-01 23:12:08.329 [New I/O worker #31] Received on socket: Content-Length: 289
TRACE 2013-05-01 23:12:08.329 [New I/O worker #31] Received on socket: CONTENT-TYPE: text/xml ; charset="utf-8"
TRACE 2013-05-01 23:12:08.329 [New I/O worker #31] Received on socket: Host: 192.168.1.10:5001
TRACE 2013-05-01 23:12:08.329 [New I/O worker #31] Received on socket: SOAPACTION: "urn:schemas-upnp-org:service:ContentDirectory:1#GetSortCapabilities"
TRACE 2013-05-01 23:12:08.329 [New I/O worker #31] Received on socket: USER-AGENT: KnOS/3.2 bridgeCo-DMP/3.0 DLNADOC/1.50 INTEL_NMPR/2.0
TRACE 2013-05-01 23:12:08.329 [New I/O worker #31] Recognized media renderer: Yamaha RX-V773
TRACE 2013-05-01 23:12:08.329 [New I/O worker #31] HTTP: upnp/control/content_directory / 0-0
TRACE 2013-05-01 23:12:08.329 [New I/O worker #31] Sent to socket: Content-Length: 346
TRACE 2013-05-01 23:12:08.329 [New I/O worker #31] Sent to socket: Content-Type: text/xml; charset="utf-8"
TRACE 2013-05-01 23:12:08.329 [New I/O worker #31] Sent to socket: Server: Windows_7-amd64-6.1, UPnP/1.0, UMS/2.6.3
Last edited by SpeedyQ on Thu May 02, 2013 9:44 am, edited 1 time in total.
SpeedyQ
Posts: 173
Joined: Tue Jul 03, 2012 9:43 pm

Re: Renderer detection solution

Post by SpeedyQ »

elsabio wrote:This must be a very common chipset as my Naim Uniti (and from another thread, a Denon receiver) seem to be returning the same headers.
What's more, while originally my Unit2 was matched to the Streamium, that configuration did not work. I wrote a specific config tor the device too (it's here on another thread) but of course, I have to move the Streamium.conf out of the way for it to work. I have no idea if my config also works for the Streamium.

[Optimus Prime] If you want to see my debug log for the returned headers I'll attach them, but there is quite a lot on my network so it needs a little picking over!

Mark.
I agree with you elsabio, it seems that more receivers share the same header, I have seen that in posts of others as well, so this issue is not restricted to my Yamaha receiver only.
Thanks for confirming and sharing.
User avatar
Optimus_prime
Posts: 678
Joined: Fri Jun 01, 2012 6:39 pm
Location: Sydney, Australia

Re: Renderer detection solution

Post by Optimus_prime »

Interesting, my RX-V3900 comes back with this "User-Agent: Network_Receiver/2.0 (RX-V3900) UPnP/1.0 DLNADOC/1.00"
Sorry to be a pain but can post me the full debug log i just would like to check as the other .conf files for yamaha contain the model in the User-Agent section
How Ask For Support
Remember, Debug Log's Can/Will Help and Explain your issues, we're not mind reader's but here to help
OS's I Use And Can Assist With: Windows 7/8, Mac OS-X 10.8 & 10.9
Mac OS-X Java 7 Builds Mac OS-X Java 7 Forum
SpeedyQ
Posts: 173
Joined: Tue Jul 03, 2012 9:43 pm

Re: Renderer detection solution

Post by SpeedyQ »

Hi Optimus,

I'm not sure if you get more info out of the debug.log. At the point where UMS is reading the renderer config files, the log level is still DEBUG and I can't set it to TRACE on startup.
If I restart the server it is not reading the renderer config files again. Quiting and starting UMS again start in DEBUG and not in TRACE.
So for this run I have included all Yamaha renderer config files.
Attachments
debug.log
(77.29 KiB) Downloaded 508 times
User avatar
Optimus_prime
Posts: 678
Joined: Fri Jun 01, 2012 6:39 pm
Location: Sydney, Australia

Re: Renderer detection solution

Post by Optimus_prime »

Cheer's mate, it looks like yamaha have gone with a different chipset/drivers for this and there new amp series. You won't ever be able to distinguish between different types of equipment that use the same User-Agent string but i think you already know that. Until we incorporate another/better method (and i'm in no way saying i'll be able to help much) to detect renderer's in UMS in afraid we all will have to continue to move other renderer.conf files out of our renderer directory :cry:
I have the same problem trying to distinguish two different types of samsung (D and E series) tv's on my network (one's better than the other) and i know what it's like trying to detect them sperately.

elsabio: Post the trace debug log if you want and i'll give it a shot trying to see if we can come up with a better conf file. Also try and move any conf files that detect your device out of your file while you do it as i may get some more info.
How Ask For Support
Remember, Debug Log's Can/Will Help and Explain your issues, we're not mind reader's but here to help
OS's I Use And Can Assist With: Windows 7/8, Mac OS-X 10.8 & 10.9
Mac OS-X Java 7 Builds Mac OS-X Java 7 Forum
elsabio
Posts: 17
Joined: Thu Jan 31, 2013 7:52 am
Location: UK

Re: Renderer detection solution

Post by elsabio »

Here is a debug.log from a startup session with the Naim Uniti2. Some background ...

1. The trace option was enabled in logback.xml so you see everything at TRACE level from startup
2. The device you are interested in (there are several on the network) is on IP 192.168.0.179 (to host 192.168.0.188)
3. The UMS server here is built from a very recent git pull from master (I'm working on some ideas!)
4. There are no renderer .conf files accessible at the time I ran this test
5. The log goes on to play a track; clearly that is way too far - but shows that the default "unknown renderer" can't support this device :-)
6. I have a working config posted on another thread viewtopic.php?f=5&t=863. Maybe it is possible to combine the numerous configs for this http header match into something for everyone - but that requires testing in a lot of places.

I think the recognition problem is potentially very difficult. We could provide preferences for individuals at install time - but what of users that have several conflicting devices? We could extend the match with http + say IP, but that will break with simple (ie, no reservations) dhcp networks. Or there is the lowest common denominator solution - but I for one certainly don't want needless resampling or transcoding of my high quality audio streams.

Enjoy :-)
Attachments
debug.log
Connecting to Naim Uniti2
(223.92 KiB) Downloaded 511 times
SpeedyQ
Posts: 173
Joined: Tue Jul 03, 2012 9:43 pm

Re: Renderer detection solution

Post by SpeedyQ »

Ok, Optimus your answer is clear so that leaves us with my second question of my opening post or rather my suggestion to move not required config files out of the way during installation.
Do I have to open a new topic for that in the 'Feature Suggestions' section?
Post Reply