Delay add_buffer event until format is fixated
If you are filing this issue with a regular release please try master as it might already be fixed.
Version, Distribution, Desktop Environment: 0.3.38, Archlinux, Sway
Description of Problem:
PipeWire starts creating buffers, even when the format negotiation has not finished the fixation phase, when the flag
SPA_POD_PROP_FLAG_DONT_FIXATE is used. This results in the producer trying to create buffers with an undefined state, since negotiation has not finished.
Steps to Reproduce:
- Connect two clients using the flag
- Inspect the log for the negotiation state and the
add_buffer is called before negotiation finished.
add_buffer is called after format is fixated.
First naive attempt to fix it:
This will halt negotiation indefinitely, no new
param_changed event is triggered.