They have deprecated libmad (finally, lol). We need to adapt our check:
player/src/audio_sdl_mixer.cpp: In member function 'void SdlMixerAudio::BGM_OnPlayedOnce()':
player/src/audio_sdl_mixer.cpp:246:38: error: 'MUS_MP3_MAD' was not declared in this scope
if (Mix_GetMusicType(bgm.get()) != MUS_MP3_MAD)
^~~~~~~~~~~
player/src/audio_sdl_mixer.cpp:246:38: note: suggested alternative: 'MUS_MP3'
if (Mix_GetMusicType(bgm.get()) != MUS_MP3_MAD)
^~~~~~~~~~~
MUS_MP3
https://hg.libsdl.org/SDL_mixer/file/131286a6b7b8/SDL_mixer.h#l135
And I wondered what a FTB file system is >.>
Additionally, this bug has been fixed, which we workaround in our code (BGS):
https://bugzilla.libsdl.org/show_bug.cgi?id=2094
So in the future, the mixer code could be simplified a bit.
I am going to use SDL_MIXER_VERSION_ATLEAST()(introduced here) for a quick fix, because this affects Arch (also on OBS).
Yeah thought the same about removing all the "BGS_*" code as this made the code very ugly and finally not needed anymore...
Keeping this open for the refactor.
Question is should we depend on 2.0.2 directly? Most distributions can use our audio_decoders directly.
We still keep compatibility with 1.2, so maybe we should error out with 2.0.0 and 2.0.1?
Or just play noise then, but let it build anyway (because the audio_decoders will do their work fine).
I would just allow it and play noise. We already did it this way before any complaints ^^
Started working on this.
Found a problem when removing BGS code: We will loose adpcm playback (which we currently do over SDL2 and BGS). However, can be done by libsndfile or we add it to our "fastwav" decoder.
Some sources to steal from:
Marked this as "Invalid". SDL mixer is full of bugs and workarounds - When #2302 is in the mixer can be slowly deprecated and this issue closed.
Most helpful comment
And I wondered what a FTB file system is >.>