diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2019-01-07 13:17:07 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2019-01-07 13:17:07 +0000 |
| commit | 942a4df4d9b1c7683ec9f6d9e72ca9e6d0bae14a (patch) | |
| tree | dc57c40b4459137710250066e706da77c5511b18 | |
| parent | 3a9dc1fc246f17131b9ae5c3254cef6eb33dea42 (diff) | |
| download | qmmp-942a4df4d9b1c7683ec9f6d9e72ca9e6d0bae14a.tar.gz qmmp-942a4df4d9b1c7683ec9f6d9e72ca9e6d0bae14a.tar.bz2 qmmp-942a4df4d9b1c7683ec9f6d9e72ca9e6d0bae14a.zip | |
wavpack: fixed 12, 20-bit integer and 32-bit float formats support
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8604 90c681e8-e032-0410-971d-27865f9a5e38
| -rw-r--r-- | src/plugins/Input/wavpack/decoder_wavpack.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/plugins/Input/wavpack/decoder_wavpack.cpp b/src/plugins/Input/wavpack/decoder_wavpack.cpp index 3b6da3de9..a9daaf20a 100644 --- a/src/plugins/Input/wavpack/decoder_wavpack.cpp +++ b/src/plugins/Input/wavpack/decoder_wavpack.cpp @@ -130,12 +130,22 @@ bool DecoderWavPack::initialize() case 8: configure(freq, chmap, Qmmp::PCM_S8); break; + case 12: case 16: configure(freq, chmap, Qmmp::PCM_S16LE); break; + case 20: case 24: case 32: +#ifdef MODE_FLOAT + configure(freq, chmap, (WavpackGetMode(m_context) & MODE_FLOAT) ? Qmmp::PCM_FLOAT : Qmmp::PCM_S32LE); +#else configure(freq, chmap, Qmmp::PCM_S32LE); +#endif + break; + default: + qWarning("DecoderWavPack: unsupported bit depth"); + return false; } if(!m_parser) m_totalTime = (qint64) WavpackGetNumSamples(m_context) * 1000 / freq; @@ -244,10 +254,12 @@ qint64 DecoderWavPack::wavpack_decode(unsigned char *data, qint64 size) for (i = 0; i < len * m_chan; ++i) data8[i] = m_output_buf[i]; return len * m_chan; + case 12: case 16: for (i = 0; i < len * m_chan; ++i) data16[i] = m_output_buf[i]; return len * m_chan * 2; + case 20: case 24: for (i = 0; i < len * m_chan; ++i) data32[i] = m_output_buf[i] << 8; |
