diff options
Diffstat (limited to 'src/libcamera/pipeline/rkisp1/rkisp1.cpp')
-rw-r--r-- | src/libcamera/pipeline/rkisp1/rkisp1.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp index dbc5df80..ba8f93e8 100644 --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp @@ -174,6 +174,11 @@ public: const StreamRoles &roles) override; int configure(Camera *camera, CameraConfiguration *config) override; + int exportFrameBuffers(Camera *camera, Stream *stream, + std::vector<std::unique_ptr<FrameBuffer>> *buffers) override; + int importFrameBuffers(Camera *camera, Stream *stream) override; + void freeFrameBuffers(Camera *camera, Stream *stream) override; + int allocateBuffers(Camera *camera, const std::set<Stream *> &streams) override; int freeBuffers(Camera *camera, @@ -665,6 +670,24 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c) return 0; } +int PipelineHandlerRkISP1::exportFrameBuffers(Camera *camera, Stream *stream, + std::vector<std::unique_ptr<FrameBuffer>> *buffers) +{ + unsigned int count = stream->configuration().bufferCount; + return video_->exportBuffers(count, buffers); +} + +int PipelineHandlerRkISP1::importFrameBuffers(Camera *camera, Stream *stream) +{ + unsigned int count = stream->configuration().bufferCount; + return video_->importBuffers(count); +} + +void PipelineHandlerRkISP1::freeFrameBuffers(Camera *camera, Stream *stream) +{ + video_->releaseBuffers(); +} + int PipelineHandlerRkISP1::allocateBuffers(Camera *camera, const std::set<Stream *> &streams) { |