summaryrefslogtreecommitdiff
path: root/src/ipa/libipa
diff options
context:
space:
mode:
authorNiklas Söderlund <niklas.soderlund@ragnatech.se>2019-11-25 22:14:40 +0100
committerNiklas Söderlund <niklas.soderlund@ragnatech.se>2020-01-12 16:10:37 +0100
commit007517618c8440d09cfd39db5dbf451e87ef703a (patch)
treec946dbcd940f14988881c48ac03b37c50796db18 /src/ipa/libipa
parentde9243bdc1986c57bee4dae3a5ba4fc8fc4293fe (diff)
ipa: Switch to FrameBuffer interface
Switch the IPA interfaces and implementations to use the Framebuffer interface. - The IPA interface is switched to use the simpler FrameBuffer::Plane container when carrying dmabuf descriptions (fd and length) over the pipeline/IPA boundary. - The RkISP1 IPA implementation takes advantage of the new simpler and safer (better control over file descriptors) FrameBuffer interface. Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/ipa/libipa')
-rw-r--r--src/ipa/libipa/ipa_interface_wrapper.cpp9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/ipa/libipa/ipa_interface_wrapper.cpp b/src/ipa/libipa/ipa_interface_wrapper.cpp
index 6a389dfa..3628a785 100644
--- a/src/ipa/libipa/ipa_interface_wrapper.cpp
+++ b/src/ipa/libipa/ipa_interface_wrapper.cpp
@@ -144,17 +144,14 @@ void IPAInterfaceWrapper::map_buffers(struct ipa_context *_ctx,
for (unsigned int i = 0; i < num_buffers; ++i) {
const struct ipa_buffer &_buffer = _buffers[i];
IPABuffer &buffer = buffers[i];
- std::vector<Plane> &planes = buffer.memory.planes();
+ std::vector<FrameBuffer::Plane> &planes = buffer.planes;
buffer.id = _buffer.id;
planes.resize(_buffer.num_planes);
for (unsigned int j = 0; j < _buffer.num_planes; ++j) {
- if (_buffer.planes[j].dmabuf != -1)
- planes[j].setDmabuf(_buffer.planes[j].dmabuf,
- _buffer.planes[j].length);
- /** \todo Create a Dmabuf class to implement RAII. */
- ::close(_buffer.planes[j].dmabuf);
+ planes[j].fd = FileDescriptor(_buffer.planes[j].dmabuf);
+ planes[j].length = _buffer.planes[j].length;
}
}