Provided by: libpipewire-0.3-modules_1.4.5-1ubuntu2_amd64 bug

NAME

       libpipewire-module-link-factory - Link Factory

DESCRIPTION

       Allows clients to create links between ports.

       This module creates a new factory. Clients that can see the factory can use the factory name (link-
       factory) to create new link objects with pw_core_create_object(). It is also possible to create objects
       in the config file.

       Object of the PW_TYPE_INTERFACE_Link will be created and a proxy to it will be returned.

       As an argument to the create_object call, a set of properties will control what ports will be linked.

MODULE NAME

       libpipewire-module-link-factory

MODULE OPTIONS

       • allow.link.passive:  if  the link.passive property is allowed. Default false. By default, the core will
         decide when a link is passive based on the properties of the node and ports.

PROPERTIES FOR THE CREATE_OBJECT CALL

       • link.output.node: The output node to use.  This  can  be  the  node  object.id,  node.name,  node.nick,
         node.description  or  object.path  of  a  node. When the property is not given or NULL, the output port
         should be specified.

       • link.output.port: The output port to link. This can be  a  port  object.id,  port.name,  port.alias  or
         object.path. If an output node is specified, the port must belong to the node. Finding a port in a node
         using  the  port.id  is  deprecated and may lead to unexpected results when the port.id also matches an
         object.id. If no output port is given, an output node must be specified and a  random  (unlinked)  port
         will be used from the node.

       • link.input.node:  The  input  node  to  use.  This  can  be  the  node object.id, node.name, node.nick,
         node.description or object.path of a node. When the property is not  given  or  NULL,  the  input  port
         should be specified.

       • link.input.port:  The  input  port  to  link.  This  can  be a port object.id, port.name, port.alias or
         object.path. If an input node is specified, the port must belong to the node. Finding a port in a  node
         using  the  port.id  is  deprecated and may lead to unexpected results when the port.id also matches an
         object.id. If no input port is given, an input node must be specified and a random (unlinked) port will
         be used from the node.

       • object.linger: Keep the link around even when the client that created it is gone.

       • link.passive: The link is passive, meaning that it will not keep nodes busy. By default  this  property
         is ignored and the node and port properties are used to determine the passive state of the link.

EXAMPLE CONFIGURATION

       The module is usually added to the config file of the main pipewire daemon.

       context.modules = [
       { name = libpipewire-link-factory
         args = {
             #allow.link.passive = false
         }
       }
       ]

CONFIG OVERRIDE

       A module.link-factory.args config section can be added to override the module arguments.

       # ~/.config/pipewire/pipewire.conf.d/my-link-factory-args.conf

       module.link-factory.args = {
           #allow.link.passive = false
       }

CONFIG OBJECTS

       To create an object from the factory, one can use the pw_core_create_object() method or make an object in
       the context.objects section like:

       context.objects = [
       { factory = link-factory
           args = {
               link.output.node = system
               link.output.port = capture_2
               link.input.node  = my-mic
               link.input.port  = input_FR
           }
       }

       Note that this only works when the ports that need to be linked are available at the time the config file
       is parsed.

SEE ALSO

       • pw-link: a tool to manage port links

PipeWire                                              1.4.5                   libpipewire-module-link-factory(7)