Commit 6a53fb33 authored by Max Kellermann's avatar Max Kellermann

output/alsa: basic infrastructure for DSD_U16 and DSD_U32

parent dcaf2998
...@@ -39,6 +39,11 @@ ...@@ -39,6 +39,11 @@
#define HAVE_ALSA_DSD #define HAVE_ALSA_DSD
#endif #endif
#if SND_LIB_VERSION >= 0x1001d
/* alsa-lib supports DSD_U32 since version 1.0.29 */
#define HAVE_ALSA_DSD_U32
#endif
static const char default_device[] = "default"; static const char default_device[] = "default";
static constexpr unsigned MPD_ALSA_BUFFER_TIME_US = 500000; static constexpr unsigned MPD_ALSA_BUFFER_TIME_US = 500000;
...@@ -314,6 +319,21 @@ byteswap_bitformat(snd_pcm_format_t fmt) ...@@ -314,6 +319,21 @@ byteswap_bitformat(snd_pcm_format_t fmt)
return SND_PCM_FORMAT_S24_3BE; return SND_PCM_FORMAT_S24_3BE;
case SND_PCM_FORMAT_S32_BE: return SND_PCM_FORMAT_S32_LE; case SND_PCM_FORMAT_S32_BE: return SND_PCM_FORMAT_S32_LE;
#ifdef HAVE_ALSA_DSD_U32
case SND_PCM_FORMAT_DSD_U16_LE:
return SND_PCM_FORMAT_DSD_U16_BE;
case SND_PCM_FORMAT_DSD_U16_BE:
return SND_PCM_FORMAT_DSD_U16_LE;
case SND_PCM_FORMAT_DSD_U32_LE:
return SND_PCM_FORMAT_DSD_U32_BE;
case SND_PCM_FORMAT_DSD_U32_BE:
return SND_PCM_FORMAT_DSD_U32_LE;
#endif
default: return SND_PCM_FORMAT_UNKNOWN; default: return SND_PCM_FORMAT_UNKNOWN;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment