Re: [RFT] Major snd_hda rewrite

看板FB_current作者時間14年前 (2012/01/25 13:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串52/59 (看更多)
On Tue, Jan 24, 2012 at 5:39 PM, Alexander Motin <mav@freebsd.org> wrote: > On 25.01.2012 01:32, Micka=C3=ABl Maillot wrote: >> >> 2012/1/24 Alexander Motin <mav@freebsd.org <mailto:mav@freebsd.org>> >> =C2=A0 =C2=A0 =C2=A0 =C2=A0Number of channels should be set to 8 by appl= ication when it >> =C2=A0 =C2=A0 =C2=A0 =C2=A0expects bit >> =C2=A0 =C2=A0 =C2=A0 =C2=A0rate above 6Mbps. Sample rate, as I've descri= bed, just give more >> =C2=A0 =C2=A0 =C2=A0 =C2=A0fine >> =C2=A0 =C2=A0 =C2=A0 =C2=A0control. Increasing sample rate does not auto= matically increase >> =C2=A0 =C2=A0 =C2=A0 =C2=A0channels. They are orthogonal: >> =C2=A0 =C2=A0 =C2=A0 =C2=A0Rate 48 96 192 48 96 192 >> =C2=A0 =C2=A0 =C2=A0 =C2=A0Channels 2 2 2 8 8 8 >> =C2=A0 =C2=A0 =C2=A0 =C2=A0------------------------------__-------------= --------------- >> >> =C2=A0 =C2=A0 =C2=A0 =C2=A0Mbps 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 n= ice > to differentiate them. > >> =C2=A0 =C2=A0 =C2=A0 =C2=A0What I've forgot is to allow 8ch format. :) A= dd the patch below. >> =C2=A0 =C2=A0 =C2=A0 =C2=A0Hope >> =C2=A0 =C2=A0 =C2=A0 =C2=A0sound(4) has no other limitations for it. >> >> =C2=A0 =C2=A0Hmm. Looks like there is some limitation. You may grep kern= el for >> =C2=A0 =C2=A0AFMT_PASSTHROUGH and find two "XXX force ..." comments and = code, >> =C2=A0 =C2=A0including forcing 2 channels for AC3. Luckily for not part = for >> =C2=A0 =C2=A0frequency is commented out. Further we may try to comment o= r modify >> =C2=A0 =C2=A0part about number of channels. >> >> spotted and commented >> >> =C2=A0 =C2=A0 =C2=A0 =C2=A0--- hdaa.c (revision 230511) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0+++ hdaa.c (working copy) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0@@ -4979,6 +4979,8 @@ >> =C2=A0 =C2=A0 =C2=A0 =C2=A0} >> =C2=A0 =C2=A0 =C2=A0 =C2=A0if (HDA_PARAM_SUPP_STREAM___FORMATS_AC3(fmtca= p)) { >> >> =C2=A0 =C2=A0 =C2=A0 =C2=A0ch->fmtlist[i++] =3D SND_FORMAT(AFMT_AC3, 2, = 0); >> =C2=A0 =C2=A0 =C2=A0 =C2=A0+ if (channels >=3D 8) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0+ ch->fmtlist[i++] =3D SND_FORMAT(AFMT_AC3, 8= , 0); >> =C2=A0 =C2=A0 =C2=A0 =C2=A0} >> =C2=A0 =C2=A0 =C2=A0 =C2=A0ch->fmtlist[i] =3D 0; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0i =3D 0; >> >> =C2=A0 =C2=A0 =C2=A0 =C2=A0But in your case I think it should be enough = to just increase >> sample >> =C2=A0 =C2=A0 =C2=A0 =C2=A0rate 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@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-multimedia > To unsubscribe, send any mail to > "freebsd-multimedia-unsubscribe@freebsd.org" Oops, device_delete_children is not available on 8_RELENG. --=20 Zhihao Yuan, nickname lichray The best way to predict the future is to invent it. ___________________________________________________ 4BSD -- http://4bsd.biz/ _______________________________________________ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
文章代碼(AID): #1F7vFIyD (FB_current)
討論串 (同標題文章)
文章代碼(AID): #1F7vFIyD (FB_current)