# HG changeset patch # User William Pitcock # Date 1245418694 18000 # Node ID 360e92f3211da773d89364cac3154e9cd1f57078 # Parent 2e988f44b85d70ab76d4c9b89bb31cba1012132e alsa-ng: Apparently 24bit values are padded to 32bit, so we need to tell ALSA that. The FMT_*24_* constants are misleading. diff -r 2e988f44b85d -r 360e92f3211d src/alsa-ng/alsa-util.c --- 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},