Github上有个简单的Alsa DSD测试程序,可以播放DSD,地址位于:https://github.com/zonque/alsa-dsd-player 细看其代码,发现有ALSA_FORMAT_SND_PCM_FORMAT_DSD_U8的定义,详情如下:
#if 1
/* 8-bit DSD */
#define ALSA_FORMAT SND_PCM_FORMAT_DSD_U8
#define SAMPLE_SIZE (sizeof(uint8_t) * 2)
#define SAMPLE_RATE_DIV 1
#else
/* 16-bit DSD */
#define ALSA_FORMAT SND_PCM_FORMAT_DSD_U16
#define SAMPLE_SIZE (sizeof(uint16_t) * 2)
#define SAMPLE_RATE_DIV 2
#endif
那么在Android中能运行这个测试程序吗?ALSA_FORMAT_SND_PCM_FORMAT_DSD_U8似乎是亮点,之前没有看到过。尝试在Android的源码中寻找它的定义,没找到。但是在标准的alsa-lib中找到了:
typedef enum _snd_pcm_format {
125 SND_PCM_FORMAT_UNKNOWN = -1,
127 SND_PCM_FORMAT_S8 = 0,
129 SND_PCM_FORMAT_U8,
131 SND_PCM_FORMAT_S16_LE,
133 SND_PCM_FORMAT_S16_BE,
135 SND_PCM_FORMAT_U