tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Audio - In kernel audio mixing
On Wed, Nov 23, 2016 at 12:22:05PM +1100, Nathanial Sloss wrote:
> Hi,
>
> I've made changes to in kernel audio mixing and made them available at
> ftp.NetBSD.org/pub/NetBSD/misc/nat/nextaudio5-kern.gz
>
> This patch includes only changes to audio the synthesized spkr device will be
> in a follow up email.
>
> New in this version a new audio ioctl to select your audio channel based on
> process id of it's controlling process, changes to audioctl(1) to demonstrate
> this.
>
> /dev/sound keeps setting of the last process that changed parameters and it is
> possible to use audioctl(1) on /dev/sound to set parameters before opening
> /dev/sound.
>
> Simultaneous recording channels with independent volume / recording paraeter
> control.
>
> Also a sysctl to set the common format use full for when hw available
> precision and or channels are greater than 2ch 16 bit 44100 Hz.
>
> Please take a look, if there are no objections I would like to commit this in
> two weeks.
>
> Best regards,
>
> Nat
I've mostly tried to use it, not review the code..
Please include the definition of D_MCLOSE in the diff, otherwise it does not compile.
I've tried to use it with firefox (PKG_DEFAULT_OPTIONS="-pulseaudio oss") and mpv.
Both seem to have problems:
- audio seems to be underrunning maybe? even when playing a single stream. It's
periodically broken. I've tried to adjust buffer size but to no avail.
- playing multiple streams lowers volume
- firefox is unable to play audio from multiple tabs, I don't know what is wrong with it.
changing to output to /dev/sound did not help.
If you'd like to poke around, note it's easier to delete work/.build_done to retry.
- audioctl -a seems to still say play.rate=8000
- I ended up with `audioctl -a` hanging, with this trace:
sleepq_block() at sleepq_block+0x97
cv_wait_sig() at cv_wait_sig+0xfe
audio_drain() at audio_drain+0xfc
audio_close() at audio_close+0x26b
audioclose() at audioclose+0xe7
spec_close() at spec_close+0x11a
VOP_CLOSE() at VOP_CLOSE+0x33
vn_close() at vn_close+0x36
closef() at closef+0x54
fd_free() at fd_free+0xcb
exit1() at exit1+0x11d
sys_exit() at sys_exit+0x3d
syscall() at syscall+0x15b
--- syscall (number 1) ---
734e91139efa:
Home |
Main Index |
Thread Index |
Old Index