ref: 4087d54f89c26c0dc70afc36d26f3a756b8082ac
parent: 5c6b26451650fa43935a0d526615698b024f1be7
author: Paul Brossier <piem@piem.org>
date: Sat Dec 28 14:38:03 EST 2013
src/spectral/phasevoc.c: optimize swapbuffers by using memcpy
--- a/src/spectral/phasevoc.c
+++ b/src/spectral/phasevoc.c
@@ -119,6 +119,7 @@
static void aubio_pvoc_swapbuffers(smpl_t * data, smpl_t * dataold,
const smpl_t * datanew, uint_t win_s, uint_t hop_s)
{
+#if !HAVE_MEMCPY_HACKS
uint_t i;
for (i = 0; i < win_s - hop_s; i++)
data[i] = dataold[i];
@@ -126,6 +127,14 @@
data[win_s - hop_s + i] = datanew[i];
for (i = 0; i < win_s - hop_s; i++)
dataold[i] = data[i + hop_s];
+#else
+ memcpy(data, dataold, (win_s - hop_s) * sizeof(smpl_t));
+ data += win_s - hop_s;
+ memcpy(data, datanew, hop_s * sizeof(smpl_t));
+ data -= win_s - hop_s;
+ data += hop_s;
+ memcpy(dataold, data, (win_s - hop_s) * sizeof(smpl_t));
+#endif
}
static void aubio_pvoc_addsynth(const smpl_t * synth, smpl_t * synthold,