tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Audio - In kernel audio mixing



Hi,

On Fri, 25 Nov 2016 06:49:26 coypu%sdf.org@localhost wrote:

> 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 updated nextaudio5-kern.diff.gz and it now includes the definition.

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

What is your underlying audio driver,  AFAICT it works with hdaudio, uaudio 
and Raspberry Pi vcaudio.

> - playing multiple streams lowers volume

Yes this is known ethier the sum of the streams would be louder whch may lead 
to clipping or the streams volume would have to be divided by the number or 
streams so that the resultant sum is no greater than the set master 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.

Is this with flash player or html5 multimedia content.  For me multiple 
instances of flash player work.

> - audioctl -a seems to still say play.rate=8000

In the diff for audioctl you would have to supply -p <pid> to audioctl to 
obtain the settings for a particular stream i.e audioctl -p <pid> -a.

audioctl -a would otherwize open a new stream and give parameters on that 
stream.  audioctl -d /dev/sound is the exception where by you'll get changed 
parameters as of the last process or audioctl on /dev/sound.

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

Could audioctl be killed or did you require a restart?

Thanks for taking the time to test this and provide feedback.

Best regards,

Nat.


Home | Main Index | Thread Index | Old Index