summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiklas Söderlund <niklas.soderlund@ragnatech.se>2020-03-23 21:59:18 +0100
committerNiklas Söderlund <niklas.soderlund@ragnatech.se>2020-03-27 16:27:28 +0100
commit125be3436ae095413b90f00c7516efba8964d061 (patch)
treef35b4b2be09a4caea43a1604c09988d9a8edbd7c
parent417e3143a99493d89fbb5a3f3ccd82a716f5d53a (diff)
libcamera: FrameBuffer: Add a setRequest() interface
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@ragnatech.se> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-rw-r--r--include/libcamera/buffer.h3
-rw-r--r--src/libcamera/buffer.cpp11
2 files changed, 13 insertions, 1 deletions
diff --git a/include/libcamera/buffer.h b/include/libcamera/buffer.h
index ef3a3b36..6bb2e4f8 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 93057568..0c5e56cf 100644
--- a/src/libcamera/buffer.cpp
+++ b/src/libcamera/buffer.cpp
@@ -183,6 +183,17 @@ FrameBuffer::FrameBuffer(const std::vector<Plane> &planes, unsigned int cookie)
*/
/**
+ * \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
* \return Dynamic metadata for the frame contained in the buffer