Commit 8db86e28 authored by Max Kellermann's avatar Max Kellermann

Revert "pcm/Convert: add option to enable the integer-only dsd2pcm implementation"

This reverts commit c84bae73. A configuration option is not necessary, because the PcmConvert constructor knows already whether integer or floating point is needed.
parent c84bae73
......@@ -22,7 +22,6 @@ ver 0.22 (not yet released)
- ffmpeg: new plugin based on FFmpeg's libavfilter library
- hdcd: new plugin based on FFmpeg's "af_hdcd" for HDCD playback
- volume: convert S16 to S24 to preserve quality and reduce dithering noise
- dsd: add integer-only DSD to PCM converter
* output
- jack: add option "auto_destination_ports"
- jack: report error details
......
......@@ -568,26 +568,6 @@ Sometimes, music needs to be resampled before it can be played; for example, CDs
Check the :ref:`resampler_plugins` reference for a list of resamplers
and how to configure them.
DSD
^^^
There are three ways to play back DSD (Direct Stream Digital):
- natively if your output supports it (ALSA only and requires a sound
card with native DSD support)
- `DSD over PCM <http://dsd-guide.com/dop-open-standard>`_: wrapped
inside fake 24 bit PCM samples (ALSA and OSX only and requires an
external DAC with DoP support)
- for everything else, MPD automatically converts DSD to PCM
For the last option, the setting ``dsd2pcm_converter`` selects a
conversion method. The default is ``float`` which converts to
floating point samples. For CPUs with a weak floating point unit
(e.g. some ARMs like the one in the Raspberry Pi), it may be faster to
use ``integer``, which is an integer-only implementation of the
conversion algorithm.
Client Connections
------------------
......
......@@ -79,7 +79,6 @@ enum class ConfigOption {
DESPOTIFY_USER,
DESPOTIFY_PASSWORD,
DESPOTIFY_HIGH_BITRATE,
DSD2PCM_CONVERTER,
MAX
};
......
......@@ -75,7 +75,6 @@ const ConfigTemplate config_param_templates[] = {
{ "despotify_user", false, true },
{ "despotify_password", false, true },
{ "despotify_high_bitrate", false, true },
{ "dsd2pcm_converter" },
};
static constexpr unsigned n_config_param_templates =
......
......@@ -19,35 +19,16 @@
#include "Convert.hxx"
#include "ConfiguredResampler.hxx"
#include "config/Data.hxx"
#include "util/ConstBuffer.hxx"
#include "util/StringAPI.hxx"
#include <stdexcept>
#include <assert.h>
#ifdef ENABLE_DSD
static bool dsd2pcm_integer = false;
#endif
void
pcm_convert_global_init(const ConfigData &config)
{
pcm_resampler_global_init(config);
#ifdef ENABLE_DSD
dsd2pcm_integer = config.With(ConfigOption::DSD2PCM_CONVERTER, [](const char *s){
if (s == nullptr)
return false;
else if (StringIsEqual(s, "float"))
return false;
else if (StringIsEqual(s, "integer"))
return true;
else
throw std::runtime_error("Unrecognized value");
});
#endif
}
PcmConvert::PcmConvert(const AudioFormat _src_format,
......
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