From: Paul Brossier Date: Sat, 5 Sep 2015 07:50:59 +0000 (+0200) Subject: src/pitch/pitch.c: variant for aubio_pitch_slideblock using memmove/memcpy X-Git-Tag: 0.4.4~300^2~376 X-Git-Url: https://git.aubio.org/?a=commitdiff_plain;h=6c8ef5833b56fa8ed2fb0a8200b8c36fea4a4dd0;p=aubio.git src/pitch/pitch.c: variant for aubio_pitch_slideblock using memmove/memcpy --- diff --git a/src/pitch/pitch.c b/src/pitch/pitch.c index 02636b40..66eac4a1 100644 --- a/src/pitch/pitch.c +++ b/src/pitch/pitch.c @@ -239,14 +239,21 @@ del_aubio_pitch (aubio_pitch_t * p) void aubio_pitch_slideblock (aubio_pitch_t * p, fvec_t * ibuf) { - uint_t j = 0, overlap_size = 0; - overlap_size = p->buf->length - ibuf->length; + uint_t overlap_size = p->buf->length - ibuf->length; +#if !HAVE_MEMCPY_HACKS + uint_t j; for (j = 0; j < overlap_size; j++) { p->buf->data[j] = p->buf->data[j + ibuf->length]; } for (j = 0; j < ibuf->length; j++) { p->buf->data[j + overlap_size] = ibuf->data[j]; } +#else + smpl_t *data = p->buf->data; + smpl_t *newdata = ibuf->data; + memmove(data, data + ibuf->length, overlap_size); + memcpy(data + overlap_size, newdata, ibuf->length); +#endif } uint_t