From f1199a1011a22f00e863473ae241c781f4bd999d Mon Sep 17 00:00:00 2001 From: Jacopo Mondi Date: Wed, 10 Jul 2019 12:07:19 +0200 Subject: libcamera: buffer: Add dmabuf file descriptors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In addition to referencing buffer memory by index, add support to referencing it using dmabuf file descriptors. This will be used to reference buffer memory allocated outside of libcamera and import it. The dmabuf file descriptors are stored in an array in the Buffer class, and a new Stream::createBuffer() overload is added to construct a buffer from dmabuf file descriptor. Signed-off-by: Jacopo Mondi Signed-off-by: Laurent Pinchart Reviewed-by: Niklas Söderlund --- src/libcamera/request.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/libcamera/request.cpp') diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp index 19131472..ee2158fc 100644 --- a/src/libcamera/request.cpp +++ b/src/libcamera/request.cpp @@ -106,10 +106,15 @@ Request::~Request() * * \return 0 on success or a negative error code otherwise * \retval -EEXIST The request already contains a buffer for the stream + * \retval -EINVAL The buffer does not reference a valid Stream */ int Request::addBuffer(std::unique_ptr buffer) { Stream *stream = buffer->stream(); + if (!stream) { + LOG(Request, Error) << "Invalid stream reference"; + return -EINVAL; + } auto it = bufferMap_.find(stream); if (it != bufferMap_.end()) { -- cgit v1.2.1