summaryrefslogtreecommitdiff
path: root/src/libcamera
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcamera')
-rw-r--r--src/libcamera/buffer.cpp4
-rw-r--r--src/libcamera/pipeline/rkisp1/rkisp1.cpp12
-rw-r--r--src/libcamera/stream.cpp6
-rw-r--r--src/libcamera/v4l2_videodevice.cpp13
4 files changed, 15 insertions, 20 deletions
diff --git a/src/libcamera/buffer.cpp b/src/libcamera/buffer.cpp
index 2178bd2f..ec7c614d 100644
--- a/src/libcamera/buffer.cpp
+++ b/src/libcamera/buffer.cpp
@@ -257,13 +257,13 @@ void *Plane::mem()
/**
* \fn BufferMemory::planes() const
* \brief Retrieve the planes within the buffer
- * \return A const reference to a vector holding all Planes within the buffer
+ * \return A const reference to a vector holding all planes within the buffer
*/
/**
* \fn BufferMemory::planes()
* \brief Retrieve the planes within the buffer
- * \return A reference to a vector holding all Planes within the buffer
+ * \return A reference to a vector holding all planes within the buffer
*/
/**
diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
index d7ee95de..1e445715 100644
--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
@@ -687,22 +687,14 @@ int PipelineHandlerRkISP1::allocateBuffers(Camera *camera,
}
for (unsigned int i = 0; i < stream->configuration().bufferCount + 1; i++) {
- FrameBuffer::Plane plane;
- plane.fd = FileDescriptor(paramPool_.buffers()[i].planes()[0].dmabuf());
- plane.length = paramPool_.buffers()[i].planes()[0].length();
-
data->ipaBuffers_.push_back({ .id = RKISP1_PARAM_BASE | i,
- .planes = { plane } });
+ .planes = paramPool_.buffers()[i].planes() });
paramBuffers_.push(new Buffer(i));
}
for (unsigned int i = 0; i < stream->configuration().bufferCount + 1; i++) {
- FrameBuffer::Plane plane;
- plane.fd = FileDescriptor(statPool_.buffers()[i].planes()[0].dmabuf());
- plane.length = statPool_.buffers()[i].planes()[0].length();
-
data->ipaBuffers_.push_back({ .id = RKISP1_STAT_BASE | i,
- .planes = { plane } });
+ .planes = statPool_.buffers()[i].planes() });
statBuffers_.push(new Buffer(i));
}
diff --git a/src/libcamera/stream.cpp b/src/libcamera/stream.cpp
index 45f31ae1..16a323f1 100644
--- a/src/libcamera/stream.cpp
+++ b/src/libcamera/stream.cpp
@@ -577,8 +577,10 @@ int Stream::mapBuffer(const Buffer *buffer)
if (dmabufs[i] == -1)
break;
- mem->planes().emplace_back();
- mem->planes().back().setDmabuf(dmabufs[i], 0);
+ FrameBuffer::Plane plane;
+ plane.fd = FileDescriptor(dmabufs[i]);
+ plane.length = 0;
+ mem->planes().push_back(plane);
}
/* Remove the buffer from the cache and return its index. */
diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp
index 033f7cc0..1dc9e193 100644
--- a/src/libcamera/v4l2_videodevice.cpp
+++ b/src/libcamera/v4l2_videodevice.cpp
@@ -922,9 +922,10 @@ int V4L2VideoDevice::createPlane(BufferMemory *buffer, unsigned int index,
return ret;
}
- buffer->planes().emplace_back();
- Plane &plane = buffer->planes().back();
- plane.setDmabuf(expbuf.fd, length);
+ FrameBuffer::Plane plane;
+ plane.fd = FileDescriptor(expbuf.fd);
+ plane.length = length;
+ buffer->planes().push_back(plane);
::close(expbuf.fd);
return 0;
@@ -987,14 +988,14 @@ int V4L2VideoDevice::queueBuffer(Buffer *buffer)
bool multiPlanar = V4L2_TYPE_IS_MULTIPLANAR(buf.type);
BufferMemory *mem = &bufferPool_->buffers()[buf.index];
- const std::vector<Plane> &planes = mem->planes();
+ const std::vector<FrameBuffer::Plane> &planes = mem->planes();
if (buf.memory == V4L2_MEMORY_DMABUF) {
if (multiPlanar) {
for (unsigned int p = 0; p < planes.size(); ++p)
- v4l2Planes[p].m.fd = planes[p].dmabuf();
+ v4l2Planes[p].m.fd = planes[p].fd.fd();
} else {
- buf.m.fd = planes[0].dmabuf();
+ buf.m.fd = planes[0].fd.fd();
}
}