summaryrefslogtreecommitdiff
path: root/src/pcm/PcmExport.cxx
diff options
context:
space:
mode:
authorMax Kellermann <max@musicpd.org>2017-01-11 00:11:43 +0100
committerMax Kellermann <max@musicpd.org>2017-01-11 10:33:23 +0100
commit9c4df669253e1b01f20ff4d496c15a8bed4a00ac (patch)
treebe9fda03d546c7555ad6d9ccff2ccab2ebbfa4e1 /src/pcm/PcmExport.cxx
parent2b43ceb6c68e93feff830d2946abc8dc8f069421 (diff)
pcm/Export: halve the sample rate for DoP
Move this sample rate fixup from the ALSA output plugin to PcmExport, where it belongs.
Diffstat (limited to 'src/pcm/PcmExport.cxx')
-rw-r--r--src/pcm/PcmExport.cxx8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/pcm/PcmExport.cxx b/src/pcm/PcmExport.cxx
index ed8ab1707..254995d38 100644
--- a/src/pcm/PcmExport.cxx
+++ b/src/pcm/PcmExport.cxx
@@ -106,6 +106,11 @@ PcmExport::Params::CalcOutputSampleRate(unsigned sample_rate) const
/* DSD_U32 combines four 8-bit "samples" in one 32-bit
"sample" */
sample_rate /= 4;
+
+ if (dop)
+ /* DoP packs two 8-bit "samples" in one 24-bit
+ "sample" */
+ sample_rate /= 2;
#endif
return sample_rate;
@@ -117,6 +122,9 @@ PcmExport::Params::CalcInputSampleRate(unsigned sample_rate) const
#ifdef ENABLE_DSD
if (dsd_u32)
sample_rate *= 4;
+
+ if (dop)
+ sample_rate *= 2;
#endif
return sample_rate;