On Sunday 12 April 2009 10:48:27 Garth Dahlstrom wrote:
> AFAIK, Flash is not pulse aware, i.e. it hogs the ALSA device it opens so
> other ALSA apps can't use it.   

You're doing it wrong :) On my computer, flash plays though ALSA which in turn 
goes through pulse. The pulse Volume control calls it 'ALSA plug-in [firefox]: 
ALSA Playback'. I can play other things at the same time no problem.

Also, there's two levels of 'hogging the ALSA device'. Pulse does it one way: 
it asks the OS to not let anyone else use it, and ALSA apps on their own (what 
people see with flash) will do it another way: each will allocate a device, 
until they can't allocate any more. My desktop soundcard has 32 channels that 
it'll mix, I think my laptop has 1. The dmix ALSA driver thing fixes this too, 
by combining the /n/ software channels into one that goes to the hardware. I 
have a feeling that even with OSS emulation, attempting to use OSS will bypass 
dmix, locking down a channel on the card, possibly the only one.

> My understanding of pasuspend is it
> suspends pulse so devices can access /dev/dsp directly.   I doubt that
> pasuspend will help Mixxx because the pulse deamon isn't blocking Mixxx
> talking to ALSA (ALSA seems to pulse aware to some degree).

Mixxx won't work with pulse's ALSA emulation if it's using mmap, because 
that's not included in the emulated environment. It's not that ALSA is pulse-
aware, it's that pulse is ALSA aware, and takes over from it, providing an 
almost-ALSA interface. Even if you fixed portaudio to work with pulse, you 
still don't want it to be there if you can avoid it, as it'll add latency.

Pasuspender will get pulse out of the way, opening up direct hardware access 
to ALSA applications. They won't be talking to pulse, they'll be talking to 
the kernel.

The proof, however, is in the testing. I launched the flash player in the 
last.fm website, and started it playing. I ran 'pasuspender bash' in the 
shell, and the flash playback stopped. When I exited the shell, it started 
again. That is exactly what you want to happen.

Fire up 'pavucontrol' and you can see how each application is talking to 
pulse.

-- 
Robin <[email protected]> JabberID: <[email protected]>
http://www.kallisti.net.nz/blog       |||       http://identi.ca/eythian

PGP Key 0xA99CEB6D = 5957 6D23 8B16 EFAB FEF8  7175 14D3 6485 A99C EB6D

Attachment: signature.asc
Description: This is a digitally signed message part.

------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to