From 3a98c48f20afc3affb9255b4ec5d3d6427dbe3c0 Mon Sep 17 00:00:00 2001 From: Tim Ledbetter Date: Wed, 9 Aug 2023 23:29:13 +0100 Subject: [PATCH] Ports/SDL2: Avoid accumulation errors in resampler This adds a patch to the SDL2 port to fix a segfault which occurs in the resampler. Taken from this upstream commit: https://github.com/libsdl-org/SDL/commit/78f9710 This fixes a crash we were seeing in the julius port. --- ...oid-accumulation-errors-in-resampler.patch | 23 +++++++++++++++++++ Ports/SDL2/patches/ReadMe.md | 6 +++++ 2 files changed, 29 insertions(+) create mode 100644 Ports/SDL2/patches/0002-audio-Avoid-accumulation-errors-in-resampler.patch diff --git a/Ports/SDL2/patches/0002-audio-Avoid-accumulation-errors-in-resampler.patch b/Ports/SDL2/patches/0002-audio-Avoid-accumulation-errors-in-resampler.patch new file mode 100644 index 0000000000..8b8843a28b --- /dev/null +++ b/Ports/SDL2/patches/0002-audio-Avoid-accumulation-errors-in-resampler.patch @@ -0,0 +1,23 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ryan C. Gordon +Date: Sat, 5 Nov 2022 10:38:33 -0400 +Subject: [PATCH] audio: Avoid accumulation errors in resampler. + +Fixes #6391. +--- + src/audio/SDL_audiocvt.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/audio/SDL_audiocvt.c b/src/audio/SDL_audiocvt.c +index 85faa4b0b75a51c2121938d19a3303712ad13edf..841dd00d4b6a5c7d2789d5a655fd962cf014e3c6 100644 +--- a/src/audio/SDL_audiocvt.c ++++ b/src/audio/SDL_audiocvt.c +@@ -247,7 +247,7 @@ SDL_ResampleAudio(const int chans, const int inrate, const int outrate, + *(dst++) = outsample; + } + +- outtime += outtimeincr; ++ outtime = outtimeincr * i; + } + + return outframes * chans * sizeof (float); diff --git a/Ports/SDL2/patches/ReadMe.md b/Ports/SDL2/patches/ReadMe.md index 28ab27facc..454120e9e9 100644 --- a/Ports/SDL2/patches/ReadMe.md +++ b/Ports/SDL2/patches/ReadMe.md @@ -5,3 +5,9 @@ Add SerenityOS platform support +## `0002-audio-Avoid-accumulation-errors-in-resampler.patch` + +audio: Avoid accumulation errors in resampler. + +Fixes #6391. +