alsa: fall back to 32 bit samples if 16 is not supported

There are a few high-end devices (e.g. ICE1724) which cannot even play
16 bit audio.  Try the 32 bit fallback, which we already implemented
for 24 bit.
This commit is contained in:
Max Kellermann 2009-03-03 07:58:18 +01:00
parent f82793f741
commit 0f64e658fd

View File

@ -255,7 +255,8 @@ configure_hw:
}
err = snd_pcm_hw_params_set_format(ad->pcm, hwparams, bitformat);
if (err == -EINVAL && audio_format->bits == 24) {
if (err == -EINVAL && (audio_format->bits == 24 ||
audio_format->bits == 16)) {
/* fall back to 32 bit, let pcm_convert.c do the conversion */
err = snd_pcm_hw_params_set_format(ad->pcm, hwparams,
SND_PCM_FORMAT_S32);