pcm/Volume: make DSD a no-op

Kludge to work around DSD playback failure because the
ReplayGainFilterPlugin is always in the filter chain.
This commit is contained in:
Max Kellermann 2014-01-17 23:57:30 +01:00
parent 61b01f82ef
commit a52cae1dba
1 changed files with 8 additions and 2 deletions

View File

@ -103,7 +103,6 @@ PcmVolume::Open(SampleFormat _format, Error &error)
switch (_format) {
case SampleFormat::UNDEFINED:
case SampleFormat::DSD:
error.Format(pcm_domain,
"Software volume for %s is not implemented",
sample_format_to_string(_format));
@ -115,6 +114,10 @@ PcmVolume::Open(SampleFormat _format, Error &error)
case SampleFormat::S32:
case SampleFormat::FLOAT:
break;
case SampleFormat::DSD:
// TODO: implement this; currently, it's a no-op
break;
}
format = _format;
@ -139,7 +142,6 @@ PcmVolume::Apply(ConstBuffer<void> src)
switch (format) {
case SampleFormat::UNDEFINED:
case SampleFormat::DSD:
assert(false);
gcc_unreachable();
@ -177,6 +179,10 @@ PcmVolume::Apply(ConstBuffer<void> src)
src.size / sizeof(float),
pcm_volume_to_float(volume));
break;
case SampleFormat::DSD:
// TODO: implement this; currently, it's a no-op
return src;
}
return { data, src.size };