From fa07400c2e42b33c7fca9d391c8d8431362442fd Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Fri, 13 Apr 2018 20:04:22 +0200 Subject: [PATCH] port_mix: place io area in separate field We would like to remove it from the spa_graph_port... --- src/modules/module-client-node/client-node.c | 12 +++++++----- src/pipewire/private.h | 1 + 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/modules/module-client-node/client-node.c b/src/modules/module-client-node/client-node.c index 6da91339b..defc93666 100644 --- a/src/modules/module-client-node/client-node.c +++ b/src/modules/module-client-node/client-node.c @@ -1202,12 +1202,14 @@ static int port_init_mix(void *data, struct pw_port_mix *mix) mix->id = pw_map_insert_new(&impl->io_map, NULL); - mix->port.io = SPA_MEMBER(impl->io_areas->ptr, + mix->io = SPA_MEMBER(impl->io_areas->ptr, mix->id * sizeof(struct spa_io_buffers), void); - mix->port.io->buffer_id = SPA_ID_INVALID; - mix->port.io->status = SPA_STATUS_NEED_BUFFER; + mix->io->buffer_id = SPA_ID_INVALID; + mix->io->status = SPA_STATUS_NEED_BUFFER; - pw_log_debug("client-node %p: init mix io %d %p %p", impl, mix->id, mix->port.io, + mix->port.io = mix->io; + + pw_log_debug("client-node %p: init mix io %d %p %p", impl, mix->id, mix->io, impl->io_areas->ptr); return 0; @@ -1217,7 +1219,7 @@ static int port_release_mix(void *data, struct pw_port_mix *mix) { struct impl *impl = data; - pw_log_debug("client-node %p: remove mix io %d %p %p", impl, mix->id, mix->port.io, + pw_log_debug("client-node %p: remove mix io %d %p %p", impl, mix->id, mix->io, impl->io_areas->ptr); pw_map_remove(&impl->io_map, mix->id); diff --git a/src/pipewire/private.h b/src/pipewire/private.h index f0772c58c..69976595c 100644 --- a/src/pipewire/private.h +++ b/src/pipewire/private.h @@ -286,6 +286,7 @@ struct pw_node { struct pw_port_mix { struct spa_graph_port port; + struct spa_io_buffers *io; struct spa_buffer **buffers; uint32_t n_buffers; uint32_t id;