diff options
Diffstat (limited to 'src/libcamera/pipeline')
-rw-r--r-- | src/libcamera/pipeline/ipu3/ipu3.cpp | 8 | ||||
-rw-r--r-- | src/libcamera/pipeline/uvcvideo.cpp | 5 | ||||
-rw-r--r-- | src/libcamera/pipeline/vimc.cpp | 5 |
3 files changed, 14 insertions, 4 deletions
diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp index 80f4a7bf..52844da7 100644 --- a/src/libcamera/pipeline/ipu3/ipu3.cpp +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp @@ -9,6 +9,7 @@ #include <vector> #include <libcamera/camera.h> +#include <libcamera/stream.h> #include "device_enumerator.h" #include "log.h" @@ -37,6 +38,7 @@ private: : dev_(nullptr) {} ~IPU3CameraData() { delete dev_; } V4L2Device *dev_; + Stream stream_; }; std::shared_ptr<MediaDevice> cio2_; @@ -202,15 +204,17 @@ void PipelineHandlerIPU3::registerCameras() if (link->setEnabled(true)) continue; + std::unique_ptr<IPU3CameraData> data = utils::make_unique<IPU3CameraData>(); + std::string cameraName = sensor->name() + " " + std::to_string(id); - std::shared_ptr<Camera> camera = Camera::create(this, cameraName); + std::vector<Stream *> streams{ &data->stream_ }; + std::shared_ptr<Camera> camera = Camera::create(this, cameraName, streams); /* * If V4L2 device creation fails, the Camera instance won't be * registered. The 'camera' shared pointer goes out of scope * and deletes the Camera it manages. */ - std::unique_ptr<IPU3CameraData> data = utils::make_unique<IPU3CameraData>(); data->dev_ = createVideoDevice(id); if (!data->dev_) { LOG(IPU3, Error) diff --git a/src/libcamera/pipeline/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo.cpp index 2ebdb2b9..d2d3a1ed 100644 --- a/src/libcamera/pipeline/uvcvideo.cpp +++ b/src/libcamera/pipeline/uvcvideo.cpp @@ -6,6 +6,7 @@ */ #include <libcamera/camera.h> +#include <libcamera/stream.h> #include "device_enumerator.h" #include "log.h" @@ -28,6 +29,7 @@ public: private: std::shared_ptr<MediaDevice> media_; V4L2Device *video_; + Stream stream_; }; PipelineHandlerUVC::PipelineHandlerUVC(CameraManager *manager) @@ -70,7 +72,8 @@ bool PipelineHandlerUVC::match(DeviceEnumerator *enumerator) return false; } - std::shared_ptr<Camera> camera = Camera::create(this, media_->model()); + std::vector<Stream *> streams{ &stream_ }; + std::shared_ptr<Camera> camera = Camera::create(this, media_->model(), streams); registerCamera(std::move(camera)); hotplugMediaDevice(media_.get()); diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp index f58a97d5..9e1cf11a 100644 --- a/src/libcamera/pipeline/vimc.cpp +++ b/src/libcamera/pipeline/vimc.cpp @@ -6,6 +6,7 @@ */ #include <libcamera/camera.h> +#include <libcamera/stream.h> #include "device_enumerator.h" #include "media_device.h" @@ -23,6 +24,7 @@ public: private: std::shared_ptr<MediaDevice> media_; + Stream stream_; }; PipeHandlerVimc::PipeHandlerVimc(CameraManager *manager) @@ -56,7 +58,8 @@ bool PipeHandlerVimc::match(DeviceEnumerator *enumerator) media_->acquire(); - std::shared_ptr<Camera> camera = Camera::create(this, "Dummy VIMC Camera"); + std::vector<Stream *> streams{ &stream_ }; + std::shared_ptr<Camera> camera = Camera::create(this, "Dummy VIMC Camera", streams); registerCamera(std::move(camera)); return true; |