diff options
Diffstat (limited to '')
-rw-r--r-- | src/pcm/Interleave.cxx | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/pcm/Interleave.cxx b/src/pcm/Interleave.cxx index 9926b5f7f..1152a7070 100644 --- a/src/pcm/Interleave.cxx +++ b/src/pcm/Interleave.cxx @@ -51,6 +51,14 @@ PcmInterleaveT(T *gcc_restrict dest, } } +static void +PcmInterleave16(int16_t *gcc_restrict dest, + const ConstBuffer<const int16_t *> src, + size_t n_frames) +{ + PcmInterleaveT(dest, src, n_frames); +} + void PcmInterleave32(int32_t *gcc_restrict dest, const ConstBuffer<const int32_t *> src, @@ -65,6 +73,13 @@ PcmInterleave(void *gcc_restrict dest, size_t n_frames, size_t sample_size) { switch (sample_size) { + case 2: + PcmInterleave16((int16_t *)dest, + ConstBuffer<const int16_t *>((const int16_t *const*)src.data, + src.size), + n_frames); + break; + case 4: PcmInterleave32((int32_t *)dest, ConstBuffer<const int32_t *>((const int32_t *const*)src.data, |