Daniel Kobras wrote:
In a perfect world, yes. But there are simply too many broken programs out there that rely on AFMT_S16_LE being available without properly checking for it. (And even if they check, few have a suitable fallback.) Most of the programs using the old SNDCTL_DSP_SAMPLESIZE call rather than SNDCTL_DSP_SETFMT belong into this category. They push a value of 16, and rarely realise this implies little-endianness of the data. Stuffing a conversion layer into the driver therefore makes tons of sense, and avoids a pile of legacy problems.
Some applications ask for 16-bit samples, but then generate native-endian data. xmms sounds pretty lousy on a PPC with a PCI sound chip that only handles little-endian formats.
-- Adrian Cox http://www.humboldt.co.uk/

