Load libraries dynamically in audio backends #1629

Open
opened 2026-02-20 21:08:43 -05:00 by deekerman · 0 comments
Owner

Originally created by @davidebeatrici on GitHub (Sep 13, 2019).

Originally assigned to: @davidebeatrici on GitHub.

Right now we link at compile time to the libraries required by audio backends.

What we should do, instead, is something similar to what we do for the audio codecs:

  1. Create a list with the known library names.
  2. Iterate through it until the library is opened successfully.
  3. Import the symbols we need (by saving the pointer).

The advantages:

  • Libraries are not dependencies anymore: if a library exists, the backend is available, otherwise it isn't. Mumble can still be compiled and run without it.
  • We can enable support for all backends by default without adding any dependencies.
  • Mumble is not "tied" to a specific library version (as long as the symbols we need still exist and don't have a different signature).
Originally created by @davidebeatrici on GitHub (Sep 13, 2019). Originally assigned to: @davidebeatrici on GitHub. Right now we link at compile time to the libraries required by audio backends. What we should do, instead, is something similar to what we do for the audio codecs: 1. Create a list with the known library names. 2. Iterate through it until the library is opened successfully. 3. Import the symbols we need (by saving the pointer). The advantages: - Libraries are not dependencies anymore: if a library exists, the backend is available, otherwise it isn't. Mumble can still be compiled and run without it. - We can enable support for all backends by default without adding any dependencies. - Mumble is not "tied" to a specific library version (as long as the symbols we need still exist and don't have a different signature).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/mumble-mumble-voip#1629
No description provided.