mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-16 17:05:08 +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());
|
||||
}
|
||||
|
||||
bool registerCamera();
|
||||
int queueAllBuffers(Camera *camera);
|
||||
int prepareBuffers(Camera *camera);
|
||||
void freeBuffers(Camera *camera);
|
||||
|
@ -1013,6 +1014,11 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)
|
|||
if (!isp_)
|
||||
return false;
|
||||
|
||||
return registerCamera();
|
||||
}
|
||||
|
||||
bool PipelineHandlerRPi::registerCamera()
|
||||
{
|
||||
std::unique_ptr<RPiCameraData> data = std::make_unique<RPiCameraData>(this);
|
||||
if (!data->dmaHeap_.isValid())
|
||||
return false;
|
||||
|
@ -1173,7 +1179,7 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)
|
|||
const std::string &id = data->sensor_->id();
|
||||
std::shared_ptr<Camera> camera =
|
||||
Camera::create(std::move(data), id, streams);
|
||||
registerCamera(std::move(camera));
|
||||
PipelineHandler::registerCamera(std::move(camera));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue