From owner-freebsd-multimedia@FreeBSD.ORG Tue Jan 24 23:32:47 2012 Return-Path: Delivered-To: freebsd-multimedia@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A2E7E106564A; Tue, 24 Jan 2012 23:32:47 +0000 (UTC) (envelope-from mickael.maillot@gmail.com) Received: from mail-qw0-f54.google.com (mail-qw0-f54.google.com [209.85.216.54]) by mx1.freebsd.org (Postfix) with ESMTP id 2CBEA8FC0A; Tue, 24 Jan 2012 23:32:46 +0000 (UTC) Received: by qaea17 with SMTP id a17so3016589qae.13 for ; Tue, 24 Jan 2012 15:32:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=lnSQzcDliAr9bE6bRCN45Z3gXsBGzCKwL2XPaUSSC6Q=; b=UNw31NE5aOFk2/1cyOJLSfehiBl1kdomHjUbi3PZkqAWTQxsYJ93U9xWDufA6tmq0I BB7E5xf/NHkvnrugvqQoMSSLlPjNXsITzregk+DTOHzRHJvSd40AZYHHn66HMwtW8wRe x/52CJknjNk/5WwTiFHSAxdlFCHovtFTZuQd8= MIME-Version: 1.0 Received: by 10.224.188.209 with SMTP id db17mr12223540qab.60.1327447966390; Tue, 24 Jan 2012 15:32:46 -0800 (PST) Received: by 10.229.124.11 with HTTP; Tue, 24 Jan 2012 15:32:46 -0800 (PST) In-Reply-To: <4F1F34DB.9040405@FreeBSD.org> References: <4F0DE3FD.2020203@FreeBSD.org> <20120112121853.GC1429@procyon.xvoid.org> <4F0ED8D0.8080403@FreeBSD.org> <4F171D7A.4080003@FreeBSD.org> <4F177979.5010106@FreeBSD.org> <4F1ACBA8.6000203@FreeBSD.org> <4F1EB305.9000105@FreeBSD.org> <4F1EDD3D.6070800@FreeBSD.org> <4F1F31CA.5000507@FreeBSD.org> <4F1F34DB.9040405@FreeBSD.org> Date: Wed, 25 Jan 2012 00:32:46 +0100 Message-ID: From: =?ISO-8859-1?Q?Micka=EBl_Maillot?= To: Alexander Motin Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: freebsd-multimedia@freebsd.org, FreeBSD current Subject: Re: [RFT] Major snd_hda rewrite X-BeenThere: freebsd-multimedia@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Multimedia discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jan 2012 23:32:47 -0000 2012/1/24 Alexander Motin > On 01/25/12 00:33, Alexander Motin wrote: > >> On 01/25/12 00:13, Micka=EBl Maillot wrote: >> >>> 2012/1/24 Alexander Motin > >>> Here is it: http://people.freebsd.org/~__**mav/hda.HBR.patch >>> >>> > >>> It should activate HBR mode if you try to play stream with AC3 >>> format and 8 channels (>6Mbps). >>> >>> no change with the patch because when i SNDCTL_DSP_SETFMT to AFMT_AC3, >>> SNDCTL_DSP_CHANNELS always return 2 channels even if i >>> set SNDCTL_DSP_SPEED to 192000. >>> and i think it's why "if ((ch->fmt & AFMT_AC3) && (cchn =3D=3D 8))" can= 't be >>> true. >>> i checked my /v/l/messages and saw PCMDIR_PLAY ....chan_count=3D0x01. >>> >> >> 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. > 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, includin= g > forcing 2 channels for AC3. Luckily for not part for frequency is comment= ed > out. Further we may try to comment or modify part about number of channel= s. > > 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++] =3D SND_FORMAT(AFMT_AC3, 2, 0); >> + if (channels >=3D 8) >> + ch->fmtlist[i++] =3D SND_FORMAT(AFMT_AC3, 8, 0); >> } >> ch->fmtlist[i] =3D 0; >> i =3D 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.