[RFT] Major snd_hda rewrite

Alexander Motin mav at FreeBSD.org
Tue Jan 24 16:33:09 UTC 2012

On 01/24/12 15:32, Alexander Motin wrote:
> On 01/24/12 14:57, Mickaël Maillot wrote:
>> 2012/1/21 Alexander Motin <mav at freebsd.org <mailto:mav at freebsd.org>>
>> From that description I can conclude that you are passing through
>> compressed DTS-HD and TrueHD streams to the receiver. What are the
>> bitrates of streams you are playing? It looks like your receiver
>> doesn't receives all data. If I understand right, to transfer with
>> compressed bitrates above 6.144Mbps special High Bit Rate mode
>> should be activated in CODEC, when data stream occupies all 8 HDMI
>> channels instead of 2. I haven't implemented this feature yet as my
>> receiver doesn't support such HD formats.
>> i dont think bitrate is over 6.144Mbps.
>> for TrueHD files, mediainfo reports:
>> Format profile : TrueHD / Core
>> Mode extension : CM (complete main)
>> Codec ID : 131
>> Bit rate mode : Variable / Constant
>> Bit rate : Unknown / 640 Kbps
>> Maximum bit rate : 2 868 Kbps / 640 Kbps
>> Channel(s) : 6 channels
>> and for DTS-HDMA, mediainfo can't calculate it, but from description,
>> all tested file have bitrate below 3689 kbps
> Then make sure that your player properly sets "sampling rate" for the
> playback. Data transferred as "16bit stereo", but depending on bit rate
> may have 48000, 96000 or 192000Hz sampling rate (up to 1.5Mbps, 3Mbps
> and 6Mbps respectively). For higher bit rates stream transferred as
> 8-channel (High Bit Rate mode) with same set of frequencies (but now up
> to 12, 24 and 49Mbps).
>> I'll try to make a patch for it a bit later and send you to try.
>> i'll be happy to try it.

Here is it: http://people.freebsd.org/~mav/hda.HBR.patch
It should activate HBR mode if you try to play stream with AC3 format 
and 8 channels (>6Mbps).

>> Until that time, is it possible to make your xbmc to decode those HD
>> streams into different number of uncompressed LPCM channels to play
>> it that way?
>> yes, it's just an option.
>> It would be interesting to test 6.0, 6.1, 7.0 and 7.1 LPCM
>> configurations with your receiver. Or at least normal definition 7.1
>> playback would be interesting to test (you can just set vchanformat
>> to s16le:7.1 or s32le:7.1 and play anything).
>> i sucessfully tried 6.1 and 7.1 LPCM in 16 bits.
>> just a small channel order issue (center and a surround back inversion)
>> which can be solved easily.
> In what number of channels which channels are swapped specifically? I've
> compared mapping I am setting in driver with data I have and found no
> problem. What channel order for 7.1 uses xbmc? sound(4) uses: Left,
> Right, Rear Left, Rear Right, Center, LFE, Side Left, Side Right. I've
> never could check what mplayer thinks about it because I have no such
> such media. Can you give me some example?
>> i'll add 32bits support in XBMC later for my test but from what you say,
>> it'll not work because 8 channels / 48khz / 16 bits = 6.144 Mbit/s.
> 6Mbps limitation is only for data, as they use only two channels by
> default. Audio stream has no such limit.

Alexander Motin

More information about the freebsd-current mailing list