pw_init() is not thread-safe
pw_init()
calls setlocale()
which is notoriously not thread-safe and will happily crash the process if another thread uses locale data or gettext simultaneously. (This was already a problem for LibVLC in 2008, I'd have thought people would know better in 2022, but I digress.)
In an application that links with pipewire directly and calls pw_init()
early, that might be fine. In library code in a multi-threaded application this is simply fatal. pw_init()
cannot be called, and thus the entirety of libpipewire is ostensibly unusable.