libcamera: buffer: Add dmabuf file descriptors
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 <jacopo@jmondi.org> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
committed by
Laurent Pinchart
parent
99e1e786b4
commit
f1199a1011
@@ -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> buffer)
|
||||
{
|
||||
Stream *stream = buffer->stream();
|
||||
if (!stream) {
|
||||
LOG(Request, Error) << "Invalid stream reference";
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
auto it = bufferMap_.find(stream);
|
||||
if (it != bufferMap_.end()) {
|
||||
|
||||
Reference in New Issue
Block a user