Red Hat Bugzilla – Bug 439847
[PATCH] Please update PulseAudio driver
Last modified: 2008-04-08 10:47:50 EDT
Please merge this patch I just prepared for SDL, which fixes the buffering in
SDL and thus makes the driver work with all games I tested.
If you merge this please make sure to drop SDL-1.2.12-preferalsa.patch.
- fixes buffering (i.e. reduces number of "fragments" to 2, doesn't defer
filling up of the buffer until the entire buffer ran completely empty.
- Drops $PASERVER and $PADEVICE env var support, since this is a duplication of
$PULSE_SERVER and $PULSE_SINK which the PA libs honor anyway.
I believe this is safe for F9 given the bad quality of the existing driver.
Also, the changes are minimal.
SDL_sound is an SDL add on library to add support for certain sound formats. The
pulse audiodriver is support of the main SDL package, changing component and
Thomas, I think we _really_ want this for F-9.
BTW, posted upstream as http://bugzilla.libsdl.org/show_bug.cgi?id=572
Anyone objects if I commit this to Rawhide (of course, assuming the ACLs are
Wait with this.
I have some questions about this:
- Why do you want to remove the preferalsa patch?
- Is possible that this patch is breaking any application?
- Why are you removing $PASERVER and $PADEVICE? Are these variables not in use
(In reply to comment #5)
> Wait with this.
> I have some questions about this:
> - Why do you want to remove the preferalsa patch?
Good question. I am stupid. Ignore this request.
> - Is possible that this patch is breaking any application?
Possible is everything. However, the current SDL driver is very buggy and the
new one is afaics correct. Hence even if the new driver might not be perfect, it
will certainly "unbreak" a lot of apps. Also notice that right now we where
using the ESD driver of SDL to connect to PA because the PA backend for SDL was
as buggy as it was.
So in summary: afaics this very unlikely to break any app.
> - Why are you removing $PASERVER and $PADEVICE? Are these variables not in use
> at all?
As far as I know nobody uses them. They are specific to the old SDL driver for
PA that noone used anyway because it was so buggy. Now, PA has env vars like
that anyway, and they work for all apps, not just SDL, hence to avoid confusion
and for the sake of removing redundant code I removed it with this patch.
Fixed in rawhide in package SDL-1.2.13-3.fc9.
Shouldn't SDL_pulseaudio_hack.sh be changed to use the native pulse driver
instead of esd now?
I think it should. Also, wouldn't it be better to make it rely on pulseaudio
itself, rather than alsa plugin?
That's already the case.
Is it? [ -e /usr/lib/alsa-lib/libasound_module_pcm_pulse.so -o -e
/usr/lib64/alsa-lib/libasound_module_pcm_pulse.so ] && export
SDL_AUDIODRIVER=esd seems to check for alsa plugin, not pulseaudio.
I think that the best solution would be to drop the hack altogether and just
modify the preference so that pulse is chosen over alsa if the daemon is running.
The assumption there is that the ALSA plugin is installed if and only if
PulseAudio is running. This used to be mostly true because the ALSA plugin made
ALSA completely unusable if it was installed and PA was not actually
running. :-) Now that AFAIK this has been fixed, this assumption is probably
not so true anymore.
(In reply to comment #13)
> The assumption there is that the ALSA plugin is installed if and only if
> PulseAudio is running.
The problem here is that the reverse is not true - one may have PA running
without alsa plugin installed. I use such configureation, sicnce alsa plugin
refuses to work with some apps I use, namely skype and etqw. Well, I guess I can
just set an environmental variable.