Re: [RFT] Major snd_hda rewrite

From: Zhihao Yuan <lichray_at_gmail.com>
Date: Tue, 24 Jan 2012 22:22:24 -0600
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)
>>        _at__at_ -4979,6 +4979,8 _at__at_
>>        }
>>        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/
Received on Wed Jan 25 2012 - 03:47:52 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:23 UTC