LIBPIPEWIRE-MODULE-ROC-SINK(7)
π libpipewire-module-roc-sink β ROC sink π
okay bestie, sit down, hydrate, and let me tell you about this little icon from the Miscellaneous Information Manual β it's libpipewire-module-roc-sink, section 7 of the manual pages, and she is serving.
β¨ NAME β¨
libpipewire-module-roc-sink β the ROC sink, the moment, the legend π
πΈ DESCRIPTION πΈ
So the roc-sink module does one gorgeous thing: it spins up a PipeWire sink that sends samples off to a receiver address you set up ahead of time. Preconfigured receiver, preconfigured vibe. π
And then β because she's generous β you can connect an audio stream from literally any running application into that sink, or you can just make it the default sink and let it be the main character. π
π¦ MODULE NAME π¦
libpipewire-module-roc-sink
that's her, that's the name, no notes. β¨
π MODULE OPTIONS π
Options specific to the behavior of this module β these are the ones that make her her:
sink.props = {}β properties to be passed to the sink stream. all the little details go in here, bestie π«Άsink.name = <str>β thenode.nameof the sink. her government name.remote.ip = <str>β the remote receiver ip. where the packets are going, fr fr πremote.source.port = <str>β remote receiver TCP/UDP port for source packetsremote.repair.port = <str>β remote receiver TCP/UDP port for receiver packetsremote.control.port = <str>β remote receiver TCP/UDP port for control packetsfec.code = <str>β possible values:disable,rs8m,ldpc. pick your fighter.log.level = <str>β log level forroc-toolkit. possible values:DEFAULT,NONE,ERROR,INFO,DEBUG,TRACE. andDEFAULT? it follows the log level of the PipeWire context. she's a follower (affectionate) π¦
π GENERAL OPTIONS π
These ones have well-known behavior, so I'm not about to over-explain β the whole ecosystem already knows her:
node.namenode.descriptionnode.virtualnode.networkmedia.classaudio.position
π EXAMPLE CONFIGURATION π
copy this, paste this, live your truth. it's giving working config.
# ~/.config/pipewire/pipewire.conf.d/my-roc-sink.conf
context.modules = [
{ name = libpipewire-module-roc-sink
args = {
fec.code = disable
remote.ip = 192.168.0.244
remote.source.port = 10001
remote.repair.port = 10002
remote.control.port = 10003
sink.name = "ROC Sink"
sink.props = {
node.name = "roc-sink"
}
audio.position = [ FL FR ]
log.level = DEFAULT
}
}
]
lowkey reminder thatfec.code = disablein the example means the forward error correction is off in that config β if you want it, you've gotrs8mandldpcsitting right there in the options list. π«Ά
okay that's the whole page, I fear. and yes, every single detail survived the glow-up β options, values, paths, the config, all of it. periodt. π
sign-off time, bestie: this was PipeWire 1.6.11 talking, brought to you in libpipew...-roc-sink(7) form β you know, the page whose title got a lil truncated by the terminal, but we still love her. stay hydrated, keep your receiver ports straight, and slay. ππβ¨
π¦ where this page comes from
- fedora 44: pipewire-libs 1.6.11-1.fc44 Β· MIT AND GPL-2.0-or-later AND BSD-2-Clause AND LGPL-2.0-or-later
- fedora 44: pipewire-libs 1.6.11-1.fc44 Β· MIT AND GPL-2.0-or-later AND BSD-2-Clause AND LGPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms