libcamera: pipeline_handler: Decouple buffer import and export

Use the V4L2 buffer orphaning feature, exposed through
V4L2VideoDevice::exportBuffers(), to decouple buffer import and export.
The PipelineHandler::importFrameBuffers() function is now called for all
streams regardless of whether exportFrameBuffers() has been called or
not. This simplifies the Camera implementation slightly, and opens the
door to additional simplifications.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
Laurent Pinchart 2020-03-14 16:14:27 +02:00
parent 7d8604128a
commit 9da27d5d84
8 changed files with 10 additions and 54 deletions

View file

@ -113,7 +113,6 @@ private:
friend class FrameBufferAllocator;
int exportFrameBuffers(Stream *stream,
std::vector<std::unique_ptr<FrameBuffer>> *buffers);
int freeFrameBuffers(Stream *stream);
/* \todo Remove allocator_ from the exposed API */
FrameBufferAllocator *allocator_;
};