pipewire/spa
Barnabás Pőcze c80af0c2c0 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.

(cherry picked from commit 68627c5563)
2025-09-27 13:22:59 +02:00
..
examples Port videotestsrc to LoopUtils 2024-07-01 15:28:14 +00:00
include meta: add SPA_META_SYNC_TIMELINE_UNSCHEDULED_RELEASE 2025-09-11 09:48:21 +02:00
include-private/spa-private spa: move dbus helpers out of bluez plugin 2024-02-05 13:03:20 +00:00
lib spa: remove some old includes 2024-11-26 13:30:58 +01:00
plugins spa: libcamera: source: remove impl::pendingRequests 2025-09-27 13:22:59 +02:00
tests Add GNU/Hurd support 2023-09-24 15:11:52 +00:00
tools spa: add spa_json_object_next 2024-09-16 09:50:36 +02:00
meson.build spa: fix ALSA UMP support detection in meson 2025-03-11 12:27:25 +01:00