LIBPIPEWIRE-MODULE-ROC-SOURCE(7)
π libpipewire-module-roc-source β the ROC source module, bestie edition π
okay so you found yourself a miscellaneous information manual page for libpipewire-module-roc-source... welcome to the group chat, pull up a chair π«Ά
β¨ NAME β¨
libpipewire-module-roc-source β ROC source. that's it, that's the name, short and iconic π
πΈ DESCRIPTION πΈ
okay so the roc-source module is literally out here creating a PipeWire source that receives samples from a ROC sender and then passes those little sample babies along to whatever sink it's connected to. it's giving relay race πβοΈπ¨
and then?? you can connect it to any audio device. any of them. slay β¨
π MODULE NAME π
libpipewire-module-roc-source
yes bestie, that's the whole name, remember it for your context.modules config π
π MODULE OPTIONS π
these are the options that are specific to how this module behaves. obsessed with how many there are π¦
source.props = {}β properties to be passed to the source streamsource.name = <str>β thenode.nameof the source. name your baby β¨local.ip = <str>β local sender iplocal.source.port = <str>β local receiver TCP/UDP port for source packetslocal.repair.port = <str>β local receiver TCP/UDP port for receiver packetslocal.control.port = <str>β local receiver TCP/UDP port for control packetssess.latency.msec = <str>β target network latency in millisecondsroc.resampler.backend = <str>β possible values:default,builtin,speex,speexdec.roc.resampler.profile = <str>β possible values:default,high,medium,low.roc.latency-tuner.backend = <str>β possible values:default,niqroc.latency-tuner.profile = <str>β possible values:default,intact,responsive,gradualfec.code = <str>β possible values:default,disable,rs8m,ldpcresampler.profile = <str>β deprecated, useroc.resampler.profileinstead π (we've all been there, it's fine, just update your config)log.level = <str>β log level for roc-toolkit. possible values:DEFAULT,NONE,ERROR,INFO,DEBUG,TRACE;DEFAULTfollows the log level of the PipeWire context.
lowkey important: those "possible values" lists are exact. don't freestyle them, bestie, the module will not be amused π
π GENERAL OPTIONS π
these ones have well-known behavior, so they're just vibing with the rest of PipeWire:
node.namenode.descriptionnode.virtualnode.networkmedia.classaudio.position
π EXAMPLE CONFIGURATION π
here's the moment you've been waiting for, a whole config file, ready to go, main character energy π
# ~/.config/pipewire/pipewire.conf.d/my-roc-source.conf
context.modules = [
{ name = libpipewire-module-roc-source
args = {
local.ip = 0.0.0.0
#roc.resampler.backend = default
roc.resampler.profile = medium
#roc.latency-tuner.backend = default
#roc.latency-tuner.profile = default
fec.code = disable
sess.latency.msec = 5000
local.source.port = 10001
local.repair.port = 10002
local.control.port = 10003
source.name = "ROC Source"
source.props = {
node.name = "roc-source"
}
audio.position = [ FL FR ]
log.level = DEFAULT
}
}
]
see how the commented-out lines are just chillin' there with a #? uncomment them when you wanna switch that setting up. the way that audio.position = [ FL FR ] is sitting there serving stereo... iconic π§β¨
and that's the whole page, bestie π«Ά go forth and relay those samples π
this was PipeWire 1.6.11, dated with the manual page libpipewire-module-roc-source(7) β bye pookie, drink water ππΈ
π¦ 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