aboutsummaryrefslogtreecommitdiffstats
path: root/src/pcm/PcmResampleInternal.hxx
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-11-22 22:50:29 +0100
committerMax Kellermann <max@duempel.org>2013-11-22 23:27:56 +0100
commitfc7d5b055d98306af0c882282902a23e963f026d (patch)
treebe38c99eef3be2c4acfcbba4077842b7c17b738d /src/pcm/PcmResampleInternal.hxx
parent87c8953e8ed660b59ea2452b4d3a431785c47495 (diff)
downloadmpd-fc7d5b055d98306af0c882282902a23e963f026d.tar.gz
mpd-fc7d5b055d98306af0c882282902a23e963f026d.tar.xz
mpd-fc7d5b055d98306af0c882282902a23e963f026d.zip
PcmResampleLibsamplerate: clip 24 bit data
Using pcm_resample_lsr_32() for 24 bit samples works, but may cause 24 bit overflows. This commit makes 24 bit a special case with explicit clipping.
Diffstat (limited to '')
-rw-r--r--src/pcm/PcmResampleInternal.hxx9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/pcm/PcmResampleInternal.hxx b/src/pcm/PcmResampleInternal.hxx
index 59bb2f5df..5090c13d1 100644
--- a/src/pcm/PcmResampleInternal.hxx
+++ b/src/pcm/PcmResampleInternal.hxx
@@ -69,6 +69,15 @@ pcm_resample_lsr_32(PcmResampler *state,
unsigned dest_rate, size_t *dest_size_r,
Error &error);
+const int32_t *
+pcm_resample_lsr_24(PcmResampler *state,
+ unsigned channels,
+ unsigned src_rate,
+ const int32_t *src_buffer,
+ size_t src_size,
+ unsigned dest_rate, size_t *dest_size_r,
+ Error &error);
+
#endif
const int16_t *