pipewire/spa
Barnabás Pőcze 68627c5563 spa: libcamera: source: remove impl::pendingRequests
The handling of `impl::pendingRequests` is a bit problematic because,
for example, during startup, if `spa_libcamera_buffer_recycle()` observes
that `impl::active == false`, then it will try to append to `impl::pendingRequests`,
which is being iterated in the main thread in `spa_libcamera_stream_on()`.
That is not allowed on an `std::deque`.

So instead remove it altogether, and simply queue all requests when starting.
After `libcamera::Camera::stop()` returns, every request is guaranteed not
to be used by libcamera, and they can be freely reused, so this is safe to do.

This also removes the need for calling `spa_libcamera_buffer_recycle()` when
the buffers are set/unset on a port since that function no longer changes
anything apart from updating `buffer::flags` but `spa_libcamera_alloc_buffers()`
is modified appropriately to take care of that. And in the case of
`spa_libcamera_clear_buffers()` clearing the flag is not required because the
next `spa_libcamera_alloc_buffers()` call will reset reset the flags.
2025-08-13 10:23:09 +02:00
..
examples spa: examples: local-libcamera: pass camera id to the plugin 2025-08-01 15:40:28 +00:00
include pod: fix some data races in body code 2025-08-05 10:49:33 -04:00
include-private/spa-private spa: move dbus helpers out of bluez plugin 2024-02-05 13:03:20 +00:00
lib pod: rework the parser 2025-07-29 15:15:02 +02:00
plugins spa: libcamera: source: remove impl::pendingRequests 2025-08-13 10:23:09 +02:00
tests pod: check that choices are not empty 2025-07-15 10:13:18 +02:00
tools meson.build: make spa-json-dump available for subprojects 2025-07-23 12:19:21 +00:00
meson.build meson: Always use -fno-strict-aliasing and -fno-strict-overflow 2025-07-24 07:30:28 +00:00