diff --git a/src/config/wireplumber.conf b/src/config/wireplumber.conf index e02ffb88..ad830941 100644 --- a/src/config/wireplumber.conf +++ b/src/config/wireplumber.conf @@ -579,6 +579,7 @@ wireplumber.components = [ { name = linking/find-best-target.lua, type = script/lua provides = hooks.linking.target.find-best + requires = [ metadata.filters ] } { name = linking/get-filter-from-target.lua, type = script/lua diff --git a/src/scripts/linking/find-best-target.lua b/src/scripts/linking/find-best-target.lua index b73839e7..cab8ea61 100644 --- a/src/scripts/linking/find-best-target.lua +++ b/src/scripts/linking/find-best-target.lua @@ -8,6 +8,7 @@ lutils = require ("linking-utils") cutils = require ("common-utils") +futils = require ("filter-utils") log = Log.open_topic ("s-linking") SimpleEventHook { @@ -52,8 +53,10 @@ SimpleEventHook { tostring (target_props ["node.name"]), tostring (target_node_id))) - if si_target_link_group ~= nil then - Log.debug ("... ignoring filter as best target") + -- Skip smart filters as best target + if si_target_link_group ~= nil and + futils.is_filter_smart (target_direction, si_target_link_group) then + Log.debug ("... ignoring smart filter as best target") goto skip_linkable end