summaryrefslogtreecommitdiff
path: root/src/libcamera/include/pipeline_handler.h
diff options
context:
space:
mode:
authorNiklas Söderlund <niklas.soderlund@ragnatech.se>2019-12-30 00:49:14 +0100
committerNiklas Söderlund <niklas.soderlund@ragnatech.se>2020-01-12 16:10:37 +0100
commite9e6135d97d0afd3191e59578a71d51db14d6ad4 (patch)
treed939f671cbce33540814fe16e4999a4f2a024eac /src/libcamera/include/pipeline_handler.h
parent6c69bf982e607db555d1c3d96aa356c1c933de0b (diff)
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>
Diffstat (limited to 'src/libcamera/include/pipeline_handler.h')
-rw-r--r--src/libcamera/include/pipeline_handler.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/libcamera/include/pipeline_handler.h b/src/libcamera/include/pipeline_handler.h
index 067baef5..560be3ba 100644
--- a/src/libcamera/include/pipeline_handler.h
+++ b/src/libcamera/include/pipeline_handler.h
@@ -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,