Skip to content

[rdp,vnc]-pipewire-stream: Don't queue chosen PipeWire buffer

The commit message for both backends is the same. Quoting it here:

When choosing the latest PipeWire buffer with a mouse pointer bitmap
and the latest PipeWire buffer with frame data, the same buffer can be
chosen for the mouse pointer bitmap and the frame data.
If there is in a further step another buffer with a mouse pointer
bitmap and it is chosen for the latest mouse pointer bitmap, then the
current PipeWire buffer won't be queued, because it is still chosen for
the latest frame data.
However, if the situation is the opposite, where first the same buffer
was chosen for the latest mouse pointer bitmap and the frame data, and
then the next buffer has no mouse pointer bitmap, but new frame
data, then the current buffer is queued again, although it is still
chosen for the latest mouse pointer bitmap.

Fix this situation by applying the same-buffer-logic in the mouse
pointer bitmap path to the frame data path as well.

This was actually mentioned in !75 (comment 1399759), but for some reason I did not realize, that not every buffer must contain pointer data. Sorry.
The logic in the has-pointer-bitmap-path is still correct, but a similar version needs to be added for the frame path too.

Merge request reports