pcm/Export: DSD_U32 quarters the sample rate
DSD_U32 packs four bytes instead of one large "sample", thus the sample rate is one quarter of the input sample rate. This fixes a rather critical DSD_U32 playback problem.
This commit is contained in:
@@ -101,12 +101,24 @@ PcmExport::GetFrameSize(const AudioFormat &audio_format) const
|
||||
unsigned
|
||||
PcmExport::Params::CalcOutputSampleRate(unsigned sample_rate) const
|
||||
{
|
||||
#ifdef ENABLE_DSD
|
||||
if (dsd_u32)
|
||||
/* DSD_U32 combines four 8-bit "samples" in one 32-bit
|
||||
"sample" */
|
||||
sample_rate /= 4;
|
||||
#endif
|
||||
|
||||
return sample_rate;
|
||||
}
|
||||
|
||||
unsigned
|
||||
PcmExport::Params::CalcInputSampleRate(unsigned sample_rate) const
|
||||
{
|
||||
#ifdef ENABLE_DSD
|
||||
if (dsd_u32)
|
||||
sample_rate *= 4;
|
||||
#endif
|
||||
|
||||
return sample_rate;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user