From 9ce2c6157fa740135a238d098482a5596f83b4f2 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 11 Feb 2020 15:14:40 +0100 Subject: [PATCH] client-node: fix v0 data offset Set the right data offset for v0 clients. --- src/modules/module-client-node/v0/client-node.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/modules/module-client-node/v0/client-node.c b/src/modules/module-client-node/v0/client-node.c index 520f14fda..b55ccdcc0 100644 --- a/src/modules/module-client-node/v0/client-node.c +++ b/src/modules/module-client-node/v0/client-node.c @@ -718,7 +718,7 @@ impl_node_port_use_buffers(void *object, struct buffer *b = &port->buffers[i]; struct pw_memblock *mem; struct mem *m; - size_t data_size, size; + size_t data_size; void *baseptr; b->outbuf = buffers[i]; @@ -759,7 +759,6 @@ impl_node_port_use_buffers(void *object, memcpy(&b->buffer.metas[j], &buffers[i]->metas[j], sizeof(struct spa_meta)); b->buffer.n_metas = j; - size = 0; for (j = 0; j < buffers[i]->n_datas; j++) { struct spa_data *d = &buffers[i]->datas[j]; @@ -770,8 +769,7 @@ impl_node_port_use_buffers(void *object, m = ensure_mem(impl, d->fd, d->type, d->flags); b->buffer.datas[j].data = SPA_UINT32_TO_PTR(m->id); } else if (d->type == SPA_DATA_MemPtr) { - b->buffer.datas[j].data = SPA_INT_TO_PTR(size); - size += d->maxsize; + b->buffer.datas[j].data = SPA_INT_TO_PTR(SPA_PTRDIFF(d->data, baseptr)); } else { b->buffer.datas[j].type = SPA_ID_INVALID; b->buffer.datas[j].data = 0;