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>
This commit is contained in:
parent
de9243bdc1
commit
007517618c
7 changed files with 76 additions and 43 deletions
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue