[libcamera-devel] [RFC 03/12] libcamera: pipeline: Add helper to find request from buffer
Niklas Söderlund
niklas.soderlund at ragnatech.se
Mon Oct 28 03:25:16 CET 2019
The pipeline knows which buffer coming from the application belongs to
which request. Add a helper to allow pipeline implementations to access
this knowledge.
Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
---
src/libcamera/include/pipeline_handler.h | 2 ++
src/libcamera/pipeline_handler.cpp | 10 ++++++++++
2 files changed, 12 insertions(+)
diff --git a/src/libcamera/include/pipeline_handler.h b/src/libcamera/include/pipeline_handler.h
index 320740746bc6e998..6024357e266c2e2b 100644
--- a/src/libcamera/include/pipeline_handler.h
+++ b/src/libcamera/include/pipeline_handler.h
@@ -39,6 +39,8 @@ public:
}
virtual ~CameraData() {}
+ Request *requestFromBuffer(Buffer *buffer);
+
Camera *camera_;
PipelineHandler *pipe_;
std::list<Request *> queuedRequests_;
diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp
index f9ae767d529d44d9..d70e286661aded8e 100644
--- a/src/libcamera/pipeline_handler.cpp
+++ b/src/libcamera/pipeline_handler.cpp
@@ -58,6 +58,16 @@ LOG_DEFINE_CATEGORY(Pipeline)
* exists.
*/
+Request *CameraData::requestFromBuffer(Buffer *buffer)
+{
+ for (Request *request : queuedRequests_)
+ for (const auto &it : request->buffers())
+ if (it.second == buffer)
+ return request;
+
+ return nullptr;
+}
+
/**
* \var CameraData::camera_
* \brief The camera related to this CameraData instance
--
2.23.0
More information about the libcamera-devel
mailing list