summaryrefslogtreecommitdiff
path: root/src/libcamera/pipeline/vimc
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-12-09 13:13:38 +0200
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-12-14 15:46:04 +0200
commit3129fcae43ce139cb1e158cb5255428afb8952ec (patch)
tree84e902862aa325a95a40f7241b63e11add6bee0c /src/libcamera/pipeline/vimc
parent1c2b54a0173f5ad6d792617246439ec1823bab5a (diff)
libcamera: pipeline: Manage resources with std::unique_ptr<>
Replace manual resource destruction with std::unique_ptr<> where applicable. This removes the need for several destructors. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Diffstat (limited to 'src/libcamera/pipeline/vimc')
-rw-r--r--src/libcamera/pipeline/vimc/vimc.cpp11
1 files changed, 3 insertions, 8 deletions
diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp
index 72256f5b..8bda746f 100644
--- a/src/libcamera/pipeline/vimc/vimc.cpp
+++ b/src/libcamera/pipeline/vimc/vimc.cpp
@@ -42,20 +42,15 @@ class VimcCameraData : public CameraData
{
public:
VimcCameraData(PipelineHandler *pipe, MediaDevice *media)
- : CameraData(pipe), media_(media), sensor_(nullptr)
+ : CameraData(pipe), media_(media)
{
}
- ~VimcCameraData()
- {
- delete sensor_;
- }
-
int init();
void bufferReady(FrameBuffer *buffer);
MediaDevice *media_;
- CameraSensor *sensor_;
+ std::unique_ptr<CameraSensor> sensor_;
std::unique_ptr<V4L2Subdevice> debayer_;
std::unique_ptr<V4L2Subdevice> scaler_;
std::unique_ptr<V4L2VideoDevice> video_;
@@ -461,7 +456,7 @@ int VimcCameraData::init()
return ret;
/* Create and open the camera sensor, debayer, scaler and video device. */
- sensor_ = new CameraSensor(media_->getEntityByName("Sensor B"));
+ sensor_ = std::make_unique<CameraSensor>(media_->getEntityByName("Sensor B"));
ret = sensor_->init();
if (ret)
return ret;