Skip to content

[libtaskmanager] Increase buffer for pipewire format negotiation

David Edmundson requested to merge work/pipewire_buffer into master

Libtaskmanager's buffer for spa_builder is too small on certain configurations. Because podBuilder->state.offset is never reset, the buffer space can run out when EGL returns a long list of dma_buf modifiers, causing PipeWire negotiation to fail.

An example is when EGL returns 20 modifiers. There are 6 formats defined in pipewiresourcestream.cpp, for each format it will construct 2 frames, one with 218=168 bytes long of modifiers. The modifier lists for all frames will be 6168=1008 bytes (only 16 bytes left of 1024 bytes), let alone other frames.

BUG: 446061

Merge request reports

Loading