[RFT] Major snd_hda rewrite

Mickaël Maillot mickael.maillot at gmail.com
Tue Jan 24 12:57:54 UTC 2012

2012/1/21 Alexander Motin <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

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

> What do you mean that you can't set more then 2 channels? I've never tried
> to set ac3 format with more then 2 channels, but s16le:7.1 and s32le:7.1
> should work fine. At least s16le:5.1 and s32le:5.1 are working perfectly
> for me. For HDA 24bit samples stored in memory as 32bit, so setting s24le
> format only cause extra 24->32bit conversion.
>  i never show things like PCMDIR_...: Stream setup.... in my messages, so
>> may be i use oss wrongly.
> They are printed only when hw.snd.verbose set to 4.
> ok thanks for the tips.

More information about the freebsd-current mailing list