On 03/22/2013 12:23 PM, Takashi Iwai wrote:
More important question is how consistent the format is. If it's a device-specific closed format, it's not suitable as a standard format definition in the API level.
At least the ASIO way of two uint8_t based MSB/LSB formats is pretty much the standard common denominator. Rest of the possibly needed data arrangement can be handled by the driver.
For the DoP output it is already defined by Andreas: http://dsd-guide.com/dop-open-standard
Which corresponds to the uint8_t with oldest bit in MSB. I'm now doing the packing for both packing styles in the application before sending it through ALSA. However, it would be cleaner for application to send uint8_t packets and handle the packing at driver level. Those pieces of custom USB hardware that don't use DoP but send raw DSD stream usually use either uint8_t or uint32_t containers. So the uint8_t is the lowest common denominator. So we wouldn't need to worry about the byte order in addition to bit order...
- Jussi