[RFT] Major snd_hda rewrite
Zhihao Yuan
lichray at gmail.com
Wed Jan 25 04:47:52 UTC 2012
On Tue, Jan 24, 2012 at 5:39 PM, Alexander Motin <mav at freebsd.org> wrote:
> On 25.01.2012 01:32, Mickaël Maillot wrote:
>>
>> 2012/1/24 Alexander Motin <mav at freebsd.org <mailto:mav at freebsd.org>>
>> Number of channels should be set to 8 by application when it
>> expects bit
>> rate above 6Mbps. Sample rate, as I've described, just give more
>> fine
>> control. Increasing sample rate does not automatically increase
>> channels. They are orthogonal:
>> Rate 48 96 192 48 96 192
>> Channels 2 2 2 8 8 8
>> ------------------------------__----------------------------
>>
>> Mbps 1.5 3 6 12 24 49
>>
>>
>> ok so set 8 channels is just to allow more bandwidth.
>> i just looked at alsa hdmi code (because i never find oss code that can
>> play hd audio),
>> they set 192k and 8 channels for every DTS HD / TRUEHD / E-AC3 file, so
>> i was thinking to do the same.
>
>
> HBR mode (8 channels) is not always supported by hardware and not defined by
> HDMI 1.1 spec (not sure about 1.2). So I think if possible, it would be nice
> to differentiate them.
>
>> What I've forgot is to allow 8ch format. :) Add the patch below.
>> Hope
>> 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
>>
>> --- hdaa.c (revision 230511)
>> +++ hdaa.c (working copy)
>> @@ -4979,6 +4979,8 @@
>> }
>> if (HDA_PARAM_SUPP_STREAM___FORMATS_AC3(fmtcap)) {
>>
>> ch->fmtlist[i++] = SND_FORMAT(AFMT_AC3, 2, 0);
>> + if (channels >= 8)
>> + ch->fmtlist[i++] = SND_FORMAT(AFMT_AC3, 8, 0);
>> }
>> ch->fmtlist[i] = 0;
>> i = 0;
>>
>> But in your case I think it should be enough to just increase
>> sample
>> rate to 96 or 192KHz.
>>
>> so if my problem persist after settings 8 channels, i'll blame xbmc oss
>> part.
>
>
> Can't wait to know result. :)
>
> --
> Alexander Motin
>
> _______________________________________________
> freebsd-multimedia at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-multimedia
> To unsubscribe, send any mail to
> "freebsd-multimedia-unsubscribe at freebsd.org"
Oops, device_delete_children is not available on 8_RELENG.
--
Zhihao Yuan, nickname lichray
The best way to predict the future is to invent it.
___________________________________________________
4BSD -- http://4bsd.biz/
More information about the freebsd-multimedia
mailing list