summaryrefslogtreecommitdiff
path: root/src/libcamera/pipeline_handler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcamera/pipeline_handler.cpp')
-rw-r--r--src/libcamera/pipeline_handler.cpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp
index 03e4b9e6..7ebd76ad 100644
--- a/src/libcamera/pipeline_handler.cpp
+++ b/src/libcamera/pipeline_handler.cpp
@@ -338,6 +338,23 @@ bool PipelineHandler::hasPendingRequests(const Camera *camera) const
}
/**
+ * \fn PipelineHandler::registerRequest()
+ * \brief Register a request for use by the pipeline handler
+ * \param[in] request The request to register
+ *
+ * This function is called when the request is created, and allows the pipeline
+ * handler to perform any one-time initialization it requries for the request.
+ */
+void PipelineHandler::registerRequest(Request *request)
+{
+ /*
+ * Connect the request prepared signal to notify the pipeline handler
+ * when a request is ready to be processed.
+ */
+ request->_d()->prepared.connect(this, &PipelineHandler::doQueueRequests);
+}
+
+/**
* \fn PipelineHandler::queueRequest()
* \brief Queue a request
* \param[in] request The request to queue
@@ -366,9 +383,6 @@ void PipelineHandler::queueRequest(Request *request)
waitingRequests_.push(request);
- request->_d()->prepared.connect(this, [this]() {
- doQueueRequests();
- });
request->_d()->prepare(300ms);
}