Message ID | 20211126153538.2594702-1-naush@raspberrypi.com |
---|---|
State | Accepted |
Commit | 762f38811b696cdf7b43f580f18f9c98c209f5ff |
Headers | show |
Series |
|
Related | show |
Quoting Naushir Patuck (2021-11-26 15:35:37) > 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> > --- > src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp > index ad526a8be6a2..5a6dfa4e8b2a 100644 > --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp > +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp > @@ -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; > } > -- > 2.25.1 >
diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp index ad526a8be6a2..5a6dfa4e8b2a 100644 --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp @@ -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; }