libcamera: pipeline: vimc: Migrate to Camera::Private

As part of the effort to remove the CameraData class, migrate the
pipeline handler-specific camera data from CameraData to the
Camera::Private class.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
Laurent Pinchart
2021-07-23 04:39:44 +03:00
parent aae303c5aa
commit de2668d8a7
+13 -12
View File
@@ -42,11 +42,11 @@ namespace libcamera {
LOG_DEFINE_CATEGORY(VIMC)
class VimcCameraData : public CameraData
class VimcCameraData : public Camera::Private
{
public:
VimcCameraData(PipelineHandler *pipe, MediaDevice *media)
: CameraData(pipe), media_(media)
: Camera::Private(pipe), media_(media)
{
}
@@ -100,10 +100,9 @@ public:
private:
int processControls(VimcCameraData *data, Request *request);
VimcCameraData *cameraData(const Camera *camera)
VimcCameraData *cameraData(Camera *camera)
{
return static_cast<VimcCameraData *>(
PipelineHandler::cameraData(camera));
return static_cast<VimcCameraData *>(camera->_d());
}
};
@@ -475,10 +474,10 @@ bool PipelineHandlerVimc::match(DeviceEnumerator *enumerator)
/* Create and register the camera. */
std::set<Stream *> streams{ &data->stream_ };
const std::string &id = data->sensor_->id();
std::shared_ptr<Camera> camera =
Camera::create(std::make_unique<Camera::Private>(this),
data->sensor_->id(), streams);
registerCamera(std::move(camera), std::move(data));
Camera::create(std::move(data), id, streams);
registerCamera(std::move(camera), nullptr);
return true;
}
@@ -567,6 +566,8 @@ int VimcCameraData::init()
void VimcCameraData::bufferReady(FrameBuffer *buffer)
{
PipelineHandlerVimc *pipe =
static_cast<PipelineHandlerVimc *>(this->pipe());
Request *request = buffer->request();
/* If the buffer is cancelled force a complete of the whole request. */
@@ -574,10 +575,10 @@ void VimcCameraData::bufferReady(FrameBuffer *buffer)
for (auto it : request->buffers()) {
FrameBuffer *b = it.second;
b->cancel();
pipe_->completeBuffer(request, b);
pipe->completeBuffer(request, b);
}
pipe_->completeRequest(request);
pipe->completeRequest(request);
return;
}
@@ -585,8 +586,8 @@ void VimcCameraData::bufferReady(FrameBuffer *buffer)
request->metadata().set(controls::SensorTimestamp,
buffer->metadata().timestamp);
pipe_->completeBuffer(request, buffer);
pipe_->completeRequest(request);
pipe->completeBuffer(request, buffer);
pipe->completeRequest(request);
ipa_->fillParams(request->sequence(), mockIPABufs_[0]->cookie());
}