@@ -562,8 +562,6 @@ void PipelineHandler::doQueueRequests(Camera *camera)
*/
bool PipelineHandler::completeBuffer(Request *request, FrameBuffer *buffer)
{
- Camera *camera = request->_d()->camera();
- camera->bufferCompleted.emit(request, buffer);
return request->_d()->completeBuffer(buffer);
}
@@ -104,6 +104,9 @@ bool Request::Private::completeBuffer(FrameBuffer *buffer)
{
LIBCAMERA_TRACEPOINT(request_complete_buffer, this, buffer);
+ Request *request = LIBCAMERA_O_PTR();
+ camera_->bufferCompleted.emit(request, buffer);
+
int ret = pending_.erase(buffer);
ASSERT(ret == 1);
The `Request` class already manages the emission of that signal in `doCancelRequest()`, so let's move the normal emission from the pipeline handler base class while keeping the ordering of things. Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> --- src/libcamera/pipeline_handler.cpp | 2 -- src/libcamera/request.cpp | 3 +++ 2 files changed, 3 insertions(+), 2 deletions(-)