[RFT] Major snd_hda rewrite

Alexander Motin mav at FreeBSD.org
Tue Jan 24 13:33:01 UTC 2012

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.
>     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