Closed pulento closed 1 year ago
The alsa lib cannot be statically linked(it's just a shim loader for other system libs, without a stable ABI between that shim and those libs), so unfortunately offering alsa in generic static builds is impossible.
If I understand correctly this happens for static and shared releases since ALSA lib are just stubs libraries ?
Can I use your scripts to compile it with ALSA support on my Debian 11 ?
Thanks !
Not sure what you mean. For example, if you're using pulseaudio, which installs an alsa plugin, which gets loaded by libalsa into every individual application. The ABI the libalsa stub that got statically linked into ffmpeg might be different than the one of the systems libalsa, resulting in erratic runtime behaviour/crashes. It's straight up impossible to statically links a (useful) alsa library that doesn't crash. You CAN link it statically, and include all the default plugins. But that would in turn make it impossible to use any plugins the system might rely in (pulseaudio, pipewire, ...), which is what the vast majority of systems use these days. Plus, I'm not sure if such a fully static setup wouldn't still end up trying to load system plugins, and in turn crash.
So unfortunately, alsa is out of the question for static builds. pulseaudio is supported fine, which also supports pipewire. That should cover almost every modern desktop system.
In theory you could write a custom script.d script for exactly your favourites Distro-alsa-lib version, and link it in a shared fashion. But that's something you will have to cook up yourself, it's not something natively supported.
Got it 👍
I'm not on a desktop but on a server not running X but I think pulseaudio can run anyway as a service so I'll try that first. Thanks
Using last build shared GPL and LGL they seems to not support ALSA:
Listing formats don't show ALSA either:
Seeing older bugs reports it seems they used to be compiled with ALSA support, it this deliberately ?
Thanks