diff options
Diffstat (limited to 'media-video/wireplumber/files')
5 files changed, 0 insertions, 501 deletions
diff --git a/media-video/wireplumber/files/wireplumber-0.4.10-alsa.lua-fix-device-name-deduplication-when-reserva.patch b/media-video/wireplumber/files/wireplumber-0.4.10-alsa.lua-fix-device-name-deduplication-when-reserva.patch deleted file mode 100644 index 610db0e11e89..000000000000 --- a/media-video/wireplumber/files/wireplumber-0.4.10-alsa.lua-fix-device-name-deduplication-when-reserva.patch +++ /dev/null @@ -1,117 +0,0 @@ -https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/c00c5a6675b6640db13111c808eaa3251917c412 - -From c00c5a6675b6640db13111c808eaa3251917c412 Mon Sep 17 00:00:00 2001 -From: Julian Bouzas <julian.bouzas@collabora.com> -Date: Wed, 18 May 2022 10:51:41 -0400 -Subject: [PATCH] alsa.lua: fix device name deduplication when reservation is - enabled - -Fixes #241 ---- - src/scripts/monitors/alsa.lua | 47 +++++++++++++++++++---------------- - 1 file changed, 25 insertions(+), 22 deletions(-) - -diff --git a/src/scripts/monitors/alsa.lua b/src/scripts/monitors/alsa.lua -index 01d241db..7beed3a8 100644 ---- a/src/scripts/monitors/alsa.lua -+++ b/src/scripts/monitors/alsa.lua -@@ -11,6 +11,10 @@ local config = ... or {} - -- ensure config.properties is not nil - config.properties = config.properties or {} - -+-- unique device/node name tables -+device_names_table = nil -+node_names_table = nil -+ - -- preprocess rules and create Interest objects - for _, r in ipairs(config.rules or {}) do - r.interests = {} -@@ -41,16 +45,6 @@ function rulesApplyProperties(properties) - end - end - --function findDuplicate(parent, id, property, value) -- for i = 0, id - 1, 1 do -- local obj = parent:get_managed_object(i) -- if obj and obj.properties[property] == value then -- return true -- end -- end -- return false --end -- - function nonempty(str) - return str ~= "" and str or nil - end -@@ -125,11 +119,11 @@ function createNode(parent, id, type, factory, properties) - - -- deduplicate nodes with the same name - for counter = 2, 99, 1 do -- if findDuplicate(parent, id, "node.name", properties["node.name"]) then -- properties["node.name"] = name .. "." .. counter -- else -+ if node_names_table[properties["node.name"]] ~= true then -+ node_names_table[properties["node.name"]] = true - break - end -+ properties["node.name"] = name .. "." .. counter - end - end - -@@ -186,6 +180,10 @@ function createDevice(parent, id, factory, properties) - local device = SpaDevice(factory, properties) - if device then - device:connect("create-object", createNode) -+ device:connect("object-removed", function (parent, id) -+ local node = parent:get_managed_object(id) -+ node_names_table[node.properties["node.name"]] = nil -+ end) - device:activate(Feature.SpaDevice.ENABLED | Feature.Proxy.BOUND) - parent:store_managed_object(id, device) - else -@@ -205,11 +203,11 @@ function prepareDevice(parent, id, type, factory, properties) - - -- deduplicate devices with the same name - for counter = 2, 99, 1 do -- if findDuplicate(parent, id, "device.name", properties["device.name"]) then -- properties["device.name"] = name .. "." .. counter -- else -+ if device_names_table[properties["device.name"]] ~= true then -+ device_names_table[properties["device.name"]] = true - break - end -+ properties["device.name"] = name .. "." .. counter - end - - -- ensure the device has a description -@@ -337,16 +335,21 @@ function createMonitor () - -- handle create-object to prepare device - m:connect("create-object", prepareDevice) - -- -- if dbus reservation, handle object-removed to destroy device reservations -- if rd_plugin then -- m:connect("object-removed", function (parent, id) -- local device = parent:get_managed_object(id) -+ -- handle object-removed to destroy device reservations and recycle device name -+ m:connect("object-removed", function (parent, id) -+ local device = parent:get_managed_object(id) -+ if rd_plugin then - local rd_name = device.properties["api.dbus.ReserveDevice1"] - if rd_name then - rd_plugin:call("destroy-reservation", rd_name) - end -- end) -- end -+ end -+ device_names_table[device.properties["device.name"]] = nil -+ end) -+ -+ -- reset the name tables to make sure names are recycled -+ device_names_table = {} -+ node_names_table = {} - - -- activate monitor - Log.info("Activating ALSA monitor") --- -GitLab - diff --git a/media-video/wireplumber/files/wireplumber-0.4.10-config-fix-enabled-property-to-default-to-true-when.patch b/media-video/wireplumber/files/wireplumber-0.4.10-config-fix-enabled-property-to-default-to-true-when.patch deleted file mode 100644 index 40a486616580..000000000000 --- a/media-video/wireplumber/files/wireplumber-0.4.10-config-fix-enabled-property-to-default-to-true-when.patch +++ /dev/null @@ -1,129 +0,0 @@ -https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/1f045309208ab5d927883b5adc2b7d1623fae162 - -From 1f045309208ab5d927883b5adc2b7d1623fae162 Mon Sep 17 00:00:00 2001 -From: George Kiagiadakis <george.kiagiadakis@collabora.com> -Date: Thu, 12 May 2022 12:19:38 +0300 -Subject: [PATCH] config: fix enabled property to default to "true" when not - defined - -Fixes backwards compatibility with older config files - -Fixes: #254 ---- - src/config/bluetooth.lua.d/30-bluez-monitor.lua | 2 +- - src/config/main.lua.d/20-default-access.lua | 2 +- - src/config/main.lua.d/30-alsa-monitor.lua | 2 +- - src/config/main.lua.d/30-libcamera-monitor.lua | 2 +- - src/config/main.lua.d/30-v4l2-monitor.lua | 2 +- - src/config/main.lua.d/40-device-defaults.lua | 2 +- - src/config/main.lua.d/40-stream-defaults.lua | 2 +- - src/config/policy.lua.d/10-default-policy.lua | 2 +- - 8 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/src/config/bluetooth.lua.d/30-bluez-monitor.lua b/src/config/bluetooth.lua.d/30-bluez-monitor.lua -index b40026c2..a870aa5d 100644 ---- a/src/config/bluetooth.lua.d/30-bluez-monitor.lua -+++ b/src/config/bluetooth.lua.d/30-bluez-monitor.lua -@@ -3,7 +3,7 @@ bluez_monitor.properties = {} - bluez_monitor.rules = {} - - function bluez_monitor.enable() -- if not bluez_monitor.enabled then -+ if bluez_monitor.enabled == false then - return - end - -diff --git a/src/config/main.lua.d/20-default-access.lua b/src/config/main.lua.d/20-default-access.lua -index a6ffb2ee..0a7eb955 100644 ---- a/src/config/main.lua.d/20-default-access.lua -+++ b/src/config/main.lua.d/20-default-access.lua -@@ -3,7 +3,7 @@ default_access.properties = {} - default_access.rules = {} - - function default_access.enable() -- if not default_access.enabled then -+ if default_access.enabled == false then - return - end - -diff --git a/src/config/main.lua.d/30-alsa-monitor.lua b/src/config/main.lua.d/30-alsa-monitor.lua -index da0b2c70..8e45e434 100644 ---- a/src/config/main.lua.d/30-alsa-monitor.lua -+++ b/src/config/main.lua.d/30-alsa-monitor.lua -@@ -3,7 +3,7 @@ alsa_monitor.properties = {} - alsa_monitor.rules = {} - - function alsa_monitor.enable() -- if not alsa_monitor.enabled then -+ if alsa_monitor.enabled == false then - return - end - -diff --git a/src/config/main.lua.d/30-libcamera-monitor.lua b/src/config/main.lua.d/30-libcamera-monitor.lua -index 4a8257ff..cd820a83 100644 ---- a/src/config/main.lua.d/30-libcamera-monitor.lua -+++ b/src/config/main.lua.d/30-libcamera-monitor.lua -@@ -3,7 +3,7 @@ libcamera_monitor.properties = {} - libcamera_monitor.rules = {} - - function libcamera_monitor.enable() -- if not libcamera_monitor.enabled then -+ if libcamera_monitor.enabled == false then - return - end - -diff --git a/src/config/main.lua.d/30-v4l2-monitor.lua b/src/config/main.lua.d/30-v4l2-monitor.lua -index 7cfd4bcd..3fbdc9e7 100644 ---- a/src/config/main.lua.d/30-v4l2-monitor.lua -+++ b/src/config/main.lua.d/30-v4l2-monitor.lua -@@ -3,7 +3,7 @@ v4l2_monitor.properties = {} - v4l2_monitor.rules = {} - - function v4l2_monitor.enable() -- if not v4l2_monitor.enabled then -+ if v4l2_monitor.enabled == false then - return - end - -diff --git a/src/config/main.lua.d/40-device-defaults.lua b/src/config/main.lua.d/40-device-defaults.lua -index 55aafe85..2204c4ac 100644 ---- a/src/config/main.lua.d/40-device-defaults.lua -+++ b/src/config/main.lua.d/40-device-defaults.lua -@@ -38,7 +38,7 @@ device_defaults.persistent_profiles = { - } - - function device_defaults.enable() -- if not device_defaults.enabled then -+ if device_defaults.enabled == false then - return - end - -diff --git a/src/config/main.lua.d/40-stream-defaults.lua b/src/config/main.lua.d/40-stream-defaults.lua -index 2975f4f6..307d83df 100644 ---- a/src/config/main.lua.d/40-stream-defaults.lua -+++ b/src/config/main.lua.d/40-stream-defaults.lua -@@ -25,7 +25,7 @@ stream_defaults.rules = { - } - - function stream_defaults.enable() -- if not stream_defaults.enabled then -+ if stream_defaults.enabled == false then - return - end - -diff --git a/src/config/policy.lua.d/10-default-policy.lua b/src/config/policy.lua.d/10-default-policy.lua -index 7b00e94e..edfdeb1c 100644 ---- a/src/config/policy.lua.d/10-default-policy.lua -+++ b/src/config/policy.lua.d/10-default-policy.lua -@@ -38,7 +38,7 @@ bluetooth_policy.policy = { - } - - function default_policy.enable() -- if not default_policy.enabled then -+ if default_policy.enabled == false then - return - end - --- -GitLab - diff --git a/media-video/wireplumber/files/wireplumber-0.4.10-m-default-nodes-don-t-check-if-all-device-nodes-are.patch b/media-video/wireplumber/files/wireplumber-0.4.10-m-default-nodes-don-t-check-if-all-device-nodes-are.patch deleted file mode 100644 index d9c51489a893..000000000000 --- a/media-video/wireplumber/files/wireplumber-0.4.10-m-default-nodes-don-t-check-if-all-device-nodes-are.patch +++ /dev/null @@ -1,187 +0,0 @@ -https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/392cce2136e81ac3146078eacbbae85b694c917a - -From 392cce2136e81ac3146078eacbbae85b694c917a Mon Sep 17 00:00:00 2001 -From: Julian Bouzas <julian.bouzas@collabora.com> -Date: Fri, 20 May 2022 07:38:24 -0400 -Subject: [PATCH] m-default-nodes: don't check if all device nodes are ready - when finding default node - -This check was originally added to avoid a small audio glitch when changing -default nodes while also changing the device profile (eg Gnome Sound Settings). -The check is removed because it causes issues when disabling alsa nodes. There -are plans to fix the audio glitch issue in the future with the planned -event-dispatcher architecture. - -Fixes #279 ---- - modules/module-default-nodes.c | 136 --------------------------------- - 1 file changed, 136 deletions(-) - -diff --git a/modules/module-default-nodes.c b/modules/module-default-nodes.c -index 0fdaed5..577f9bb 100644 ---- a/modules/module-default-nodes.c -+++ b/modules/module-default-nodes.c -@@ -345,135 +345,6 @@ reevaluate_default_node (WpDefaultNodes * self, WpMetadata *m, gint node_t) - } - } - --static guint --get_device_total_nodes (WpPipewireObject * proxy) --{ -- g_autoptr (WpIterator) profiles = NULL; -- g_auto (GValue) item = G_VALUE_INIT; -- -- profiles = wp_pipewire_object_enum_params_sync (proxy, "Profile", NULL); -- if (!profiles) -- return 0; -- -- for (; wp_iterator_next (profiles, &item); g_value_unset (&item)) { -- WpSpaPod *pod = g_value_get_boxed (&item); -- gint idx = -1; -- const gchar *name = NULL; -- g_autoptr (WpSpaPod) classes = NULL; -- -- /* Parse */ -- if (!wp_spa_pod_get_object (pod, NULL, -- "index", "i", &idx, -- "name", "s", &name, -- "classes", "?P", &classes, -- NULL)) -- continue; -- if (!classes) -- continue; -- -- /* Parse profile classes */ -- { -- g_autoptr (WpIterator) it = wp_spa_pod_new_iterator (classes); -- g_auto (GValue) v = G_VALUE_INIT; -- gint total_nodes = 0; -- for (; wp_iterator_next (it, &v); g_value_unset (&v)) { -- WpSpaPod *entry = g_value_get_boxed (&v); -- g_autoptr (WpSpaPodParser) pp = NULL; -- const gchar *media_class = NULL; -- gint n_nodes = 0; -- g_return_val_if_fail (entry, 0); -- if (!wp_spa_pod_is_struct (entry)) -- continue; -- pp = wp_spa_pod_parser_new_struct (entry); -- g_return_val_if_fail (pp, 0); -- g_return_val_if_fail (wp_spa_pod_parser_get_string (pp, &media_class), 0); -- g_return_val_if_fail (wp_spa_pod_parser_get_int (pp, &n_nodes), 0); -- wp_spa_pod_parser_end (pp); -- -- total_nodes += n_nodes; -- } -- -- if (total_nodes > 0) -- return total_nodes; -- } -- } -- -- return 0; --} -- --static gboolean --nodes_ready (WpDefaultNodes * self) --{ -- g_autoptr (WpIterator) it = NULL; -- g_auto (GValue) val = G_VALUE_INIT; -- -- /* Get the total number of nodes for each device and make sure they exist -- * and have at least 1 port */ -- it = wp_object_manager_new_filtered_iterator (self->rescan_om, -- WP_TYPE_DEVICE, NULL); -- for (; wp_iterator_next (it, &val); g_value_unset (&val)) { -- WpPipewireObject *device = g_value_get_object (&val); -- guint total_nodes = get_device_total_nodes (device); -- if (total_nodes > 0) { -- guint32 device_id = wp_proxy_get_bound_id (WP_PROXY (device)); -- g_autoptr (WpIterator) node_it = NULL; -- g_auto (GValue) node_val = G_VALUE_INIT; -- guint ready_nodes = 0; -- -- node_it = wp_object_manager_new_filtered_iterator (self->rescan_om, -- WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, -- PW_KEY_DEVICE_ID, "=i", device_id, NULL); -- for (; wp_iterator_next (node_it, &node_val); g_value_unset (&node_val)) { -- WpPipewireObject *node = g_value_get_object (&node_val); -- g_autoptr (WpPort) port = -- wp_object_manager_lookup (self->rescan_om, -- WP_TYPE_PORT, WP_CONSTRAINT_TYPE_PW_PROPERTY, -- PW_KEY_NODE_ID, "=u", wp_proxy_get_bound_id (WP_PROXY (node)), -- NULL); -- if (port) -- ready_nodes++; -- } -- -- if (ready_nodes < total_nodes) { -- const gchar *device_name = wp_pipewire_object_get_property ( -- WP_PIPEWIRE_OBJECT (device), PW_KEY_DEVICE_NAME); -- wp_debug_object (self, "device '%s' is not ready (%d/%d)", device_name, -- ready_nodes, total_nodes); -- return FALSE; -- } -- } -- } -- -- /* Make sure Audio and Video virtual sources have ports */ -- { -- g_autoptr (WpIterator) node_it = NULL; -- g_auto (GValue) node_val = G_VALUE_INIT; -- node_it = wp_object_manager_new_filtered_iterator (self->rescan_om, -- WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, PW_KEY_DEVICE_ID, "-", -- NULL); -- for (; wp_iterator_next (node_it, &node_val); g_value_unset (&node_val)) { -- WpPipewireObject *node = g_value_get_object (&node_val); -- const gchar *media_class = wp_pipewire_object_get_property ( -- WP_PIPEWIRE_OBJECT (node), PW_KEY_MEDIA_CLASS); -- g_autoptr (WpPort) port = -- wp_object_manager_lookup (self->rescan_om, -- WP_TYPE_PORT, WP_CONSTRAINT_TYPE_PW_PROPERTY, -- PW_KEY_NODE_ID, "=u", wp_proxy_get_bound_id (WP_PROXY (node)), -- NULL); -- if (!port && -- (g_strcmp0 ("Audio/Source/Virtual", media_class) == 0 || -- g_strcmp0 ("Video/Source/Virtual", media_class) == 0)) { -- const gchar *node_name = wp_pipewire_object_get_property ( -- WP_PIPEWIRE_OBJECT (node), PW_KEY_NODE_NAME); -- wp_debug_object (self, "virtual node '%s' is not ready", node_name); -- return FALSE; -- } -- } -- } -- -- return TRUE; --} -- - static void - sync_rescan (WpCore * core, GAsyncResult * res, WpDefaultNodes * self) - { -@@ -491,10 +362,6 @@ sync_rescan (WpCore * core, GAsyncResult * res, WpDefaultNodes * self) - if (!metadata) - return; - -- /* Make sure nodes are ready for current profile */ -- if (!nodes_ready (self)) -- return; -- - wp_trace_object (self, "re-evaluating defaults"); - reevaluate_default_node (self, metadata, AUDIO_SINK); - reevaluate_default_node (self, metadata, AUDIO_SOURCE); -@@ -584,13 +451,10 @@ on_metadata_added (WpObjectManager *om, WpMetadata *metadata, gpointer d) - self->rescan_om = wp_object_manager_new (); - wp_object_manager_add_interest (self->rescan_om, WP_TYPE_DEVICE, NULL); - wp_object_manager_add_interest (self->rescan_om, WP_TYPE_NODE, NULL); -- wp_object_manager_add_interest (self->rescan_om, WP_TYPE_PORT, NULL); - wp_object_manager_request_object_features (self->rescan_om, WP_TYPE_DEVICE, - WP_OBJECT_FEATURES_ALL); - wp_object_manager_request_object_features (self->rescan_om, WP_TYPE_NODE, - WP_OBJECT_FEATURES_ALL); -- wp_object_manager_request_object_features (self->rescan_om, WP_TYPE_PORT, -- WP_OBJECT_FEATURES_ALL); - g_signal_connect_object (self->rescan_om, "objects-changed", - G_CALLBACK (schedule_rescan), self, G_CONNECT_SWAPPED); - g_signal_connect_object (self->rescan_om, "object-added", --- -2.35.1 - diff --git a/media-video/wireplumber/files/wireplumber-0.4.10-m-lua-scripting-allow-converting-GValue-holding-NUL.patch b/media-video/wireplumber/files/wireplumber-0.4.10-m-lua-scripting-allow-converting-GValue-holding-NUL.patch deleted file mode 100644 index c319ac4a617b..000000000000 --- a/media-video/wireplumber/files/wireplumber-0.4.10-m-lua-scripting-allow-converting-GValue-holding-NUL.patch +++ /dev/null @@ -1,36 +0,0 @@ -https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/c2f31bb550755acba31da2e9f5bbdf646ed5e805 - -From c2f31bb550755acba31da2e9f5bbdf646ed5e805 Mon Sep 17 00:00:00 2001 -From: Julian Bouzas <julian.bouzas@collabora.com> -Date: Mon, 16 May 2022 15:41:10 -0400 -Subject: [PATCH] m-lua-scripting: allow converting GValue holding NULL objects - to Lua - ---- - modules/module-lua-scripting/wplua/value.c | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - -diff --git a/modules/module-lua-scripting/wplua/value.c b/modules/module-lua-scripting/wplua/value.c -index 133051a4..e31ae4ac 100644 ---- a/modules/module-lua-scripting/wplua/value.c -+++ b/modules/module-lua-scripting/wplua/value.c -@@ -314,9 +314,14 @@ wplua_gvalue_to_lua (lua_State *L, const GValue *v) - wplua_pushboxed (L, G_VALUE_TYPE (v), g_value_dup_boxed (v)); - break; - case G_TYPE_OBJECT: -- case G_TYPE_INTERFACE: -- wplua_pushobject (L, g_value_dup_object (v)); -+ case G_TYPE_INTERFACE: { -+ GObject *object = g_value_dup_object (v); -+ if (object) -+ wplua_pushobject (L, g_value_dup_object (v)); -+ else -+ lua_pushnil (L); - break; -+ } - case G_TYPE_ENUM: - wplua_enum_to_lua (L, g_value_get_enum (v), G_VALUE_TYPE (v)); - break; --- -GitLab - diff --git a/media-video/wireplumber/files/wireplumber-0.4.10-m-lua-scripting-fix-object-refcounting.patch b/media-video/wireplumber/files/wireplumber-0.4.10-m-lua-scripting-fix-object-refcounting.patch deleted file mode 100644 index 0b86979ce732..000000000000 --- a/media-video/wireplumber/files/wireplumber-0.4.10-m-lua-scripting-fix-object-refcounting.patch +++ /dev/null @@ -1,32 +0,0 @@ -https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/7908b8d7be2a2992c57cd549054eda7ce46e4b44 - -From 13b85bd4a25ab374f5e5e90b7288e6987996856e Mon Sep 17 00:00:00 2001 -From: Michael Olbrich <m.olbrich@pengutronix.de> -Date: Tue, 24 May 2022 11:35:15 +0200 -Subject: [PATCH] m-lua-scripting: fix object refcounting - -7908b8d7be2a2992c57cd549054eda7ce46e4b44 ("m-lua-scripting: allow -converting GValue holding NULL objects to Lua") accidentally added a second -refcount. As a result, the objects are never freeded. - -Remove the second refcount to fix this. ---- - modules/module-lua-scripting/wplua/value.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/modules/module-lua-scripting/wplua/value.c b/modules/module-lua-scripting/wplua/value.c -index e31ae4a..a7927dc 100644 ---- a/modules/module-lua-scripting/wplua/value.c -+++ b/modules/module-lua-scripting/wplua/value.c -@@ -317,7 +317,7 @@ wplua_gvalue_to_lua (lua_State *L, const GValue *v) - case G_TYPE_INTERFACE: { - GObject *object = g_value_dup_object (v); - if (object) -- wplua_pushobject (L, g_value_dup_object (v)); -+ wplua_pushobject (L, object); - else - lua_pushnil (L); - break; --- -2.35.1 - |