Revert "pcm/Convert: add option to enable the integer-only dsd2pcm implementation"
This reverts commit c84bae739a
. A
configuration option is not necessary, because the PcmConvert
constructor knows already whether integer or floating point is needed.
This commit is contained in:
parent
c84bae739a
commit
8db86e2820
1
NEWS
1
NEWS
@ -22,7 +22,6 @@ ver 0.22 (not yet released)
|
|||||||
- ffmpeg: new plugin based on FFmpeg's libavfilter library
|
- ffmpeg: new plugin based on FFmpeg's libavfilter library
|
||||||
- hdcd: new plugin based on FFmpeg's "af_hdcd" for HDCD playback
|
- hdcd: new plugin based on FFmpeg's "af_hdcd" for HDCD playback
|
||||||
- volume: convert S16 to S24 to preserve quality and reduce dithering noise
|
- volume: convert S16 to S24 to preserve quality and reduce dithering noise
|
||||||
- dsd: add integer-only DSD to PCM converter
|
|
||||||
* output
|
* output
|
||||||
- jack: add option "auto_destination_ports"
|
- jack: add option "auto_destination_ports"
|
||||||
- jack: report error details
|
- jack: report error details
|
||||||
|
20
doc/user.rst
20
doc/user.rst
@ -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
|
Check the :ref:`resampler_plugins` reference for a list of resamplers
|
||||||
and how to configure them.
|
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
|
Client Connections
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
|
@ -79,7 +79,6 @@ enum class ConfigOption {
|
|||||||
DESPOTIFY_USER,
|
DESPOTIFY_USER,
|
||||||
DESPOTIFY_PASSWORD,
|
DESPOTIFY_PASSWORD,
|
||||||
DESPOTIFY_HIGH_BITRATE,
|
DESPOTIFY_HIGH_BITRATE,
|
||||||
DSD2PCM_CONVERTER,
|
|
||||||
MAX
|
MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -75,7 +75,6 @@ const ConfigTemplate config_param_templates[] = {
|
|||||||
{ "despotify_user", false, true },
|
{ "despotify_user", false, true },
|
||||||
{ "despotify_password", false, true },
|
{ "despotify_password", false, true },
|
||||||
{ "despotify_high_bitrate", false, true },
|
{ "despotify_high_bitrate", false, true },
|
||||||
{ "dsd2pcm_converter" },
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static constexpr unsigned n_config_param_templates =
|
static constexpr unsigned n_config_param_templates =
|
||||||
|
@ -19,35 +19,16 @@
|
|||||||
|
|
||||||
#include "Convert.hxx"
|
#include "Convert.hxx"
|
||||||
#include "ConfiguredResampler.hxx"
|
#include "ConfiguredResampler.hxx"
|
||||||
#include "config/Data.hxx"
|
|
||||||
#include "util/ConstBuffer.hxx"
|
#include "util/ConstBuffer.hxx"
|
||||||
#include "util/StringAPI.hxx"
|
|
||||||
|
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
#ifdef ENABLE_DSD
|
|
||||||
static bool dsd2pcm_integer = false;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void
|
void
|
||||||
pcm_convert_global_init(const ConfigData &config)
|
pcm_convert_global_init(const ConfigData &config)
|
||||||
{
|
{
|
||||||
pcm_resampler_global_init(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,
|
PcmConvert::PcmConvert(const AudioFormat _src_format,
|
||||||
|
Loading…
Reference in New Issue
Block a user