diff --git a/src/pipewire/impl-device.c b/src/pipewire/impl-device.c index 6386f486b..0aeb8610d 100644 --- a/src/pipewire/impl-device.c +++ b/src/pipewire/impl-device.c @@ -733,19 +733,20 @@ static void device_info(void *data, const struct spa_device_info *info) uint32_t id = info->params[i].id; pw_log_debug(NAME" %p: param %d id:%d (%s) %08x:%08x", device, i, - id, spa_debug_type_find_name(spa_type_param, id), - device->info.params[i].flags, info->params[i].flags); + id, spa_debug_type_find_name(spa_type_param, id), + device->info.params[i].flags, info->params[i].flags); - if (device->info.params[i].flags == info->params[i].flags) + device->info.params[i].id = device->params[i].id; + if (device->info.params[i].flags == info->params[i].flags) continue; pw_log_debug(NAME" %p: update param %d", device, id); pw_param_clear(&impl->pending_list, id); - device->info.params[i] = info->params[i]; - device->info.params[i].user = 0; + device->info.params[i] = info->params[i]; + device->info.params[i].user = 0; if (info->params[i].flags & SPA_PARAM_INFO_READ) - changed_ids[n_changed_ids++] = id; + changed_ids[n_changed_ids++] = id; } } emit_info_changed(device); diff --git a/src/pipewire/impl-node.c b/src/pipewire/impl-node.c index bbc5fb87a..edee8cb1a 100644 --- a/src/pipewire/impl-node.c +++ b/src/pipewire/impl-node.c @@ -1276,6 +1276,7 @@ static void node_info(void *data, const struct spa_node_info *info) id, spa_debug_type_find_name(spa_type_param, id), node->info.params[i].flags, info->params[i].flags); + node->info.params[i].id = info->params[i].id; if (node->info.params[i].flags == info->params[i].flags) continue; diff --git a/src/pipewire/impl-port.c b/src/pipewire/impl-port.c index 6e1533833..bcde8e538 100644 --- a/src/pipewire/impl-port.c +++ b/src/pipewire/impl-port.c @@ -373,6 +373,7 @@ static void update_info(struct pw_impl_port *port, const struct spa_port_info *i id, spa_debug_type_find_name(spa_type_param, id), port->info.params[i].flags, info->params[i].flags); + port->info.params[i].id = info->params[i].id; if (port->info.params[i].flags == info->params[i].flags) continue;