mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-06 13:30:01 -05:00
context: improve param debug
Make it possible to log more info in the param debug functions
This commit is contained in:
parent
6495199a7a
commit
108bf82a10
4 changed files with 19 additions and 13 deletions
|
|
@ -257,11 +257,11 @@ int pw_buffers_negotiate(struct pw_context *context, uint32_t flags,
|
||||||
res = param_filter(result, &input, &output, SPA_PARAM_Buffers, &b);
|
res = param_filter(result, &input, &output, SPA_PARAM_Buffers, &b);
|
||||||
if (res < 0) {
|
if (res < 0) {
|
||||||
pw_context_debug_port_params(context, input.node, input.direction,
|
pw_context_debug_port_params(context, input.node, input.direction,
|
||||||
input.port_id, SPA_PARAM_Buffers,
|
input.port_id, SPA_PARAM_Buffers, res,
|
||||||
"input param", res);
|
"input param");
|
||||||
pw_context_debug_port_params(context, output.node, output.direction,
|
pw_context_debug_port_params(context, output.node, output.direction,
|
||||||
output.port_id, SPA_PARAM_Buffers,
|
output.port_id, SPA_PARAM_Buffers, res,
|
||||||
"output param", res);
|
"output param");
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
n_params = res;
|
n_params = res;
|
||||||
|
|
|
||||||
|
|
@ -592,19 +592,25 @@ struct pw_impl_port *pw_context_find_port(struct pw_context *context,
|
||||||
return best;
|
return best;
|
||||||
}
|
}
|
||||||
|
|
||||||
int pw_context_debug_port_params(struct pw_context *this,
|
SPA_PRINTF_FUNC(7, 8) int pw_context_debug_port_params(struct pw_context *this,
|
||||||
struct spa_node *node, enum spa_direction direction,
|
struct spa_node *node, enum spa_direction direction,
|
||||||
uint32_t port_id, uint32_t id, const char *debug, int err)
|
uint32_t port_id, uint32_t id, int err, const char *debug, ...)
|
||||||
{
|
{
|
||||||
struct spa_pod_builder b = { 0 };
|
struct spa_pod_builder b = { 0 };
|
||||||
uint8_t buffer[4096];
|
uint8_t buffer[4096];
|
||||||
uint32_t state;
|
uint32_t state;
|
||||||
struct spa_pod *param;
|
struct spa_pod *param;
|
||||||
int res;
|
int res;
|
||||||
|
va_list args;
|
||||||
|
|
||||||
pw_log_error("params %s: %d:%d (%s) %s",
|
va_start(args, debug);
|
||||||
|
vsnprintf(buffer, sizeof(buffer), debug, args);
|
||||||
|
va_end(args);
|
||||||
|
|
||||||
|
pw_log_error("params %s: %d:%d %s (%s)",
|
||||||
spa_debug_type_find_name(spa_type_param, id),
|
spa_debug_type_find_name(spa_type_param, id),
|
||||||
direction, port_id, debug, spa_strerror(err));
|
direction, port_id, spa_strerror(err), buffer);
|
||||||
|
|
||||||
if (err == -EBUSY)
|
if (err == -EBUSY)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -330,11 +330,11 @@ static int do_negotiate(struct pw_impl_link *this)
|
||||||
|
|
||||||
error:
|
error:
|
||||||
pw_context_debug_port_params(context, input->node->node, input->direction,
|
pw_context_debug_port_params(context, input->node->node, input->direction,
|
||||||
input->port_id, SPA_PARAM_EnumFormat,
|
input->port_id, SPA_PARAM_EnumFormat, res,
|
||||||
"input format", res);
|
"input format (%s)", error);
|
||||||
pw_context_debug_port_params(context, output->node->node, output->direction,
|
pw_context_debug_port_params(context, output->node->node, output->direction,
|
||||||
output->port_id, SPA_PARAM_EnumFormat,
|
output->port_id, SPA_PARAM_EnumFormat, res,
|
||||||
"output format", res);
|
"output format (%s)", error);
|
||||||
pw_impl_link_update_state(this, PW_LINK_STATE_ERROR, error);
|
pw_impl_link_update_state(this, PW_LINK_STATE_ERROR, error);
|
||||||
free(format);
|
free(format);
|
||||||
return res;
|
return res;
|
||||||
|
|
|
||||||
|
|
@ -988,7 +988,7 @@ pw_context_find_port(struct pw_context *context,
|
||||||
|
|
||||||
int pw_context_debug_port_params(struct pw_context *context,
|
int pw_context_debug_port_params(struct pw_context *context,
|
||||||
struct spa_node *node, enum spa_direction direction,
|
struct spa_node *node, enum spa_direction direction,
|
||||||
uint32_t port_id, uint32_t id, const char *debug, int err);
|
uint32_t port_id, uint32_t id, int err, const char *debug, ...);
|
||||||
|
|
||||||
const struct pw_export_type *pw_context_find_export_type(struct pw_context *context, const char *type);
|
const struct pw_export_type *pw_context_find_export_type(struct pw_context *context, const char *type);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue