On 01/25/12 00:13, Mickaël Maillot wrote:
2012/1/24 Alexander Motin <m...@freebsd.org <mailto:m...@freebsd.org>>
    Here is it: http://people.freebsd.org/~__mav/hda.HBR.patch
    <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 == 8))" can't be
true.
i checked my /v/l/messages and saw PCMDIR_PLAY ....chan_count=0x01.

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

What I've forgot is to allow 8ch format. :) Add the patch below. Hope sound(4) has no other limitations for it.

--- 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.

--
Alexander Motin
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to