diff --git a/libao2/ao_alsa.c b/libao2/ao_alsa.c index a541448721..f4819f9b9a 100644 --- a/libao2/ao_alsa.c +++ b/libao2/ao_alsa.c @@ -325,6 +325,12 @@ static int init(int rate_hz, int channels, int format, int flags) case AF_FORMAT_S16_BE: alsa_format = SND_PCM_FORMAT_S16_BE; break; + case AF_FORMAT_U32_LE: + alsa_format = SND_PCM_FORMAT_U32_LE; + break; + case AF_FORMAT_U32_BE: + alsa_format = SND_PCM_FORMAT_U32_BE; + break; case AF_FORMAT_S32_LE: alsa_format = SND_PCM_FORMAT_S32_LE; break; @@ -334,6 +340,15 @@ static int init(int rate_hz, int channels, int format, int flags) case AF_FORMAT_FLOAT_LE: alsa_format = SND_PCM_FORMAT_FLOAT_LE; break; + case AF_FORMAT_FLOAT_BE: + alsa_format = SND_PCM_FORMAT_FLOAT_BE; + break; + case AF_FORMAT_MU_LAW: + alsa_format = SND_PCM_FORMAT_MU_LAW; + break; + case AF_FORMAT_A_LAW: + alsa_format = SND_PCM_FORMAT_A_LAW; + break; default: alsa_format = SND_PCM_FORMAT_MPEG; //? default should be -1