Commit 16639f9d authored by Max Kellermann's avatar Max Kellermann

pcm/Interleave: instantiate a 16 bit optimization

parent 22f2605e
...@@ -51,6 +51,14 @@ PcmInterleaveT(T *gcc_restrict dest, ...@@ -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 void
PcmInterleave32(int32_t *gcc_restrict dest, PcmInterleave32(int32_t *gcc_restrict dest,
const ConstBuffer<const int32_t *> src, const ConstBuffer<const int32_t *> src,
...@@ -65,6 +73,13 @@ PcmInterleave(void *gcc_restrict dest, ...@@ -65,6 +73,13 @@ PcmInterleave(void *gcc_restrict dest,
size_t n_frames, size_t sample_size) size_t n_frames, size_t sample_size)
{ {
switch (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: case 4:
PcmInterleave32((int32_t *)dest, PcmInterleave32((int32_t *)dest,
ConstBuffer<const int32_t *>((const int32_t *const*)src.data, ConstBuffer<const int32_t *>((const int32_t *const*)src.data,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment