2017-01-23, 20:44
(2017-01-23, 19:23)wesk05 Wrote:(2017-01-23, 10:14)fritsch Wrote: Mind looking in the packer?
If you check the data sheet of the DP -> HDMI converter of the new nucs, you will see that it only supports 2 channels with 768 khz, aka 8 channels with 192 khz. But again, it's not a channel issue, but used for bandwidth. See: https://github.com/xbmc/xbmc/blob/master...C61937.cpp
I understand what you are saying. As a matter of fact, the link rate for HBR audio passtrhough is actually 768kHz, but when you use HBR passthrough, you have to set bit 1 to non-pcm. May be it is not and that is why the analyzer detects it as 2 channel 768kHz. I will have to check again whether it is set to pcm or non-pcm.
Here is a comment from Anssi Hannula from several years ago:
Quote: - set $CHANCOUNT and $RATE as per below - rate 192000 and channels 2 for IEC958 rate 192 kHz (for e.g. 48 kHz E-AC-3, and DTS-HD when the IEC958 rate was set to 192000 in ffmpeg) - rate 192000 and channels 8 for IEC958 rate 768 kHz (for most TrueHD files, and for DTS-HD when the rate was set to 768000) - note that having the 0x02 bit (non-pcm) set in AES0 is mandatory when $CHANCOUNT is larger than 2, as ALSA uses it to determine whether to use HBR or not. The additional 0x04 (non-copyright) I use above is not mandatory, but is the alsa default so I kept it.https://lists.freedesktop.org/archives/p...09380.html
Anssi Hannula
I only have very basic knowledge of C++ (actually all languages), but I did take a look at the code for the packer. I will check it against IEC 61937-1,3,5 and see whether there is anything out of norm. I did notice that only the preambles for Dolby are defined. I didn't see the ones for DTS and it also looked like Dolby preambles are being used for DTS?? (I could be interpreting the code incorrectly).
That's what we do, see: https://github.com/xbmc/xbmc/blob/master...A.cpp#L491 - for Android we have no influence besides setting the IEC Format.
See, especially: https://github.com/xbmc/xbmc/blob/master...A.cpp#L494 (0x02 | 0x04 = 0x06) - basically what Anssi (who wrote that code) said.