From cb716bcce7afbf19f2bdd7787cdad024fe5eabaf Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Fri, 5 Apr 2024 15:39:36 +0200 Subject: [PATCH] impl-node: set_io on the port mixers --- src/pipewire/impl-node.c | 6 ++++++ src/pipewire/impl-port.c | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/pipewire/impl-node.c b/src/pipewire/impl-node.c index 62a2abc3b..44095a5c9 100644 --- a/src/pipewire/impl-node.c +++ b/src/pipewire/impl-node.c @@ -724,6 +724,7 @@ SPA_EXPORT int pw_impl_node_set_io(struct pw_impl_node *this, uint32_t id, void *data, size_t size) { int res; + struct pw_impl_port *port; res = spa_node_set_io(this->node, id, data, size); @@ -743,6 +744,11 @@ int pw_impl_node_set_io(struct pw_impl_node *this, uint32_t id, void *data, size this->driving = this->rt.clock && this->rt.position && this->rt.position->clock.id == this->rt.clock->id; + spa_list_for_each(port, &this->input_ports, link) + spa_node_set_io(port->mix, id, data, size); + spa_list_for_each(port, &this->output_ports, link) + spa_node_set_io(port->mix, id, data, size); + return res; } diff --git a/src/pipewire/impl-port.c b/src/pipewire/impl-port.c index 9018398cd..7d623de03 100644 --- a/src/pipewire/impl-port.c +++ b/src/pipewire/impl-port.c @@ -698,6 +698,12 @@ int pw_impl_port_set_mix(struct pw_impl_port *port, struct spa_node *node, uint3 pw_direction_reverse(port->direction), 0, SPA_IO_Buffers, &port->rt.io, sizeof(port->rt.io)); + + if (port->node && port->node->rt.position) + spa_node_set_io(port->mix, + SPA_IO_Position, + port->node->rt.position, + sizeof(struct spa_io_position)); } return 0; }