Commit 894b9cfd authored by Max Kellermann's avatar Max Kellermann

decoder/dsdiff: add option "lsbitfirst"

Defaults to "no", which fixes the noise problems.
parent 7ecbb045
......@@ -742,6 +742,29 @@ cd mpd-version</programlisting>
<para>
Decodes DFF files containing DSDIFF data (e.g. SACD rips).
</para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>Setting</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry>
<varname>lsbitfirst</varname>
<parameter>yes|no</parameter>
</entry>
<entry>
Decode the least significant bit first. Default is
"no".
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
<section>
......
......@@ -54,6 +54,15 @@ struct dsdiff_metadata {
unsigned sample_rate, channels;
};
static bool lsbitfirst;
static bool
dsdiff_init(const struct config_param *param)
{
lsbitfirst = config_get_block_bool(param, "lsbitfirst", false);
return true;
}
static bool
dsdiff_id_equals(const struct dsdiff_id *id, const char *s)
{
......@@ -356,7 +365,7 @@ dsdiff_decode_chunk(struct decoder *decoder, struct input_stream *is,
for (unsigned c = 0; c < channels; ++c)
dsd2pcm_translate(dsd2pcm[c], now_frames,
buffer + c, channels,
true, f_buffer + c, channels);
lsbitfirst, f_buffer + c, channels);
/* convert to integer and submit to the decoder API */
......@@ -485,6 +494,7 @@ static const char *const dsdiff_mime_types[] = {
const struct decoder_plugin dsdiff_decoder_plugin = {
.name = "dsdiff",
.init = dsdiff_init,
.stream_decode = dsdiff_stream_decode,
.stream_tag = dsdiff_stream_tag,
.suffixes = dsdiff_suffixes,
......
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