mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-04 13:30:12 -05:00
client-node: only add props and params when mask is set
This commit is contained in:
parent
12e6dd89e2
commit
85977634c1
1 changed files with 8 additions and 5 deletions
|
|
@ -126,7 +126,7 @@ client_node_marshal_update(void *object,
|
||||||
struct pw_proxy *proxy = object;
|
struct pw_proxy *proxy = object;
|
||||||
struct spa_pod_builder *b;
|
struct spa_pod_builder *b;
|
||||||
struct spa_pod_frame f[2];
|
struct spa_pod_frame f[2];
|
||||||
uint32_t i, n_items;
|
uint32_t i, n_items, n_info_params;
|
||||||
|
|
||||||
b = pw_protocol_native_begin_proxy(proxy, PW_CLIENT_NODE_METHOD_UPDATE, NULL);
|
b = pw_protocol_native_begin_proxy(proxy, PW_CLIENT_NODE_METHOD_UPDATE, NULL);
|
||||||
|
|
||||||
|
|
@ -141,12 +141,15 @@ client_node_marshal_update(void *object,
|
||||||
if (info) {
|
if (info) {
|
||||||
uint64_t change_mask = info->change_mask;
|
uint64_t change_mask = info->change_mask;
|
||||||
|
|
||||||
n_items = info->props ? info->props->n_items : 0;
|
|
||||||
|
|
||||||
change_mask &= SPA_NODE_CHANGE_MASK_FLAGS |
|
change_mask &= SPA_NODE_CHANGE_MASK_FLAGS |
|
||||||
SPA_NODE_CHANGE_MASK_PROPS |
|
SPA_NODE_CHANGE_MASK_PROPS |
|
||||||
SPA_NODE_CHANGE_MASK_PARAMS;
|
SPA_NODE_CHANGE_MASK_PARAMS;
|
||||||
|
|
||||||
|
n_items = info->props && (change_mask & SPA_NODE_CHANGE_MASK_PROPS) ?
|
||||||
|
info->props->n_items : 0;
|
||||||
|
n_info_params = (change_mask & SPA_NODE_CHANGE_MASK_PARAMS) ?
|
||||||
|
info->n_params : 0;
|
||||||
|
|
||||||
spa_pod_builder_push_struct(b, &f[1]);
|
spa_pod_builder_push_struct(b, &f[1]);
|
||||||
spa_pod_builder_add(b,
|
spa_pod_builder_add(b,
|
||||||
SPA_POD_Int(info->max_input_ports),
|
SPA_POD_Int(info->max_input_ports),
|
||||||
|
|
@ -157,8 +160,8 @@ client_node_marshal_update(void *object,
|
||||||
for (i = 0; i < n_items; i++)
|
for (i = 0; i < n_items; i++)
|
||||||
push_item(b, &info->props->items[i]);
|
push_item(b, &info->props->items[i]);
|
||||||
spa_pod_builder_add(b,
|
spa_pod_builder_add(b,
|
||||||
SPA_POD_Int(info->n_params), NULL);
|
SPA_POD_Int(n_info_params), NULL);
|
||||||
for (i = 0; i < info->n_params; i++) {
|
for (i = 0; i < n_info_params; i++) {
|
||||||
spa_pod_builder_add(b,
|
spa_pod_builder_add(b,
|
||||||
SPA_POD_Id(info->params[i].id),
|
SPA_POD_Id(info->params[i].id),
|
||||||
SPA_POD_Int(info->params[i].flags), NULL);
|
SPA_POD_Int(info->params[i].flags), NULL);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue