Commit a86aaef4 authored by Max Kellermann's avatar Max Kellermann

output/alsa: support native DSD playback

Translate SampleFormat::DSD to SND_PCM_FORMAT_DSD_U8, which was added to alsa-lib 1.0.27.1.
parent e463244d
......@@ -52,6 +52,8 @@ ver 0.19 (not yet released)
- mp4v2: support playback of MP4 files.
* encoder:
- shine: new encoder plugin
* output
- alsa: support native DSD playback
* threads:
- the update thread runs at "idle" priority
- the output thread runs at "real-time" priority
......
......@@ -22,6 +22,7 @@
#include "../OutputAPI.hxx"
#include "mixer/MixerList.hxx"
#include "pcm/PcmExport.hxx"
#include "config/ConfigError.hxx"
#include "util/Manual.hxx"
#include "util/Error.hxx"
#include "util/Domain.hxx"
......@@ -32,6 +33,11 @@
#include <string>
#if SND_LIB_VERSION >= 0x1001c
/* alsa-lib supports DSD since version 1.0.27.1 */
#define HAVE_ALSA_DSD
#endif
static const char default_device[] = "default";
static constexpr unsigned MPD_ALSA_BUFFER_TIME_US = 500000;
......@@ -236,8 +242,14 @@ get_bitformat(SampleFormat sample_format)
{
switch (sample_format) {
case SampleFormat::UNDEFINED:
return SND_PCM_FORMAT_UNKNOWN;
case SampleFormat::DSD:
#ifdef HAVE_ALSA_DSD
return SND_PCM_FORMAT_DSD_U8;
#else
return SND_PCM_FORMAT_UNKNOWN;
#endif
case SampleFormat::S8:
return SND_PCM_FORMAT_S8;
......
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