DSD hardware quirks and usb vendor id hardcoding

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



alsa-project/alsa-lib issue #266 was opened from soholt:

I am using tinyusb for UAC2 audio class and line 492 https://github.com/hathach/tinyusb/blob/master/src/class/audio/audio.h
allows: "AUDIO_DATA_FORMAT_TYPE_I_RAW_DATA = 0x80000000"
cat /proc/asound/ reports it as "Format: SPECIAL", but I wanted to be "SPECIAL DSD_U32_xx", so for fun I tried:
0x80000001 which reported as = S32_LE SPECIAL,
0x80000002 = U8 SPECIAL,
0x80000003 = U8 S32_LE SPECIAL
0x800000ff = U8 S32_LE FLOAT_LE MU_LAW A_LAW SPECIAL - seem to recursively add more

Then I found quirks line 1582 https://github.com/torvalds/linux/blob/master/sound/usb/quirks.c
"The UAC standards don't have a designated bit field to denote DSD-capable interfaces, hence all hardware that is known to support this format has to be listed here."

So if I change my usb vendor id to XMOS 0x20b1, only then "Format: SPECIAL" becomes "Format: SPECIAL DSD_U32_BE"

I have no idea if range 0x80000001++ is used for anything or if it could be used for DSD formats like:

0x80000001 = SPECIAL DSD_U8
0x80000002 = SPECIAL DSD_U16_LE
0x80000003 = SPECIAL DSD_U16_BE
0x80000004 = SPECIAL DSD_U32_LE
0x80000005 = SPECIAL DSD_U32_BE

so no future hardcoding is required.

Thanks,
Gin

Issue URL     : https://github.com/alsa-project/alsa-lib/issues/266
Repository URL: https://github.com/alsa-project/alsa-lib



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux