diff --git a/mini_al.h b/mini_al.h index b6a7f419..c3004d76 100644 --- a/mini_al.h +++ b/mini_al.h @@ -8786,8 +8786,8 @@ static struct const char* name; float scale; } g_malDefaultBufferSizeScalesALSA[] = { - {"bcm2835 IEC958/HDMI", 8.0f}, - {"bcm2835 ALSA", 8.0f} + {"bcm2835 IEC958/HDMI", 6.0f}, + {"bcm2835 ALSA", 6.0f} }; float mal_find_default_buffer_size_scale__alsa(const char* deviceName) @@ -9979,6 +9979,8 @@ mal_result mal_device_init__alsa(mal_context* pContext, mal_device_type type, co } + + // Hardware parameters. mal_snd_pcm_hw_params_t* pHWParams = (mal_snd_pcm_hw_params_t*)alloca(((mal_snd_pcm_hw_params_sizeof_proc)pContext->alsa.snd_pcm_hw_params_sizeof)()); mal_zero_memory(pHWParams, ((mal_snd_pcm_hw_params_sizeof_proc)pContext->alsa.snd_pcm_hw_params_sizeof)()); @@ -24331,7 +24333,7 @@ mal_uint32 mal_calculate_default_buffer_size_in_frames(mal_performance_profile p mal_uint32 sampleRateMS = (sampleRate/1000); mal_uint32 minBufferSize = sampleRateMS * mal_min(baseLatency / 5, 1); // <-- Guard against multiply by zero. - mal_uint32 maxBufferSize = sampleRateMS * (baseLatency * 20); + mal_uint32 maxBufferSize = sampleRateMS * (baseLatency * 40); mal_uint32 bufferSize = mal_scale_buffer_size((sampleRate/1000) * baseLatency, scale); return mal_clamp(bufferSize, minBufferSize, maxBufferSize);