utils: add debugable spa_memcpy

This commit is contained in:
Wim Taymans 2019-03-20 19:27:46 +01:00
parent c2cb74a146
commit 74cf412f47
5 changed files with 25 additions and 14 deletions

View file

@ -239,6 +239,17 @@ struct spa_param_info {
strerror(_err); \
})
#ifdef SPA_DEBUG_MEMCPY
#define spa_memcpy(d,s,n) \
({ \
fprintf(stderr, "%s:%u %s() memcpy(%p, %p, %zd)\n", \
__FILE__, __LINE__, __func__, (d), (s), (size_t)(n)); \
memcpy(d,s,n); \
})
#else
#define spa_memcpy(d,s,n) memcpy(d,s,n)
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif

View file

@ -716,9 +716,9 @@ again:
l0 = SPA_MIN(n_bytes, maxsize - offs);
l1 = n_bytes - l0;
memcpy(dst, src + offs, l0);
spa_memcpy(dst, src + offs, l0);
if (l1 > 0)
memcpy(dst + l0, src, l1);
spa_memcpy(dst + l0, src, l1);
state->ready_offset += n_bytes;
@ -811,9 +811,9 @@ push_frames(struct state *state,
l0 = SPA_MIN(n_bytes, d[0].maxsize - offs);
l1 = n_bytes - l0;
memcpy(SPA_MEMBER(d[0].data, offs, void), src, l0);
spa_memcpy(SPA_MEMBER(d[0].data, offs, void), src, l0);
if (l1 > 0)
memcpy(d[0].data, src + l0, l1);
spa_memcpy(d[0].data, src + l0, l1);
d[0].chunk->offset = index;
d[0].chunk->size = n_bytes;

View file

@ -39,7 +39,7 @@ channelmix_copy_sse(void *data, int n_dst, void *dst[n_dst],
}
else if (v == VOLUME_NORM) {
for (i = 0; i < n_dst; i++)
memcpy(d[i], s[i], n_samples * sizeof(float));
spa_memcpy(d[i], s[i], n_samples * sizeof(float));
}
else {
for (i = 0; i < n_dst; i++) {

View file

@ -49,7 +49,7 @@ channelmix_copy(void *data, int n_dst, void *dst[n_dst],
}
else if (v == VOLUME_NORM) {
for (i = 0; i < n_dst; i++)
memcpy(d[i], s[i], n_samples * sizeof(float));
spa_memcpy(d[i], s[i], n_samples * sizeof(float));
}
else {
for (i = 0; i < n_dst; i++)

View file

@ -95,13 +95,13 @@ conv_copy8d(void *data, void * SPA_RESTRICT dst[], const void * SPA_RESTRICT src
{
uint32_t i;
for (i = 0; i < n_channels; i++)
memcpy(dst[i], src[i], n_samples);
spa_memcpy(dst[i], src[i], n_samples);
}
static void
conv_copy8(void *data, void * SPA_RESTRICT dst[], const void * SPA_RESTRICT src[], uint32_t n_channels, uint32_t n_samples)
{
memcpy(dst[0], src[0], n_samples * n_channels);
spa_memcpy(dst[0], src[0], n_samples * n_channels);
}
@ -110,13 +110,13 @@ conv_copy16d(void *data, void * SPA_RESTRICT dst[], const void * SPA_RESTRICT sr
{
uint32_t i;
for (i = 0; i < n_channels; i++)
memcpy(dst[i], src[i], n_samples * sizeof(int16_t));
spa_memcpy(dst[i], src[i], n_samples * sizeof(int16_t));
}
static void
conv_copy16(void *data, void * SPA_RESTRICT dst[], const void * SPA_RESTRICT src[], uint32_t n_channels, uint32_t n_samples)
{
memcpy(dst[0], src[0], n_samples * sizeof(int16_t) * n_channels);
spa_memcpy(dst[0], src[0], n_samples * sizeof(int16_t) * n_channels);
}
static void
@ -124,13 +124,13 @@ conv_copy24d(void *data, void * SPA_RESTRICT dst[], const void * SPA_RESTRICT sr
{
uint32_t i;
for (i = 0; i < n_channels; i++)
memcpy(dst[i], src[i], n_samples * 3);
spa_memcpy(dst[i], src[i], n_samples * 3);
}
static void
conv_copy24(void *data, void * SPA_RESTRICT dst[], const void * SPA_RESTRICT src[], uint32_t n_channels, uint32_t n_samples)
{
memcpy(dst[0], src[0], n_samples * 3 * n_channels);
spa_memcpy(dst[0], src[0], n_samples * 3 * n_channels);
}
static void
@ -138,13 +138,13 @@ conv_copy32d(void *data, void * SPA_RESTRICT dst[], const void * SPA_RESTRICT sr
{
uint32_t i;
for (i = 0; i < n_channels; i++)
memcpy(dst[i], src[i], n_samples * sizeof(int32_t));
spa_memcpy(dst[i], src[i], n_samples * sizeof(int32_t));
}
static void
conv_copy32(void *data, void * SPA_RESTRICT dst[], const void * SPA_RESTRICT src[], uint32_t n_channels, uint32_t n_samples)
{
memcpy(dst[0], src[0], n_samples * sizeof(int32_t) * n_channels);
spa_memcpy(dst[0], src[0], n_samples * sizeof(int32_t) * n_channels);
}
static void