From 3d974d32567fffc6b2be1fdf8890e2274c36eed4 Mon Sep 17 00:00:00 2001 From: Pauli Virtanen Date: Sat, 23 Dec 2023 21:12:11 +0200 Subject: [PATCH] pipewire: register/unregister log topics from SPA plugins Register enumerated log topics from SPA plugins on plugin load, and unregister them on plugin unload. --- src/pipewire/pipewire.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/pipewire/pipewire.c b/src/pipewire/pipewire.c index af9a53148..e55d5321e 100644 --- a/src/pipewire/pipewire.c +++ b/src/pipewire/pipewire.c @@ -47,6 +47,7 @@ struct plugin { void *hnd; spa_handle_factory_enum_func_t enum_func; int ref; + const struct spa_log_topic_enum *log_topic_enum; }; struct handle { @@ -131,9 +132,12 @@ open_plugin(struct registry *registry, plugin->filename = strdup(filename); plugin->hnd = hnd; plugin->enum_func = enum_func; + plugin->log_topic_enum = dlsym(hnd, SPA_LOG_TOPIC_ENUM_NAME); spa_list_append(®istry->plugins, &plugin->link); + pw_log_topic_register_enum(plugin->log_topic_enum); + return plugin; error_dlclose: @@ -148,6 +152,7 @@ unref_plugin(struct plugin *plugin) { if (--plugin->ref == 0) { spa_list_remove(&plugin->link); + pw_log_topic_unregister_enum(plugin->log_topic_enum); pw_log_debug("unloaded plugin:'%s'", plugin->filename); if (pw_should_dlclose()) dlclose(plugin->hnd);