There's no need to keep the video device open after allocating buffers, as V4L2 supports buffer orphaning and the exported buffers will still be usable. Close the device right after allocation to avoid the need for delayed cleanups. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
31 lines
701 B
C++
31 lines
701 B
C++
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
/*
|
|
* Copyright (C) 2020, Google Inc.
|
|
*
|
|
* buffer_source.h - libcamera camera test helper to create FrameBuffers
|
|
*/
|
|
#ifndef __LIBCAMERA_BUFFER_SOURCE_TEST_H__
|
|
#define __LIBCAMERA_BUFFER_SOURCE_TEST_H__
|
|
|
|
#include <libcamera/libcamera.h>
|
|
|
|
#include "media_device.h"
|
|
#include "v4l2_videodevice.h"
|
|
|
|
using namespace libcamera;
|
|
|
|
class BufferSource
|
|
{
|
|
public:
|
|
BufferSource();
|
|
~BufferSource();
|
|
|
|
int allocate(const StreamConfiguration &config);
|
|
const std::vector<std::unique_ptr<FrameBuffer>> &buffers();
|
|
|
|
private:
|
|
std::shared_ptr<MediaDevice> media_;
|
|
std::vector<std::unique_ptr<FrameBuffer>> buffers_;
|
|
};
|
|
|
|
#endif /* __LIBCAMERA_BUFFER_SOURCE_TEST_H__ */
|