mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-16 17:05:08 +03:00
libcamera: pipeline: Introduce stopDevice()
Since a queue of waiting Requests has been introduced, not all Requests queued to the PipelineHandler are immediately queued to the device. As a Camera can be stopped at any time, it is required to complete the waiting requests after the ones queued to the device had been completed. Introduce a pure virtual PipelineHandler::stopDevice() function to be implemented by pipeline handlers and make the PipelineHandler::stop() function call it before completing pending requests. Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
parent
6cd5c958b7
commit
f6b6f15b54
8 changed files with 42 additions and 15 deletions
|
@ -55,7 +55,7 @@ public:
|
|||
std::vector<std::unique_ptr<FrameBuffer>> *buffers) = 0;
|
||||
|
||||
virtual int start(Camera *camera, const ControlList *controls) = 0;
|
||||
virtual void stop(Camera *camera) = 0;
|
||||
void stop(Camera *camera);
|
||||
bool hasPendingRequests(const Camera *camera) const;
|
||||
|
||||
void queueRequest(Request *request);
|
||||
|
@ -70,6 +70,7 @@ protected:
|
|||
void hotplugMediaDevice(MediaDevice *media);
|
||||
|
||||
virtual int queueRequestDevice(Camera *camera, Request *request) = 0;
|
||||
virtual void stopDevice(Camera *camera) = 0;
|
||||
|
||||
CameraManager *manager_;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue