.TH "libpipewire-module-pipe-tunnel" 7 "1.6.8" "PipeWire" \" -*- nroff -*- .ad l .nh .SH NAME libpipewire-module-pipe-tunnel \- Unix Pipe Tunnel .SH DESCRIPTION .PP The pipe-tunnel module provides a source or sink that tunnels all audio to or from a unix pipe respectively\&. .PP .SH "MODULE NAME" .PP .PP \fRlibpipewire-module-pipe-tunnel\fP .PP .SH "MODULE OPTIONS" .PP .PP .IP "\(bu" 2 \fRtunnel\&.mode\fP: the desired tunnel to create\&. (Default \fRplayback\fP) .IP "\(bu" 2 \fRtunnel\&.may-pause\fP: if the tunnel stream is allowed to pause on xrun .IP "\(bu" 2 \fRpipe\&.filename\fP: the filename of the pipe\&. .IP "\(bu" 2 \fRstream\&.props\fP: Extra properties for the local stream\&. .PP .PP When \fRtunnel\&.mode\fP is \fRcapture\fP, a capture stream on the default source is created\&. The samples captured from the source will be written to the pipe\&. .PP When \fRtunnel\&.mode\fP is \fRsink\fP, a sink node is created\&. Samples played on the sink will be written to the pipe\&. .PP When \fRtunnel\&.mode\fP is \fRplayback\fP, a playback stream on the default sink is created\&. The samples read from the pipe will be played on the sink\&. .PP When \fRtunnel\&.mode\fP is \fRsource\fP, a source node is created\&. Samples read from the the pipe will be made available on the source\&. .PP \fRtunnel\&.may-pause\fP allows the tunnel stream to become inactive (paused) when there is no data in the fifo or when the fifo is full\&. For \fRcapture\fP and \fRplayback\fP \fRtunnel\&.mode\fP this is by default true\&. For \fRsource\fP and \fRsink\fP \fRtunnel\&.mode\fP, this is by default false\&. A paused stream will consume no CPU and will resume when the fifo becomes readable or writable again\&. .PP When \fRpipe\&.filename\fP is not given, a default fifo in \fR/tmp/fifo_input\fP or \fR/tmp/fifo_output\fP will be created that can be written and read respectively, depending on the selected \fRtunnel\&.mode\fP\&. .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.layout\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 name or serial id to link to .PP .PP When not otherwise specified, the pipe will accept or produce a 16 bits, stereo, 48KHz sample stream\&. .PP .SH "EXAMPLE CONFIGURATION OF A PIPE PLAYBACK STREAM" .PP .PP .PP .nf # ~/\&.config/pipewire/pipewire\&.conf\&.d/my\-pipe\-tunnel\&.conf context\&.modules = [ { name = libpipewire\-module\-pipe\-tunnel args = { tunnel\&.mode = playback #tunnel\&.may\-pause = true # Set the pipe name to tunnel to pipe\&.filename = "/tmp/fifo_output" #audio\&.format= #audio\&.rate= #audio\&.channels= #audio\&.position= #target\&.object= stream\&.props = { # extra sink properties } } } ] .fi .PP