Mercurial > audlegacy-plugins
changeset 3187:360e92f3211d
alsa-ng: Apparently 24bit values are padded to 32bit, so we need to tell ALSA that.
The FMT_*24_* constants are misleading.
author | William Pitcock <nenolod@atheme.org> |
---|---|
date | Fri, 19 Jun 2009 08:38:14 -0500 |
parents | 2e988f44b85d |
children | 68bb898b8ae0 |
files | src/alsa-ng/alsa-util.c |
diffstat | 1 files changed, 17 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/alsa-ng/alsa-util.c Fri Jun 19 08:23:51 2009 -0500 +++ b/src/alsa-ng/alsa-util.c Fri Jun 19 08:38:14 2009 -0500 @@ -21,12 +21,23 @@ static alsaplug_format_mapping_t alsaplug_format_conv_tbl[] = { {FMT_FLOAT, SND_PCM_FORMAT_FLOAT}, - {FMT_S24_LE, SND_PCM_FORMAT_S24_LE}, - {FMT_S24_BE, SND_PCM_FORMAT_S24_BE}, - {FMT_S24_NE, SND_PCM_FORMAT_S24}, - {FMT_U24_LE, SND_PCM_FORMAT_U24_LE}, - {FMT_U24_BE, SND_PCM_FORMAT_U24_BE}, - {FMT_U24_NE, SND_PCM_FORMAT_U24}, + {FMT_S32_LE, SND_PCM_FORMAT_S32_LE}, + {FMT_S32_BE, SND_PCM_FORMAT_S32_BE}, + {FMT_S32_NE, SND_PCM_FORMAT_S32}, + {FMT_S24_LE, SND_PCM_FORMAT_S24_3LE}, + {FMT_S24_BE, SND_PCM_FORMAT_S24_3BE}, +#if G_BYTE_ORDER == G_LITTLE_ENDIAN + {FMT_S24_NE, SND_PCM_FORMAT_S24_3LE}, +#else + {FMT_S24_NE, SND_PCM_FORMAT_S24_3BE}, +#endif + {FMT_U24_LE, SND_PCM_FORMAT_U24_3LE}, + {FMT_U24_BE, SND_PCM_FORMAT_U24_3BE}, +#if G_BYTE_ORDER == G_LITTLE_ENDIAN + {FMT_U24_NE, SND_PCM_FORMAT_U24_3LE}, +#else + {FMT_U24_NE, SND_PCM_FORMAT_U24_3BE}, +#endif {FMT_S16_LE, SND_PCM_FORMAT_S16_LE}, {FMT_S16_BE, SND_PCM_FORMAT_S16_BE}, {FMT_S16_NE, SND_PCM_FORMAT_S16},