Commit dbd236da authored by David Reid's avatar David Reid

Don't be so agressive with RPI buffer scaling.

parent 78e4de8b
...@@ -8786,8 +8786,8 @@ static struct ...@@ -8786,8 +8786,8 @@ static struct
const char* name; const char* name;
float scale; float scale;
} g_malDefaultBufferSizeScalesALSA[] = { } g_malDefaultBufferSizeScalesALSA[] = {
{"bcm2835 IEC958/HDMI", 8.0f}, {"bcm2835 IEC958/HDMI", 6.0f},
{"bcm2835 ALSA", 8.0f} {"bcm2835 ALSA", 6.0f}
}; };
float mal_find_default_buffer_size_scale__alsa(const char* deviceName) 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 ...@@ -9979,6 +9979,8 @@ mal_result mal_device_init__alsa(mal_context* pContext, mal_device_type type, co
} }
// Hardware parameters. // 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_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)()); 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 ...@@ -24331,7 +24333,7 @@ mal_uint32 mal_calculate_default_buffer_size_in_frames(mal_performance_profile p
mal_uint32 sampleRateMS = (sampleRate/1000); mal_uint32 sampleRateMS = (sampleRate/1000);
mal_uint32 minBufferSize = sampleRateMS * mal_min(baseLatency / 5, 1); // <-- Guard against multiply by zero. 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); mal_uint32 bufferSize = mal_scale_buffer_size((sampleRate/1000) * baseLatency, scale);
return mal_clamp(bufferSize, minBufferSize, maxBufferSize); return mal_clamp(bufferSize, minBufferSize, maxBufferSize);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment