From 585ad0481218f55bb036e20277b3d7c863d63225 Mon Sep 17 00:00:00 2001 From: David Reid Date: Fri, 24 Nov 2017 21:43:11 +1000 Subject: [PATCH] SDL: Fix incorrect buffer size calculations. --- mini_al.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mini_al.h b/mini_al.h index 37e7db77..1779e707 100644 --- a/mini_al.h +++ b/mini_al.h @@ -8634,7 +8634,7 @@ mal_result mal_device_init__sdl(mal_context* pContext, mal_device_type type, mal // SDL wants the buffer size to be a power of 2. The SDL_AudioSpec property for this is only a Uint16, so we need // to explicitly clamp this because it will be easy to overflow. - mal_uint32 bufferSize = pConfig->bufferSizeInFrames * pConfig->periods * pConfig->channels; + mal_uint32 bufferSize = pConfig->bufferSizeInFrames; if (bufferSize > 32768) { bufferSize = 32768; } else { @@ -8696,7 +8696,7 @@ mal_result mal_device_init__sdl(mal_context* pContext, mal_device_type type, mal pDevice->internalFormat = mal_format_from_sdl(obtainedSpec.format); pDevice->internalChannels = obtainedSpec.channels; pDevice->internalSampleRate = (mal_uint32)obtainedSpec.freq; - pDevice->bufferSizeInFrames = obtainedSpec.samples / obtainedSpec.channels; + pDevice->bufferSizeInFrames = obtainedSpec.samples; pDevice->periods = 1; // SDL doesn't seem to tell us what the period count is. Just set this 1. #if 0