From 22cc1f903f8201316e5674a57cd807bde343556d Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Sun, 3 May 2020 11:43:56 +0200 Subject: [PATCH] stream: clean up enum_params --- src/pipewire/filter.c | 10 ++++------ src/pipewire/stream.c | 10 ++++------ 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/pipewire/filter.c b/src/pipewire/filter.c index d4fd82cb8..74a0252ac 100644 --- a/src/pipewire/filter.c +++ b/src/pipewire/filter.c @@ -470,14 +470,14 @@ static int impl_port_enum_params(void *object, int seq, struct spa_result_node_params result; uint8_t buffer[1024]; struct spa_pod_builder b = { 0 }; - uint32_t idx = 0, count = 0; + uint32_t count = 0; struct param *p; bool found = false; spa_return_val_if_fail(num != 0, -EINVAL); result.id = id; - result.next = start; + result.next = 0; if ((port = get_port(d, direction, port_id)) == NULL) return -EINVAL; @@ -489,8 +489,9 @@ static int impl_port_enum_params(void *object, int seq, spa_list_for_each(p, &port->param_list, link) { struct spa_pod *param; - idx++; result.index = result.next++; + if (result.index < start) + continue; param = p->param; if (param == NULL || p->id != id) @@ -498,9 +499,6 @@ static int impl_port_enum_params(void *object, int seq, found = true; - if (idx < start) - continue; - spa_pod_builder_init(&b, buffer, sizeof(buffer)); if (spa_pod_filter(&b, &result.param, param, filter) != 0) continue; diff --git a/src/pipewire/stream.c b/src/pipewire/stream.c index a827f2d08..609313207 100644 --- a/src/pipewire/stream.c +++ b/src/pipewire/stream.c @@ -496,14 +496,14 @@ static int impl_port_enum_params(void *object, int seq, struct spa_result_node_params result; uint8_t buffer[1024]; struct spa_pod_builder b = { 0 }; - uint32_t idx = 0, count = 0; + uint32_t count = 0; struct param *p; bool found = false; spa_return_val_if_fail(num != 0, -EINVAL); result.id = id; - result.next = start; + result.next = 0; pw_log_debug(NAME" %p: param id %d (%s) start:%d num:%d", d, id, spa_debug_type_find_name(spa_type_param, id), @@ -512,8 +512,9 @@ static int impl_port_enum_params(void *object, int seq, spa_list_for_each(p, &d->param_list, link) { struct spa_pod *param; - idx++; result.index = result.next++; + if (result.index < start) + continue; param = p->param; if (param == NULL || p->id != id) @@ -521,9 +522,6 @@ static int impl_port_enum_params(void *object, int seq, found = true; - if (idx < start) - continue; - spa_pod_builder_init(&b, buffer, sizeof(buffer)); if (spa_pod_filter(&b, &result.param, param, filter) != 0) continue;