aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder/plugins/DsdLib.cxx
diff options
context:
space:
mode:
authorJurgen Kramer <gtmkramer@xs4all.nl>2014-07-04 14:15:09 +0200
committerMax Kellermann <max@duempel.org>2014-08-16 18:40:53 +0200
commit9b9d189a333705818783e51da10d21511379124f (patch)
treebecd8f1e7d541e93d504f1779a0dd221064cdec4 /src/decoder/plugins/DsdLib.cxx
parent7c3af4f56f7171aacbe9bd26f2b30bb4f94e88f2 (diff)
downloadmpd-9b9d189a333705818783e51da10d21511379124f.tar.gz
mpd-9b9d189a333705818783e51da10d21511379124f.tar.xz
mpd-9b9d189a333705818783e51da10d21511379124f.zip
decoder/dsf: Allow up to DSD512. Enable DSD rates based on Fs=48kHz
Diffstat (limited to '')
-rw-r--r--src/decoder/plugins/DsdLib.cxx19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/decoder/plugins/DsdLib.cxx b/src/decoder/plugins/DsdLib.cxx
index 0f10b20e9..086f9d4d6 100644
--- a/src/decoder/plugins/DsdLib.cxx
+++ b/src/decoder/plugins/DsdLib.cxx
@@ -82,6 +82,25 @@ dsdlib_skip(Decoder *decoder, InputStream &is,
return decoder_skip(decoder, is, delta);
}
+bool
+dsdlib_valid_freq(uint32_t samplefreq)
+{
+ switch (samplefreq) {
+ case 2822400: /* DSD64, 64xFs, Fs = 44.100kHz */
+ case 3072000: /* DSD64 with Fs = 48.000 kHz */
+ case 5644800:
+ case 6144000:
+ case 11289600:
+ case 12288000:
+ case 22579200:/* DSD512 */
+ case 24576000:
+ return true;
+
+ default:
+ return false;
+ }
+}
+
#ifdef HAVE_ID3TAG
void
dsdlib_tag_id3(InputStream &is,