spa: libcamera: source: freeBuffers(): split pending request removal

`freeBuffers()` should undo exactly what `allocBuffers()` does. However,
it currently also clears `impl::pendingRequests`, but that is filled
by `spa_libcamera_buffer_recycle()` during `spa_libcamera_alloc_buffers()`.

So remove the clearing of `impl::pendingRequests` from `freeBuffers()` and
move it directly into `spa_libcamera_clear_buffers()`.

(cherry picked from commit 89545946fd)
This commit is contained in:
Barnabás Pőcze 2025-08-08 12:10:37 +02:00 committed by Robert Mader
parent 93426bca4b
commit a5cb888578

View file

@ -322,7 +322,6 @@ int allocBuffers(struct impl *impl, struct port *port, unsigned int count)
void freeBuffers(struct impl *impl, struct port *port) void freeBuffers(struct impl *impl, struct port *port)
{ {
impl->pendingRequests.clear();
impl->requestPool.clear(); impl->requestPool.clear();
impl->allocator->free(port->streamConfig.stream()); impl->allocator->free(port->streamConfig.stream());
} }
@ -353,6 +352,7 @@ int spa_libcamera_clear_buffers(struct impl *impl, struct port *port)
d[0].type = SPA_ID_INVALID; d[0].type = SPA_ID_INVALID;
} }
impl->pendingRequests.clear();
freeBuffers(impl, port); freeBuffers(impl, port);
port->n_buffers = 0; port->n_buffers = 0;
port->ring = SPA_RINGBUFFER_INIT(); port->ring = SPA_RINGBUFFER_INIT();