client-node: fix v0 data offset

Set the right data offset for v0 clients.
This commit is contained in:
Wim Taymans 2020-02-11 15:14:40 +01:00
parent db734a952d
commit 9ce2c6157f

View file

@ -718,7 +718,7 @@ impl_node_port_use_buffers(void *object,
struct buffer *b = &port->buffers[i]; struct buffer *b = &port->buffers[i];
struct pw_memblock *mem; struct pw_memblock *mem;
struct mem *m; struct mem *m;
size_t data_size, size; size_t data_size;
void *baseptr; void *baseptr;
b->outbuf = buffers[i]; 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)); memcpy(&b->buffer.metas[j], &buffers[i]->metas[j], sizeof(struct spa_meta));
b->buffer.n_metas = j; b->buffer.n_metas = j;
size = 0;
for (j = 0; j < buffers[i]->n_datas; j++) { for (j = 0; j < buffers[i]->n_datas; j++) {
struct spa_data *d = &buffers[i]->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); m = ensure_mem(impl, d->fd, d->type, d->flags);
b->buffer.datas[j].data = SPA_UINT32_TO_PTR(m->id); b->buffer.datas[j].data = SPA_UINT32_TO_PTR(m->id);
} else if (d->type == SPA_DATA_MemPtr) { } else if (d->type == SPA_DATA_MemPtr) {
b->buffer.datas[j].data = SPA_INT_TO_PTR(size); b->buffer.datas[j].data = SPA_INT_TO_PTR(SPA_PTRDIFF(d->data, baseptr));
size += d->maxsize;
} else { } else {
b->buffer.datas[j].type = SPA_ID_INVALID; b->buffer.datas[j].type = SPA_ID_INVALID;
b->buffer.datas[j].data = 0; b->buffer.datas[j].data = 0;