Not only did FAudio link to gstreamer but prior to this it linked to FFmpeg.
The gstreamer backend was removed in 22.02, FAudio, there assumption seems to be that wine wouldn’t require the gstreamer backend and will be using MediaFoundation…
On Wed, Mar 29, 2023 at 2:52 AM Rémi Bernon rbernon@codeweavers.com wrote:
On 3/29/23 02:31, Zebediah Figura wrote:
Hi all,
This may seem something of a controversial question, but I am concerned that FAudio is not a good fit for Wine, mainly because of its licensing considerations.
Recently I found a bug in FAudio wherein it does not properly handle unaligned buffers. While in the process of drafting a fix, I was stymied multiple times by its rather broken resampler, and when I sought to try to fix that, I found that it was a rather difficult endeavour, which led me to propose replacing it with an external library such as GStreamer. Unfortunately FAudio cannot, counterintuitively, link to LGPL code, because it needs to be able to run on embedded platforms, which (for reasons I do not understand) cannot ship any LGPL code.
While I can to some degree respect the decision of FAudio to target platforms that forbid copyleft licensing, I do not think this aligns well with the interests of the Wine project—a project which specifically chose copyleft licensing. More personally, I do not want to have to fix the FAudio resampler or implement another resampler with a non-copyleft license (and I am not even particularly sure that I can, given my familiarity with resamplers in LGPL projects such as GStreamer and Wine).
Besides this, it is probably worth noting that we do not seem to gain much from continuing to rely on FAudio. There would be the usual benefit of relying on upstream development, but development on FAudio seems very scarce, especially when restricted to parts relevant to Wine, and much of that is from Wine contributors anyway. (And, of course, due to our bundling practices, there is hardly the usual benefit of size or modularity in linking to external libraries.)
Of course we would be well served by simply importing the current version of FAudio; I do not mean to propose that we reimplement XAudio entirely, but rather begin to modify it in ways that would not be acceptable upstream.
This would mean replacing the resampler, as well as perhaps also the mixer, and probably with the ones from GStreamer, which is already a dependency of ours, and which has a very featureful resampler and mixer, and a much higher rate of development overall.
Do others in the Wine community have thoughts or opinions on this matter?
ἔρρωσθε, Zeb
Fwiw FAudio has linked with GStreamer in the past, conditionally at least.
-- Rémi Bernon rbernon@codeweavers.com