Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
bc7feb4
update vendored wavpack.
sezero Apr 3, 2025
61ef73f
CI: linux workflows to run under ubuntu-latest.
sezero Apr 8, 2025
141b69c
cmake: add current directory to module search path in installed confi…
madebr Apr 8, 2025
4ce19d8
playmus, playwave: revise condition for unistd.h include
sezero Apr 15, 2025
bb1406a
upgrade vendored libxmp to latest 4.6.3 release
sezero May 13, 2025
b2c38cd
MSVC project: rebuilt libxmp dlls from the latest 4.6.3 release.
sezero May 14, 2025
92e9507
Revert 'music_mpg123.c: disable _FILE_OFFSET_BITS suffixes on libmpg1…
sezero May 18, 2025
50f885d
mpg123: support for MPG123_API_VERSION 49, i.e. mpg123 >= 1.33.0
sezero Jun 7, 2025
c1dd49c
update libmpg123 (for android build support fixes)
sezero Jun 10, 2025
9f4973f
Android.mk: disable libgme option by default.
sezero Jul 10, 2025
fd47f8b
ci: build MSVC release binary on windows-2025
madebr Jul 12, 2025
0e8e5c0
ci: updates for windows-latest compatibility
madebr Jul 12, 2025
1ae3f41
update to latest dr_flac.h from mainstream.
sezero Jul 23, 2025
bd3185b
include: Clarify lifetime of RWops in Mix_LoadMUS* calls with freesrc…
icculus Jul 24, 2025
51b73d0
CMakeLists: Use correct name for Tremor library.
icculus Jul 24, 2025
24cf1eb
Sync SDL2_mixer wiki -> header
SDLWikiBot Jul 24, 2025
d3b4d9c
minimp3: silence an incorrect -Wstringop-overflow warning from gcc >= 14
sezero Jul 24, 2025
ebf1447
minor whitespace
sezero Aug 5, 2025
6463498
android: support Google Play 16 kiB page size requirement
madebr Aug 7, 2025
8b2aa93
Revert "android: support Google Play 16 kiB page size requirement"
slouken Aug 7, 2025
c5ab721
release: build aarch64 libraries with 16kiB page size
madebr Aug 9, 2025
5455491
update vendored flac and vorbis.
sezero Aug 11, 2025
cafe851
update vendored ogg.
sezero Aug 11, 2025
0aaee40
Update NDK version to 28
madebr Aug 13, 2025
02ddf1c
update config.guess and config.sub from git://git.sv.gnu.org/config.git
sezero Aug 28, 2025
fb1f938
update vendored flac
sezero Sep 9, 2025
ea68955
update vendored libmpg123
sezero Sep 10, 2025
6e36a36
update vendored flac for yasm support
sezero Sep 10, 2025
49e988c
update dr_flac.h from mainstream.
sezero Sep 16, 2025
b6bf7e9
update dr_flac.h from mainstream.
sezero Oct 23, 2025
0756869
cmake: don't clear CMAKE_MODULE_PATH in SDL2_mixerConfig.cmake
madebr Oct 29, 2025
a9c1736
cmake: CMAKE_MODULE_PATH only needs to be modified when using a stati…
madebr Oct 29, 2025
3ecc5f3
update to latest dr_flac from mainstream
sezero Dec 1, 2025
0610da5
update vendored mpg123 for SIZEOF_OFF_T issues
sezero Dec 9, 2025
de722cb
update vendored wavpack.
sezero Dec 9, 2025
d66f44c
update vendored wavpack.
sezero Dec 10, 2025
845e742
update to latest dr_flac from mainstream
sezero Dec 16, 2025
c16689e
update vendored libxmp and libgme
sezero Dec 18, 2025
95402d6
update timidity.tar.gz url in README file.
sezero Dec 18, 2025
8634f8b
bump vendored opusfile
sezero Dec 21, 2025
e097e51
bump vendored opus
sezero Dec 21, 2025
defaefc
MSVC project: updated opus, opusfile and wavpack dll builds.
sezero Dec 21, 2025
3be0141
MSVC project: updated libogg dll builds.
sezero Dec 21, 2025
e2a734d
cmake: update PrivateSdlFunctions.cmake
madebr Jan 8, 2026
03306cf
- Remap channels from vorbis and opus sources to match SDL channels.
Jan 20, 2026
790b35d
Remap and don't discard buffers also on music_ogg_stb backend.
Jan 20, 2026
298fcf5
Fixed comment.
Jan 20, 2026
c1f8423
Makefile.os2: add new source remap_channels.c to build.
sezero Jan 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/actions/setup-ninja/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ description: 'Download ninja and add it to the PATH environment variable'
inputs:
version:
description: 'Ninja version'
default: '1.12.1'
default: '1.13.1'
runs:
using: 'composite'
steps:
Expand Down Expand Up @@ -41,17 +41,17 @@ runs:
path: '${{ runner.temp }}/${{ steps.calc.outputs.archive }}'
key: ${{ steps.calc.outputs.cache-key }}
- name: 'Download ninja ${{ inputs.version }} for ${{ runner.os }} (${{ runner.arch }})'
if: ${{ !steps.cache-restore.outputs.cache-hit }}
if: ${{ (!steps.cache-restore.outputs.cache-hit || steps.cache-restore.outputs.cache-hit == 'false') }}
shell: pwsh
run: |
Invoke-WebRequest "https://github.com/ninja-build/ninja/releases/download/v${{ inputs.version }}/${{ steps.calc.outputs.archive }}" -OutFile "${{ runner.temp }}/${{ steps.calc.outputs.archive }}"
- name: 'Cache ${{ steps.calc.outputs.archive }}'
if: ${{ !steps.cache-restore.outputs.cache-hit }}
if: ${{ (!steps.cache-restore.outputs.cache-hit || steps.cache-restore.outputs.cache-hit == 'false') }}
uses: actions/cache/save@v4
with:
path: '${{ runner.temp }}/${{ steps.calc.outputs.archive }}'
key: ${{ steps.calc.outputs.cache-key }}
- name: 'Extract libusb'
- name: 'Extract ninja'
shell: pwsh
run: |
7z "-o${{ runner.temp }}/ninja-${{ inputs.version }}-${{ runner.arch }}" x "${{ runner.temp }}/${{ steps.calc.outputs.archive }}"
Expand Down
60 changes: 60 additions & 0 deletions .github/actions/setup-yasm/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# The pre-built yasm binaries are built with an older MSVCRT,
# which is no longer installed on current Windows images.

name: 'Setup yasm'
description: 'Build yasm and add it to the PATH environment variable'
runs:
using: 'composite'
steps:
- name: 'Calculate variables'
id: calc
shell: sh
run: |
echo "cache-key=yasm-${{ runner.os }}-${{ runner.arch }}" >> ${GITHUB_OUTPUT}
- name: 'Restore yasm'
id: restore-yasm
uses: actions/cache/restore@v4
with:
path: |
${{ github.workspace }}/yasm
key: ${{ steps.calc.outputs.cache-key }}
- name: 'Verify cached yasm'
if: ${{ steps.restore-yasm.outputs.cache-hit }}
shell: pwsh
run: |
${{ github.workspace }}\yasm\bin\yasm --help
- name: 'Download yasm sources'
if: ${{ !steps.restore-yasm.outputs.cache-hit }}
uses: actions/checkout@v4
with:
repository: yasm/yasm
path: yasm-src
- name: 'Configure, build and install yasm'
if: ${{ !steps.restore-yasm.outputs.cache-hit }}
shell: pwsh
run: |
cmake -S yasm-src -B yasm-build -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/yasm -DCMAKE_INSTALL_LIBDIR=bin -DCMAKE_INSTALL_BINDIR=bin -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded
cmake --build yasm-build --parallel
cmake --install yasm-build
- name: 'Verify built yasm'
if: ${{ !steps.restore-yasm.outputs.cache-hit }}
shell: sh
run: |
set -e
if [ ! -f "yasm/bin/yasm.exe" -a -f "yasm/bin/vsyasm.exe" ]; then
cp "yasm/bin/vsyasm.exe" "yasm/bin/yasm.exe"
fi
yasm/bin/yasm --help
- name: 'Cache yasm'
if: ${{ !steps.restore-yasm.outputs.cache-hit }}
uses: actions/cache/save@v4
with:
path: |
${{ github.workspace }}/yasm
key: ${{ steps.calc.outputs.cache-key }}
enableCrossOsArchive: true
- name: 'Set output variables'
id: final
shell: pwsh
run: |
echo "${{ github.workspace }}/yasm/bin" >> $env:GITHUB_PATH
25 changes: 12 additions & 13 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,15 @@ jobs:
fail-fast: false
matrix:
platform:
- { name: Windows (MSVC+CMake), os: windows-2019, shell: sh, cmake: '-DSDL2MIXER_VENDORED=ON -GNinja', msvc: 1, shared: 1, static: 0 }
- { name: Windows (MSVC+CMake), os: windows-latest, shell: sh, cmake: '-DSDL2MIXER_VENDORED=ON -GNinja', msvc: 1, shared: 1, static: 0 }
- { name: Windows (mingw32+autotools), os: windows-latest, shell: 'msys2 {0}', msystem: mingw32, msys-env: mingw-w64-i686, shared: 1, static: 1 }
- { name: Windows (mingw64+CMake), os: windows-latest, shell: 'msys2 {0}', msystem: mingw64, msys-env: mingw-w64-x86_64, shared: 1, static: 0,
cmake: '-DSDL2MIXER_VENDORED=OFF -G "Ninja Multi-Config"' }
- { name: Linux (autotools), os: ubuntu-20.04, shell: sh, shared: 1, static: 1}
- { name: Linux (CMake), os: ubuntu-20.04, shell: sh, cmake: '-DSDL2MIXER_VENDORED=ON -GNinja', shared: 1, static: 0 }
- { name: 'Linux (CMake, static)', os: ubuntu-20.04, shell: sh, cmake: '-DSDL2MIXER_VENDORED=ON -DBUILD_SHARED_LIBS=OFF -GNinja', shared: 0, static: 1 }
- { name: Macos (autotools), os: macos-latest, shell: sh, shared: 1, static: 1 }
- { name: Macos (CMake), os: macos-latest, shell: sh, cmake: '-DSDL2MIXER_VENDORED=ON -GNinja', shared: 1, static: 0 }

- { name: Linux (autotools), os: ubuntu-latest, shell: sh, shared: 1, static: 1}
- { name: Linux (CMake), os: ubuntu-latest, shell: sh, cmake: '-DSDL2MIXER_VENDORED=ON -GNinja', shared: 1, static: 0 }
- { name: 'Linux (CMake, static)', os: ubuntu-latest, shell: sh, cmake: '-DSDL2MIXER_VENDORED=ON -DBUILD_SHARED_LIBS=OFF -GNinja', shared: 0, static: 1 }
- { name: Macos (autotools), os: macos-latest, shell: sh, shared: 1, static: 1 }
- { name: Macos (CMake), os: macos-latest, shell: sh, cmake: '-DSDL2MIXER_VENDORED=ON -GNinja', shared: 1, static: 0 }

steps:
- name: Set up MSYS2
Expand Down Expand Up @@ -95,13 +94,9 @@ jobs:
.github/fetch_sdl_vc.ps1
echo "SDL2_DIR=$Env:GITHUB_WORKSPACE/SDL2-devel-VC" >> $Env:GITHUB_ENV
echo "::endgroup::"
echo "::group::Downloading yasm"
.github/fetch_yasm.ps1
echo "${{ github.workspace }}" >> $Env:GITHUB_PATH
echo "::endgroup::"
- name: Setup Ninja for MSVC
- name: Set up ninja
uses: ./.github/actions/setup-ninja
if: ${{ !contains(matrix.platform.shell, 'msys2') }}
uses: aseprite/get-ninja@main
- uses: ilammy/msvc-dev-cmd@v1
if: "matrix.platform.msvc"
with:
Expand All @@ -112,6 +107,10 @@ jobs:
if: "runner.os == 'Linux' && matrix.platform.cmake"
run: ./build-scripts/test-versioning.sh

- name: Set up yasm for mpg123 (MSVC only)
uses: ./.github/actions/setup-yasm
if: ${{ matrix.platform.msvc }}

- name: Configure (CMake)
if: "matrix.platform.cmake"
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ jobs:

msvc:
needs: [src]
runs-on: windows-2019
runs-on: windows-2025
outputs:
VC-x86: ${{ steps.releaser.outputs.VC-x86 }}
VC-x64: ${{ steps.releaser.outputs.VC-x64 }}
Expand Down
8 changes: 4 additions & 4 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@
[submodule "external/opus"]
path = external/opus
url = https://github.com/libsdl-org/opus.git
branch = v1.4-SDL
branch = v1.4.x-SDL
[submodule "external/opusfile"]
path = external/opusfile
url = https://github.com/libsdl-org/opusfile.git
branch = v0.12-SDL
branch = v0.13-git-SDL
[submodule "external/tremor"]
path = external/tremor
url = https://github.com/libsdl-org/tremor.git
Expand All @@ -26,10 +26,10 @@
path = external/mpg123
url = https://github.com/libsdl-org/mpg123.git
branch = v1.31.3-SDL
[submodule "libxmp"]
[submodule "external/libxmp"]
path = external/libxmp
url = https://github.com/libsdl-org/libxmp.git
branch = 4.6.2-SDL
branch = 4.6.3-SDL
[submodule "external/wavpack"]
path = external/wavpack
url = https://github.com/libsdl-org/wavpack.git
Expand Down
3 changes: 1 addition & 2 deletions Android.mk
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ SUPPORT_WAVPACK ?= true
WAVPACK_LIBRARY_PATH := external/wavpack

# Enable this if you want to support loading music via libgme
SUPPORT_GME ?= true
SUPPORT_GME ?= false
GME_LIBRARY_PATH := external/libgme

# Enable this if you want to support loading MOD music via XMP-lite
Expand Down Expand Up @@ -92,7 +92,6 @@ LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/src/ \
$(LOCAL_PATH)/src/codecs \


LOCAL_SRC_FILES := \
$(subst $(LOCAL_PATH)/,, \
$(wildcard $(LOCAL_PATH)/src/*.c) \
Expand Down
3 changes: 2 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,7 @@ add_library(SDL2_mixer
src/codecs/music_wav.c
src/codecs/music_wavpack.c
src/codecs/music_xmp.c
src/codecs/remap_channels.c
src/effect_position.c
src/effect_stereoreverse.c
src/effects_internal.c
Expand Down Expand Up @@ -472,7 +473,7 @@ if(SDL2MIXER_VORBIS_TREMOR)
message(STATUS "Using system tremor")
find_package(tremor REQUIRED)
if(NOT SDL2MIXER_VORBIS_TREMOR_SHARED)
list(APPEND PC_REQUIRES tremor)
list(APPEND PC_REQUIRES vorbisidec)
endif()
endif()
if(SDL2MIXER_VORBIS_TREMOR_SHARED)
Expand Down
1 change: 1 addition & 0 deletions Makefile.os2
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ SRCS = utils.c effect_position.c effects_internal.c effect_stereoreverse.c mixer
# codec sources:
SRCS+= load_aiff.c load_voc.c music_wav.c &
music_ogg.c music_ogg_stb.c music_opus.c &
remap_channels.c &
music_flac.c music_drflac.c music_wavpack.c &
mp3utils.c music_mpg123.c music_minimp3.c &
music_xmp.c music_modplug.c music_gme.c &
Expand Down
2 changes: 1 addition & 1 deletion README.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ If you have built with FluidSynth support, you'll need to set the SDL_SOUNDFONTS
(On some Linux distributions you can install the fluid-soundfont-gm package)

To play MIDI files using Timidity, you'll need to get a complete set of GUS patches from:
http://www.libsdl.org/projects/mixer/timidity/timidity.tar.gz
https://www.libsdl.org/projects/old/SDL_mixer/timidity/timidity.tar.gz
and unpack them in /usr/local/lib under UNIX, and C:\ under Win32.

This library is under the zlib license, see the file "LICENSE.txt" for details.
Expand Down
10 changes: 2 additions & 8 deletions SDL2_mixerConfig.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -43,17 +43,13 @@ set(SDL2MIXER_WAVE @SDL2MIXER_WAVE@)
set(SDL2MIXER_WAVPACK @SDL2MIXER_WAVPACK@)

set(SDL2MIXER_SDL2_REQUIRED_VERSION @SDL_REQUIRED_VERSION@)

if(NOT SDL2MIXER_VENDORED)
set(_sdl_cmake_module_path "${CMAKE_MODULE_PATH}")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
endif()

if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL2_mixer-shared-targets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/SDL2_mixer-shared-targets.cmake")
endif()

if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL2_mixer-static-targets.cmake")
set(_sdl_cmake_module_path "${CMAKE_MODULE_PATH}")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")

include(CMakeFindDependencyMacro)
include(PkgConfigHelper)
Expand Down Expand Up @@ -114,9 +110,7 @@ if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL2_mixer-static-targets.cmake")
endif()
endif()
include("${CMAKE_CURRENT_LIST_DIR}/SDL2_mixer-static-targets.cmake")
endif()

if(NOT SDL2MIXER_VENDORED)
set(CMAKE_MODULE_PATH "${_sdl_cmake_module_path}")
unset(_sdl_cmake_module_path)
endif()
Loading