[RFT] Major snd_hda rewrite
mickael.maillot at gmail.com
Wed Jan 25 07:42:20 UTC 2012
2012/1/25 Alexander Motin <mav at freebsd.org>
> What I've forgot is to allow 8ch format. :) Add the patch below.
>> sound(4) has no other limitations for it.
>> Hmm. Looks like there is some limitation. You may grep kernel for
>> AFMT_PASSTHROUGH and find two "XXX force ..." comments and code,
>> including forcing 2 channels for AC3. Luckily for not part for
>> frequency is commented out. Further we may try to comment or modify
>> part about number of channels.
>> spotted and commented
>> so if my problem persist after settings 8 channels, i'll blame xbmc oss
> Can't wait to know result. :)
> Alexander Motin
ok so unfortunately it's does not work :(
first: with vchan disable, i cant set format to AFMT_AC3, ioctl always
Jan 25 08:09:18 htpc kernel: pcm4: chn_setformat(): Format change
0x00100400 failed, falling back to 0x00100008
so may be my change in sys/dev/sound/pcm/channel.c is not good ? i just
/* XXX force stereo */
if (format & AFMT_PASSTHROUGH)
format = SND_FORMAT(format, AFMT_PASSTHROUGH_CHANNEL,
next with vchan: i can set ac3 to 2 channels and 8 channels.
when i try to play DTS HDMA or TRUEHD, i set ac3, 8 channels, 192k
and no sound ! before i had: dtshdma: some part of sound (like all data
cant be send) and truehd: some crapy bipbip
now everything seems to be ok for the player, procstat -f write counter
grows up, but no sound from my receiver: no channel input, nothing showed,
like nothing is send to him.
no error in xbmc.log or in messages:
Jan 25 08:15:35 htpc kernel: pcm4: chn_start(): VCHAN PARENT starting!
(PCMDIR_PLAY/running) (ready=8192 force=1 i=1 j=0 intrtimeout=2 latency=2ms)
Jan 25 08:15:35 htpc kernel: hdac1: 24576Kbps of 92160Kbps bandwidth used
Jan 25 08:15:35 htpc kernel: pcm4: PCMDIR_PLAY: Stream setup fmt=02800400
Jan 25 08:15:35 htpc kernel: pcm4: PCMDIR_PLAY: Stream setup nid=4:
fmt=0x1817, dfmt=0x0021, chan=0x0010, chan_count=0x07, stripe=1
Jan 25 08:15:35 htpc kernel: pcm4: chn_trigger() pcm4:play:dsp4.p0: calling
go=0x00000001 , prev=0xffffffff
Jan 25 08:15:35 htpc kernel: pcm4: chn_trigger() pcm4:virtual:dsp4.vp0:
calling go=0x00000001 , prev=0xffffffff
More information about the freebsd-current