summaryrefslogtreecommitdiff
path: root/src/libcamera/include/pipeline_handler.h
diff options
context:
space:
mode:
authorNiklas Söderlund <niklas.soderlund@ragnatech.se>2019-10-27 04:53:02 +0100
committerNiklas Söderlund <niklas.soderlund@ragnatech.se>2019-12-16 13:39:22 +0100
commit3de65b43a63ad3f528226f3aba937044f65e2013 (patch)
treed2f86b618718a103488e3478514909ce22feb6aa /src/libcamera/include/pipeline_handler.h
parent7df177fd889624c4b149ba2ecabb4969ad8c2bee (diff)
libcamera: pipelines: Align bookkeeping in queueRequest()
Expecting pipeline handler implementations of queueRequest() to call the base class queueRequest() at the correct point have led to different behaviors between the pipelines. Fix this by splitting queueRequest() into a base class implementation which handles the bookkeeping and a new queueRequestDevice() that is to be implemented by pipeline handlers and only deals with committing the request to the device. Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> 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.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libcamera/include/pipeline_handler.h b/src/libcamera/include/pipeline_handler.h
index a02e6e77..f3622631 100644
--- a/src/libcamera/include/pipeline_handler.h
+++ b/src/libcamera/include/pipeline_handler.h
@@ -77,7 +77,7 @@ public:
virtual int start(Camera *camera) = 0;
virtual void stop(Camera *camera) = 0;
- virtual int queueRequest(Camera *camera, Request *request);
+ int queueRequest(Camera *camera, Request *request);
bool completeBuffer(Camera *camera, Request *request, Buffer *buffer);
void completeRequest(Camera *camera, Request *request);
@@ -89,6 +89,8 @@ protected:
std::unique_ptr<CameraData> data);
void hotplugMediaDevice(MediaDevice *media);
+ virtual int queueRequestDevice(Camera *camera, Request *request) = 0;
+
CameraData *cameraData(const Camera *camera);
CameraManager *manager_;