From f9e82031f47e254ea05c9562de2eba4c799d6015 Mon Sep 17 00:00:00 2001 From: Regan Green Date: Wed, 25 Mar 2026 20:44:13 -0400 Subject: [PATCH] Limit DirectSound maximum sample rate --- src/audio/directsound/SDL_directsound.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/audio/directsound/SDL_directsound.c b/src/audio/directsound/SDL_directsound.c index 3c79452fd3..7cf7298a54 100644 --- a/src/audio/directsound/SDL_directsound.c +++ b/src/audio/directsound/SDL_directsound.c @@ -526,6 +526,7 @@ static int DSOUND_OpenDevice(_THIS, const char *devname) tried_format = SDL_TRUE; this->spec.format = test_format; + this->spec.freq = SDL_min(DSBFREQUENCY_MAX, this->spec.freq); /* Update the fragment size as size in bytes */ SDL_CalculateAudioSpec(&this->spec); @@ -580,7 +581,7 @@ static int DSOUND_OpenDevice(_THIS, const char *devname) } wfmt.Format.wBitsPerSample = SDL_AUDIO_BITSIZE(this->spec.format); - wfmt.Format.nChannels = this->spec.channels; + wfmt.Format.nChannels = (WORD)this->spec.channels; wfmt.Format.nSamplesPerSec = this->spec.freq; wfmt.Format.nBlockAlign = wfmt.Format.nChannels * (wfmt.Format.wBitsPerSample / 8); wfmt.Format.nAvgBytesPerSec = wfmt.Format.nSamplesPerSec * wfmt.Format.nBlockAlign;