.TH "libpipewire-module-netjack2-driver" 7 "1.6.8" "PipeWire" \" -*- nroff -*-
.ad l
.nh
.SH NAME
libpipewire-module-netjack2-driver \- Netjack2 driver 
.SH DESCRIPTION
.PP
The netjack2-driver module provides a source or sink that is following a netjack2 manager\&.

.PP
It is meant to be used over stable (ethernet) network connections with minimal latency and jitter\&.

.PP
The driver normally decides how many ports it will send and receive from the manager\&. By default however, these values are set to -1 so that the manager decides on the number of ports\&.

.PP
With the global or per stream audio\&.port and midi\&.ports properties this behaviour can be adjusted\&.

.PP
The driver will send out UDP messages on a (typically) multicast address to inform the manager of the available driver\&. This will then instruct the manager to configure and start the driver\&.

.PP
On the driver side, a sink and/or source with the specified numner of audio and midi ports will be created\&. On the manager side there will be a corresponding source and/or sink created respectively\&.

.PP
The driver will be scheduled with exactly the same period as the manager but with a configurable number of periods of delay (see netjack2\&.latency, default 2)\&.

.PP
.SH "MODULE NAME"
.PP

.PP
\fRlibpipewire-module-netjack2-driver\fP

.PP
.SH "MODULE OPTIONS"
.PP

.PP
.IP "\(bu" 2
\fRdriver\&.mode\fP: the driver mode, sink|source|duplex, default duplex\&. This set the per stream audio\&.port and midi\&.ports default from -1 to 0\&. sink mode defaults to no source ports, source mode to no sink ports and duplex leaves the defaults as they are\&.
.IP "\(bu" 2
\fRlocal\&.ifname = <str>\fP: interface name to use
.IP "\(bu" 2
\fRnet\&.ip =<str>\fP: multicast IP address, default "225\&.3\&.19\&.154"
.IP "\(bu" 2
\fRnet\&.port =<int>\fP: control port, default 19000
.IP "\(bu" 2
\fRnet\&.mtu = <int>\fP: MTU to use, default 1500
.IP "\(bu" 2
\fRnet\&.ttl = <int>\fP: TTL to use, default 1
.IP "\(bu" 2
\fRnet\&.loop = <bool>\fP: loopback multicast, default false
.IP "\(bu" 2
\fRsource\&.ip =<str>\fP: IP address to bind to, default "0\&.0\&.0\&.0"
.IP "\(bu" 2
\fRsource\&.port =<int>\fP: port to bind to, default 0 (allocate)
.IP "\(bu" 2
\fRnetjack2\&.client-name\fP: the name of the NETJACK2 client\&.
.IP "\(bu" 2
\fRnetjack2\&.latency\fP: the latency in cycles, default 2
.IP "\(bu" 2
\fRaudio\&.ports\fP: the number of audio ports\&. Can also be added to the stream props\&. A value of -1 will configure to the number of audio ports on the manager\&.
.IP "\(bu" 2
\fRmidi\&.ports\fP: the number of midi ports\&. Can also be added to the stream props\&. A value of -1 will configure to the number of midi ports on the manager\&.
.IP "\(bu" 2
\fRsource\&.props\fP: Extra properties for the source filter\&.
.IP "\(bu" 2
\fRsink\&.props\fP: Extra properties for the sink filter\&.
.PP

.PP
.SH "GENERAL OPTIONS"
.PP

.PP
Options with well-known behavior\&.

.PP
.IP "\(bu" 2
\fBremote.name\fP
.IP "\(bu" 2
\fBaudio.channels\fP
.IP "\(bu" 2
\fBaudio.layout\fP
.IP "\(bu" 2
\fBaudio.position\fP
.IP "\(bu" 2
\fBnode.name\fP
.IP "\(bu" 2
\fBnode.description\fP
.IP "\(bu" 2
\fBnode.group\fP
.IP "\(bu" 2
\fBnode.virtual\fP
.IP "\(bu" 2
\fBmedia.class\fP
.IP "\(bu" 2
\fBtarget.object\fP to specify the remote node\&.name or serial\&.id to link to
.PP

.PP
.SH "EXAMPLE CONFIGURATION OF A DUPLEX SINK/SOURCE"
.PP

.PP
.PP
.nf
# ~/\&.config/pipewire/pipewire\&.conf\&.d/my\-netjack2\-driver\&.conf

context\&.modules = [
{   name = libpipewire\-module\-netjack2\-driver
    args = {
        #netjack2\&.client\-name = PipeWire
        #netjack2\&.latency     = 2
        #midi\&.ports           = 0
        #audio\&.ports          = \-1
        #audio\&.channels       = 2
        #audio\&.position       = [ FL FR ]
        source\&.props = {
            # extra source properties
        }
        sink\&.props = {
            # extra sink properties
        }
    }
}
]
.fi
.PP
 

