Loss of right channel - playback_FR not configured
Right channel can become empty when playing to the alsa output node.
Looking at the input ports corresponding to the alsa node I see on the R port
.. // :playback_FR port "Format": [ ], "Buffers": [ ], ..
which tells me it has not been configured successfully as the :playback_FL port works and has
"Format": [ { "mediaType": "audio", "mediaSubtype": "dsp", "format": "F32P" } ], "Buffers": [ { "buffers": { "default": 2, "min": 1, "max": 32 }, "blocks": 1, "size": { "default": 32768, "min": 64, "max": 2147483647 }, "stride": 4 } ],
I've tried to look into the link/port negotiation and observed in impl-link.c/pw_impl_link_prepare that this->prepared is true while the associated port is still in the state PW_IMPL_PORT_STATE_CONFIGURE which I found odd (?) because I would expect that this->prepared should be set to false each time the port changes state to PW_IMPL_PORT_STATE_CONFIGURE in port_state_changed which it apparently is not when things go wrong. Could that be the problem? Should pw_impl_port_update_state(port, PW_IMPL_PORT_STATE_CONFIGURE, 0, NULL) be called somewhere it is not at the moments?
- Restarting wireplumber or pipewire usually solves it.
- No errors in the log, and the links are setup correctly according to pw-link.
- The port also believes it is linked as it has pw_impl_port_is_linked() returns 1 for the port when the issue occurred.