[alsa-devel] [PATCH] pcm: add new 32-bit DSD sample format
Jussi Laako
jussi at sonarnerd.net
Wed Nov 19 20:50:30 CET 2014
Hi,
Sorry for catching up late on this patch...
On 10.09.2014 10:00, Jurgen Kramer wrote:
> + FORMATD(DSD_U32_LE, "Direct Stream Digital, 4-byte (x32), little endian, oldest bits in MSB"),
There is bug in this patch. The spec for these formats is, as above says
"little endian, oldest bits in MSB", however with the iFi iDSD Nano this
doesn't seem to be the case. Oldest bits are in MSB of the byte, but
byte order is big endian. IOW, following alone will produce incorrect
output:
size_t N = 32;
uint32_t x = 0;
while (N--)
{
x <<= 1;
x |= nextbit;
}
But if you add __builtin_byteswap32(x) then the output is correct.
I guess this has not been caught because of just memcpy()'ing the
oldest-bit-in-MSB byte stream to the sample buffer instead of
constructing the words...
Best regards,
- Jussi
More information about the Alsa-devel
mailing list