api.alsa.period-size is not respected
I'm using the following configuration:
local rule = {
matches = {
{
{
'node.name',
'equals',
'alsa_output.usb-Focusrite_Scarlett_2i2_USB_Y8AUM280954FBA-00.HiFi__scarlett2i_stereo_out_USB_0_0_1__sink',
},
},
{
{
'node.name',
'equals',
'alsa_input.usb-Focusrite_Scarlett_2i2_USB_Y8AUM280954FBA-00.HiFi__scarlett2i_mono_in_USB_0_0__source',
},
},
{
{
'node.name',
'equals',
'alsa_input.usb-Focusrite_Scarlett_2i2_USB_Y8AUM280954FBA-00.HiFi__scarlett2i_mono_in_USB_0_1__source',
},
},
},
apply_properties = {
-- reduce latency
['api.alsa.period-size'] = 128,
},
}
table.insert(alsa_monitor.rules, rule)
And indeed when the node are registered, they get registered with 128 as buffer size:
$ pw-dump | grep 'period-size": '
"api.alsa.period-size": 128,
"api.alsa.period-size": 128,
"api.alsa.period-size": 128,
However, as soon as I connect something to the sink, the sink period size changes to 480 instead.
pw-dump | grep 'period-size": '
"api.alsa.period-size": 480,
"api.alsa.period-size": 128,
"api.alsa.period-size": 128,
$ cat /proc/asound/card*/*/*/hw_params
closed
closed
closed
closed
closed
closed
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 480
buffer_size: 24000
I've attached the full pw-dump output for reference.
pw-dump.json (pipewire 0.3.70)
P.S: I've tested this on 0.3.70, as well as using the master git branch
Here's the pw-dump.json when running from master (b74f2e19).