summaryrefslogtreecommitdiff
path: root/src/libcamera/camera.cpp
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-07-12 22:32:01 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-07-14 16:01:07 +0300
commit689e8916caf11942286a1f1264e55dcb709d3939 (patch)
treea82d5d6e858c2a0e3cd1b939198fa87ba5efa3f2 /src/libcamera/camera.cpp
parentf1199a1011a22f00e863473ae241c781f4bd999d (diff)
libcamera: buffer: Add an accessor to the BufferMemory
Buffer instances reference memory, which is modelled internally by a BufferMemory instance. Store a pointer to the BufferMemory in the Buffer class, and populate it when the buffer is queued to the camera through a request. This is useful for applications to access the buffer memory in the buffer or request completion handler. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Diffstat (limited to 'src/libcamera/camera.cpp')
-rw-r--r--src/libcamera/camera.cpp4
1 files changed, 4 insertions, 0 deletions
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();