.TH "libpipewire-module-pulse-tunnel" 7 "1.2.7" "PipeWire" \" -*- nroff -*-
.ad l
.nh
.SH NAME
libpipewire-module-pulse-tunnel \- Pulse Tunnel 
.SH DESCRIPTION
.PP
The pulse-tunnel module provides a source or sink that tunnels all audio to a remote PulseAudio connection\&.
.PP
It is usually used with the PulseAudio or module-protocol-pulse on the remote end to accept the connection\&.
.PP
This module is usually used together with module-zeroconf-discover that will automatically load the tunnel with the right parameters based on zeroconf information\&.
.PP
.SH "MODULE NAME"
.PP
.PP
\fClibpipewire-module-pulse-tunnel\fP
.PP
.SH "MODULE OPTIONS"
.PP
.PP
.IP "\(bu" 2
\fCtunnel\&.mode\fP: the desired tunnel to create, must be \fCsource\fP or \fCsink\fP\&. (Default \fCsink\fP)
.IP "\(bu" 2
\fCpulse\&.server\&.address\fP: the address of the PulseAudio server to tunnel to\&.
.IP "\(bu" 2
\fCpulse\&.latency\fP: the latency to end-to-end latency in milliseconds to maintain (Default 200)\&.
.IP "\(bu" 2
\fCreconnect\&.interval\&.ms\fP: when the remote connection is broken, retry to connect with this interval in millisconds\&. A value of 0 disables recovery and will result in a module unload\&. (Default 0) (Since 1\&.1\&.0)
.IP "\(bu" 2
\fCstream\&.props\fP: Extra properties for the local stream\&.
.PP
.PP
.SH "GENERAL OPTIONS"
.PP
.PP
Options with well-known behavior\&.
.PP
.IP "\(bu" 2
\fBremote.name\fP
.IP "\(bu" 2
\fBaudio.format\fP
.IP "\(bu" 2
\fBaudio.rate\fP
.IP "\(bu" 2
\fBaudio.channels\fP
.IP "\(bu" 2
\fBaudio.position\fP
.IP "\(bu" 2
\fBnode.latency\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 VIRTUAL SINK"
.PP
.PP
.PP
.nf
# ~/\&.config/pipewire/pipewire\&.conf\&.d/my\-pulse\-tunnel\&.conf

context\&.modules = [
{   name = libpipewire\-module\-pulse\-tunnel
    args = {
        tunnel\&.mode = sink
        # Set the remote address to tunnel to
        pulse\&.server\&.address = "tcp:192\&.168\&.1\&.126"
        #pulse\&.latency = 200
        #reconnect\&.interval\&.ms = 0
        #audio\&.rate=<sample rate>
        #audio\&.channels=<number of channels>
        #audio\&.position=<channel map>
        #target\&.object=<remote target name>
        stream\&.props = {
            # extra sink properties
        }
    }
}
]
.fi
.PP
 

