[Openal-devel] Singling out OpenAL Soft backends
chris.kcat at gmail.com
Thu Aug 18 17:15:55 PDT 2011
Hey guys. I've been having some ideas, and would like to get some input.
What I'm considering to do is to make it so OpenAL Soft will only enumerate
and use a single backend, depending on the system and what's available.
Playback and capture would be able to use separate backends, since some can't
do capture, but the idea is to limit duplicate devices and incompatible
As it is currently, for instance, on a majority of Linux systems, both ALSA
and PulseAudio devices would be enumerated. However, both like to take control
of the hardware, preventing the other from working. Additionally, PulseAudio
can hold on to the device for a few seconds after it closes, so an app that
opens a PulseAudio device will fail to open the equivalent ALSA device even
after closing the PulseAudio device, unless it waited for a few seconds.
Devices would also be enumerated multiple times with the only difference being
which backend is used. As long as the lib selects a backend that the system
can use, I don't see much point in exposing the same device multiple times.
All the backends should ultimately work the same.
A config option would be available to force another backend if there's a need,
but I don't think there would be a real need to enumerate between multiple
backends in the normal use-case, as long as the backend is working. Perhaps a
config option can be supplied to allow multiple backends, but I think by
default, only a single backend needs to be exposed.
I'm interested in outside thoughts on the matter.
More information about the Openal-devel