mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-17 17:35:06 +03:00
pipeline: raspberrypi: Split out device enumeration and camera registration
Split out PipelineHandlerRPi::match() so that media device enumeration and acquisition is separated from camera registration. The former logic remains in PipelineHandlerRPi::match(), whereas the latter logic is moved into a new PipelineHandlerRPi::registerCamera() member function. Signed-off-by: Naushir Patuck <naush@raspberrypi.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
parent
cb1de39907
commit
762f38811b
1 changed files with 7 additions and 1 deletions
|
@ -314,6 +314,7 @@ private:
|
||||||
return static_cast<RPiCameraData *>(camera->_d());
|
return static_cast<RPiCameraData *>(camera->_d());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool registerCamera();
|
||||||
int queueAllBuffers(Camera *camera);
|
int queueAllBuffers(Camera *camera);
|
||||||
int prepareBuffers(Camera *camera);
|
int prepareBuffers(Camera *camera);
|
||||||
void freeBuffers(Camera *camera);
|
void freeBuffers(Camera *camera);
|
||||||
|
@ -1013,6 +1014,11 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)
|
||||||
if (!isp_)
|
if (!isp_)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
return registerCamera();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool PipelineHandlerRPi::registerCamera()
|
||||||
|
{
|
||||||
std::unique_ptr<RPiCameraData> data = std::make_unique<RPiCameraData>(this);
|
std::unique_ptr<RPiCameraData> data = std::make_unique<RPiCameraData>(this);
|
||||||
if (!data->dmaHeap_.isValid())
|
if (!data->dmaHeap_.isValid())
|
||||||
return false;
|
return false;
|
||||||
|
@ -1173,7 +1179,7 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)
|
||||||
const std::string &id = data->sensor_->id();
|
const std::string &id = data->sensor_->id();
|
||||||
std::shared_ptr<Camera> camera =
|
std::shared_ptr<Camera> camera =
|
||||||
Camera::create(std::move(data), id, streams);
|
Camera::create(std::move(data), id, streams);
|
||||||
registerCamera(std::move(camera));
|
PipelineHandler::registerCamera(std::move(camera));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue