[libcamera-devel] [PATCH v2 5/7] libcamera: FrameBuffer: Add a setRequest() interface

Niklas Söderlund niklas.soderlund at ragnatech.se
Thu Mar 26 23:58:42 CET 2020


Add the ability to set the Request a buffer is associated with. This is
needed for buffers that live inside a pipeline handler and is
temporarily associated with a request as it's being processed inside the
pipeline.

While we are at it delete a stray semicolon.

Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 include/libcamera/buffer.h |  3 ++-
 src/libcamera/buffer.cpp   | 11 +++++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/include/libcamera/buffer.h b/include/libcamera/buffer.h
index ef3a3b36cd4e4e17..6bb2e4f8558f03ac 100644
--- a/include/libcamera/buffer.h
+++ b/include/libcamera/buffer.h
@@ -52,7 +52,8 @@ public:
 	const std::vector<Plane> &planes() const { return planes_; }
 
 	Request *request() const { return request_; }
-	const FrameMetadata &metadata() const { return metadata_; };
+	void setRequest(Request *request) { request_ = request; }
+	const FrameMetadata &metadata() const { return metadata_; }
 
 	unsigned int cookie() const { return cookie_; }
 	void setCookie(unsigned int cookie) { cookie_ = cookie; }
diff --git a/src/libcamera/buffer.cpp b/src/libcamera/buffer.cpp
index 93057568fc56a6f5..0c5e56cf10621ab2 100644
--- a/src/libcamera/buffer.cpp
+++ b/src/libcamera/buffer.cpp
@@ -182,6 +182,17 @@ FrameBuffer::FrameBuffer(const std::vector<Plane> &planes, unsigned int cookie)
  * not associated with a request
  */
 
+/**
+ * \fn FrameBuffer::setRequest()
+ * \brief Set the request this buffer belongs to
+ * \param[in] request Request to set
+ *
+ * The intended callers of this method are pipeline handlers and only for
+ * buffers that are internal to the pipeline.
+ *
+ * \todo Shall be hidden from applications with a d-pointer design.
+ */
+
 /**
  * \fn FrameBuffer::metadata()
  * \brief Retrieve the dynamic metadata
-- 
2.25.1



More information about the libcamera-devel mailing list