On 6/8/21 2:49 PM, Andrew Eikum wrote:
On Fri, Jun 04, 2021 at 04:43:36PM -0500, Zebediah Figura wrote:
libmpg123 is readily available in Mac OS package managers.
Brendan found a single-file MP3 decoder library which we could use in place of mpg123:
https://github.com/mackron/dr_libs/blob/master/dr_mp3.h
Alexandre said it'd be nice to explore this option so we can drop the mpg123 dependency for l3codeca and mp3dmod entirely and have one less thing to convert to PE.
Have any thoughts on that option?
I'm really not a fan of embedding sources like that in general, especially when libmpg123 is heavily optimized and still well-maintained. We used to embed libmpg123, for that matter.
I'd much rather see PE libmpg123. It seems to me that PE depedencies are a pretty hard dependency for some things (vkd3d, FAudio come to mind) and at that point I see no reason not to use PE libmpg123 as well.
That's part of the motivation for removing the Mac backend—it can't be converted to PE. The other motivation is that there's not really anyone familiar with it who can maintain it anymore, and according to our Mac experts mpg123 just works.
I think it's past time that we started a conversation with distribution maintainers about how they'd like to ship PE dependencies. We've already converted some DLLs that we probably didn't need to (mscms, user32, dwrite, part of gdi32 immediately come to mind; there may be others.) I think we definitely should be using PE libraries for mpg123, gsm, vkd3d, FAudio, and I'm guessing also libxml2. It might be nice to undo the libz source imports as well; note that some distributions already ship PE libz.