[config] important config files
This commit is contained in:
commit
7f2b5577fc
6 changed files with 213 additions and 0 deletions
10
aes67-proxy@.service
Normal file
10
aes67-proxy@.service
Normal file
|
@ -0,0 +1,10 @@
|
|||
[Unit]
|
||||
Description=Call user's pipewire-aes67 after network
|
||||
After=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/bin/systemctl --user --machine=%i@ start pipewire-aes67
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
8
ethernet-static
Normal file
8
ethernet-static
Normal file
|
@ -0,0 +1,8 @@
|
|||
Description='A basic static ethernet connection'
|
||||
Interface=end0
|
||||
Connection=ethernet
|
||||
IP=static
|
||||
Address='169.254.14.228/16'
|
||||
#Routes=('192.168.0.0/24 via 192.168.1.2')
|
||||
Gateway='169.254.14.254'
|
||||
ForceConnect=yes
|
12
linuxptp.ptp4l@.service
Normal file
12
linuxptp.ptp4l@.service
Normal file
|
@ -0,0 +1,12 @@
|
|||
[Unit]
|
||||
Description=Precision Time Protocol (PTP) service for %I
|
||||
Documentation=man:ptp4l
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/sbin/ptp4l -f /etc/linuxptp/ptp4l.conf -i %I -p /dev/ptp0 -l6 -E -H -m --step_threshold 0.00000001 -4 --priority1 255 --priority2 255 --domainNumber 0 --dscp_event 46
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
165
pipewire-aes67.conf
Normal file
165
pipewire-aes67.conf
Normal file
|
@ -0,0 +1,165 @@
|
|||
# AES67 config file for PipeWire version "1.2.7" #
|
||||
#
|
||||
# Copy and edit this file in @PIPEWIRE_CONFIG_DIR@ for system-wide changes
|
||||
# or in ~/.config/pipewire for local changes.
|
||||
#
|
||||
# It is also possible to place a file with an updated section in
|
||||
# @PIPEWIRE_CONFIG_DIR@/pipewire-aes67.conf.d/ for system-wide changes or in
|
||||
# ~/.config/pipewire/pipewire-aes67.conf.d/ for local changes.
|
||||
#
|
||||
|
||||
|
||||
context.properties = {
|
||||
## Configure properties in the system.
|
||||
#mem.warn-mlock = false
|
||||
#mem.allow-mlock = true
|
||||
#mem.mlock-all = false
|
||||
#log.level = 2
|
||||
|
||||
|
||||
#default.clock.quantum-limit = 8192
|
||||
}
|
||||
|
||||
|
||||
context.spa-libs = {
|
||||
support.* = support/libspa-support
|
||||
}
|
||||
|
||||
|
||||
context.objects = [
|
||||
# An example clock reading from /dev/ptp0. You can also specify the network interface name,
|
||||
# pipewire will query the interface for the current active PHC index. Another option is to
|
||||
# sync the ptp clock to CLOCK_TAI and then set clock.id = tai, keep in mind that tai may
|
||||
# also be synced by a NTP client.
|
||||
# The precedence is: device, interface, id
|
||||
{ factory = spa-node-factory
|
||||
args = {
|
||||
factory.name = support.node.driver
|
||||
node.name = PTP0-Driver
|
||||
node.group = pipewire.ptp0
|
||||
# This driver should only be used for network nodes marked with group
|
||||
priority.driver = 100000
|
||||
clock.name = "clock.system.ptp0"
|
||||
### Please select the PTP hardware clock here
|
||||
# Interface name is the preferred method of specifying the PHC
|
||||
#clock.interface = "end0"
|
||||
clock.device = "/dev/ptp0"
|
||||
#clock.id = tai
|
||||
# Lower this in case of periodic out-of-sync
|
||||
resync.ms = 1.5
|
||||
object.export = true
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
context.modules = [
|
||||
{ name = libpipewire-module-rt
|
||||
args = {
|
||||
nice.level = -11
|
||||
#rt.prio = @rtprio_client@
|
||||
#rt.time.soft = -1
|
||||
#rt.time.hard = -1
|
||||
}
|
||||
flags = [ ifexists nofail ]
|
||||
}
|
||||
{ name = libpipewire-module-protocol-native }
|
||||
{ name = libpipewire-module-client-node }
|
||||
{ name = libpipewire-module-spa-node-factory }
|
||||
{ name = libpipewire-module-adapter }
|
||||
{ name = libpipewire-module-rtp-sap
|
||||
args = {
|
||||
### Please select the interface here
|
||||
local.ifname = end0
|
||||
sap.ip = 239.255.255.255
|
||||
sap.port = 9875
|
||||
net.ttl = 32
|
||||
net.loop = false
|
||||
# If you use another PTPv2 daemon supporting management
|
||||
# messages over a UNIX socket, specify its path here
|
||||
#ptp.management-socket = "/var/run/ptp4lro"
|
||||
|
||||
|
||||
stream.rules = [
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
rtp.session = "~.*"
|
||||
}
|
||||
]
|
||||
actions = {
|
||||
create-stream = {
|
||||
node.virtual = false
|
||||
media.class = "Audio/Source"
|
||||
device.api = aes67
|
||||
# You can adjust the latency buffering here. Use integer values only
|
||||
sess.latency.msec = 2
|
||||
node.group = pipewire.ptp0
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
sess.sap.announce = true
|
||||
}
|
||||
]
|
||||
actions = {
|
||||
announce-stream = {}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{ name = libpipewire-module-rtp-sink
|
||||
args = {
|
||||
### Please select the interface here
|
||||
local.ifname = end0
|
||||
### If you want to create multiple output streams, please copy the whole
|
||||
### module-rtp-sink block, but change this multicast IP to another unused
|
||||
### one keeping 239.69.x.x range unless you know you need another one
|
||||
# source.ip = 0.0.0.0
|
||||
destination.ip = 239.69.1.8
|
||||
destination.port = 5004
|
||||
net.mtu = 1280
|
||||
net.ttl = 32
|
||||
net.loop = false
|
||||
# These should typically be equal
|
||||
# You can customize packet length, but 1 ms should work for every device
|
||||
# Consult receiver documentation to ensure it supports the value you set
|
||||
sess.min-ptime = 2
|
||||
sess.max-ptime = 2
|
||||
### Please change this, especially if you create multiple sinks
|
||||
sess.name = "0_to_7"
|
||||
sess.media = "audio"
|
||||
# This property is used if you aren't using ptp4l 4
|
||||
#sess.ts-refclk = "ptp=traceable"
|
||||
#sess.ts-offset = 0
|
||||
# You can adjust the latency buffering here. Use integer values only
|
||||
sess.latency.msec = 2
|
||||
audio.format = "S24BE"
|
||||
audio.rate = 48000
|
||||
audio.channels = 8
|
||||
# These channel names will be visible both to applications and AES67 receivers
|
||||
node.channel-names = ["0", "1", "2", "3", "4", "5", "6", "7"]
|
||||
# Uncomment this and comment node.group in send/recv stream.props to allow
|
||||
# separate drivers for the RTP sink and PTP sending (i.e. force rate matching on
|
||||
# the AES67 node rather than other nodes)
|
||||
#aes67.driver-group = "pipewire.ptp0"
|
||||
|
||||
|
||||
stream.props = {
|
||||
### Please change the sink name, this is necessary when you create multiple sinks
|
||||
node.name = "0_to_7"
|
||||
media.class = "Audio/Sink"
|
||||
node.virtual = false
|
||||
device.api = aes67
|
||||
sess.sap.announce = true
|
||||
node.always-process = true
|
||||
node.group = pipewire.ptp0
|
||||
rtp.ntp = 0
|
||||
rtp.fetch-ts-refclk = true
|
||||
}
|
||||
}
|
||||
},
|
||||
]
|
10
pipewire-aes67.service
Normal file
10
pipewire-aes67.service
Normal file
|
@ -0,0 +1,10 @@
|
|||
[Unit]
|
||||
Description=PipeWire Multimedia Service
|
||||
Requires=pipewire.socket
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/pipewire-aes67
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
8
ptp4l.conf
Normal file
8
ptp4l.conf
Normal file
|
@ -0,0 +1,8 @@
|
|||
[global]
|
||||
time_stamping hardware
|
||||
tx_timestamp_timeout 10
|
||||
twoStepFlag 1
|
||||
delay_mechanism Auto
|
||||
delay_response_timeout 10
|
||||
clientOnly 1
|
||||
|
Loading…
Add table
Reference in a new issue