libsdl-org / SDL_mixer

An audio mixer that supports various file formats for Simple Directmedia Layer.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SDL mixer tries to load opusfile.dll instead of libopusfile-0.dll

W4RH4WK opened this issue · comments

I encountered an issue on Windows where I cannot initialize SDL mixer with OPUS support. I tracked the issue down to SDL mixer trying to load opusfile.dll at runtime while the provided DLL is actually named libopusfile-0.dll. Renaming the DLL solves the issue; however, I feel like this shouldn't be necessary. SDL mixer should look for libopusfile-0.dll.

The name of the opusfile library is provided by CMake via the compile definition OPUS_DYNAMIC.

SDL version: 2.28.4
SDL mixer version: 2.6.3

Edit: I just realized that when installing from source, the library is indeed named opusfile.dll. However, while the pre-built SDL mixer does not support OPUS, it comes with a libopusfile-0.dll. This is a bit confusing.

I fixed this in our vendored libraries, except gme and libxmp.

  • gme has a cmake script, and does not set it
  • libxmp's autotools also does not set the soversion suffix

I hardcoded the soversions in the cmake script, so when bumping the dependencies, these should get reviewed.
I also ignored MSVC, so msvc libraries will also have this version suffix, which is fine (imho).
There is still a difference between MSVC binaries and mingw binaries: MSVC does not add a lib prefix.

Please test the new git commits, and comment here when you see something wrong.
SDL3: 7754673
SDL2: 9ec0e0e