libcamera: pipeline: Add FrameBuffer handlers
Extend the pipeline handlers to support the FrameBuffer API with three new methods to handle allocation, importing and freeing of buffers. The new methods will replace allocateBuffers() and freeBuffers(). The FrameBuffer API will use the methods on a stream level and either allocate or import buffers for each active stream controlled from the Camera class and an upcoming FrameBufferAllocator helper. With this new API the implementation in pipeline handlers can be made simpler as all streams don't need to be handled in allocateBuffers(). Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
@@ -70,6 +70,11 @@ public:
|
||||
const StreamRoles &roles) = 0;
|
||||
virtual int configure(Camera *camera, CameraConfiguration *config) = 0;
|
||||
|
||||
virtual int exportFrameBuffers(Camera *camera, Stream *stream,
|
||||
std::vector<std::unique_ptr<FrameBuffer>> *buffers) = 0;
|
||||
virtual int importFrameBuffers(Camera *camera, Stream *stream) = 0;
|
||||
virtual void freeFrameBuffers(Camera *camera, Stream *stream) = 0;
|
||||
|
||||
virtual int allocateBuffers(Camera *camera,
|
||||
const std::set<Stream *> &streams) = 0;
|
||||
virtual int freeBuffers(Camera *camera,
|
||||
|
||||
Reference in New Issue
Block a user