summaryrefslogtreecommitdiff
path: root/src/libcamera
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcamera')
-rw-r--r--src/libcamera/buffer.cpp11
-rw-r--r--src/libcamera/camera.cpp4
2 files changed, 15 insertions, 0 deletions
diff --git a/src/libcamera/buffer.cpp b/src/libcamera/buffer.cpp
index 99358633..fe29c2f6 100644
--- a/src/libcamera/buffer.cpp
+++ b/src/libcamera/buffer.cpp
@@ -301,6 +301,17 @@ Buffer::Buffer(unsigned int index, const Buffer *metadata)
*/
/**
+ * \fn Buffer::mem()
+ * \brief Retrieve the BufferMemory this buffer is associated with
+ *
+ * The association between the buffer and a BufferMemory instance is valid from
+ * the time the request containing this buffer is queued to a camera to the end
+ * of that request's completion handler.
+ *
+ * \return The BufferMemory this buffer is associated with
+ */
+
+/**
* \fn Buffer::bytesused()
* \brief Retrieve the number of bytes occupied by the data in the buffer
* \return Number of bytes occupied in the buffer
diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp
index af69607b..db15fd46 100644
--- a/src/libcamera/camera.cpp
+++ b/src/libcamera/camera.cpp
@@ -811,10 +811,14 @@ int Camera::queueRequest(Request *request)
for (auto const &it : request->buffers()) {
Stream *stream = it.first;
+ Buffer *buffer = it.second;
+
if (activeStreams_.find(stream) == activeStreams_.end()) {
LOG(Camera, Error) << "Invalid request";
return -EINVAL;
}
+
+ buffer->mem_ = &stream->buffers()[buffer->index_];
}
int ret = request->prepare();