Don't choose 16-bit format first!

This commit is contained in:
Robin Davies
2024-10-29 16:38:40 -04:00
parent 2c828c5162
commit 81a415cce9
+11 -4
View File
@@ -66,20 +66,27 @@ namespace pipedal
AudioFormat *formats, AudioFormat *formats,
size_t nItems) size_t nItems)
{ {
snd_pcm_hw_params_t* test_params;
snd_pcm_hw_params_alloca(&test_params);
for (size_t i = 0; i < nItems; ++i) for (size_t i = 0; i < nItems; ++i)
{ {
int err = snd_pcm_hw_params_set_format(handle, hwParams, formats[i].pcm_format); snd_pcm_hw_params_copy(test_params, hwParams);
int err = snd_pcm_hw_params_set_format(handle, test_params, formats[i].pcm_format);
if (err == 0) if (err == 0)
{ {
return true; int err = snd_pcm_hw_params_set_format(handle, hwParams, formats[i].pcm_format);
if (err == 0)
{
return true;
}
} }
} }
return false; return false;
} }
static AudioFormat leFormats[]{ static AudioFormat leFormats[]{
{"16-bit little-endian", SND_PCM_FORMAT_S16_LE},
{"32-bit float little-endian", SND_PCM_FORMAT_FLOAT_LE}, {"32-bit float little-endian", SND_PCM_FORMAT_FLOAT_LE},
{"32-bit integer little-endian", SND_PCM_FORMAT_S32_LE}, {"32-bit integer little-endian", SND_PCM_FORMAT_S32_LE},
{"24-bit little-endian", SND_PCM_FORMAT_S24_LE}, {"24-bit little-endian", SND_PCM_FORMAT_S24_LE},