> How are you aligning the 24 valid bits in the 32-bit containers? The valid
> bits should be the most significant bits, at least when handed to the app (I
> don't know about on the wire.) In this capture dump it looks like they're the
> least significant bits.
Well, they're aligned well enough to work when I set wBitsPerSample to 16, so I think the alignment is correct. ;-)
I know the data sent over the wire is nonzero. For example, one of the samples sniffed by our USB analyzer is F2 43 63 00. Even if the byte order over the wire is wrong, I should get something more meaningful in the capture buffer than 000000xx and FFFFFFxx -- for that sample, there should at least be a "43" and a "63" in the data in the capture buffer, even if the byte order is wrong.
In any case, if my wave format is wBitsPerSample=32, wValidBitsPerSample=24, how can there be any data in the LSB? Shouldn't the LSB always be 00?
> Now that I read this more carefully I see you're using the inbox Windows XP USB
> audio driver.
> I would not be surprised if the answer was "the Windows XP USB audio driver
> does not support 24-bit audio" but I honestly don't know enough about the
> history of the USB audio driver back that far to say so for sure.
How can I find out for certain whether or not this is a problem in the Windows XP USB audio driver? I need to tell our customer something. We both have a lot of money invested in the development of this product.
And if this does turn out to be a problem in Windows XP, is there any chance of a QFE or workaround? We still have a LOT of customers who are running Windows XP...