[libcamera-devel] [PATCH v7 6/9] libcamera: pipelines: Use sensor ID as camera name

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Aug 4 20:31:59 CEST 2020


Hi Niklas,

Thank you for the patch.

On Tue, Aug 04, 2020 at 06:13:55PM +0200, Niklas Söderlund wrote:
> Use the CameraSensor ID as the camera name in pipelines that uses a
> CameraSensors, this is done in preparation of turning the camera name
> into an ID. The CameraSensor ID meets the requirements that will be put
> on camera ID.
> 
> Before this change example of camera names:
> 
> * OF based systems
>     ov5695 7-0036
>     ov2685 7-003c
> 
> * ACPI based systems
>     ov13858 8-0010
>     ov5670 10-0036
> 
> * VIMC
>     VIMC Sensor B
> 
> After this change the same cameras are:
> 
> * OF based systems
>     base/i2c at ff160000/camera at 36
>     base/i2c at ff160000/camera at 3c
> 
> * ACPI based systems
>     \_SB_.PCI0.I2C2.CAM0
>     \_SB_.PCI0.I2C4.CAM1
> 
> * VIMC
>     platform:vimc Sensor B
> 
> Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
>  src/libcamera/pipeline/ipu3/ipu3.cpp               | 7 +++----
>  src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 3 ++-
>  src/libcamera/pipeline/rkisp1/rkisp1.cpp           | 2 +-
>  src/libcamera/pipeline/simple/simple.cpp           | 2 +-
>  src/libcamera/pipeline/vimc/vimc.cpp               | 4 ++--
>  test/camera/buffer_import.cpp                      | 2 +-
>  test/camera/capture.cpp                            | 2 +-
>  test/camera/configuration_default.cpp              | 2 +-
>  test/camera/configuration_set.cpp                  | 2 +-
>  test/camera/statemachine.cpp                       | 2 +-
>  test/controls/control_info_map.cpp                 | 2 +-
>  test/controls/control_list.cpp                     | 2 +-
>  test/serialization/serialization_test.h            | 2 +-
>  13 files changed, 17 insertions(+), 17 deletions(-)
> 
> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
> index c1f9fdf1013c7ec0..c300f570d727e03e 100644
> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp
> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
> @@ -805,10 +805,9 @@ int PipelineHandlerIPU3::registerCameras()
>  					&IPU3CameraData::imguOutputBufferReady);
>  
>  		/* Create and register the Camera instance. */
> -		std::string cameraName = cio2->sensor()->entity()->name();
> -		std::shared_ptr<Camera> camera = Camera::create(this,
> -								cameraName,
> -								streams);
> +		std::string cameraName = cio2->sensor()->id();

I'd name the variable cameraId already, or rename it in 8/9.

> +		std::shared_ptr<Camera> camera =
> +			Camera::create(this, cameraName, streams);

Or just

		std::shared_ptr<Camera> camera =
			Camera::create(this, cio2->sensor()->id(), streams);

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

>  
>  		registerCamera(std::move(camera), std::move(data));
>  
> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> index 82a0a4dfd6824fce..c55d7325cd44d6cb 100644
> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> @@ -972,7 +972,8 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)
>  	streams.insert(&data->isp_[Isp::Stats]);
>  
>  	/* Create and register the camera. */
> -	std::shared_ptr<Camera> camera = Camera::create(this, data->sensor_->model(), streams);
> +	std::shared_ptr<Camera> camera =
> +		Camera::create(this, data->sensor_->id(), streams);
>  	registerCamera(std::move(camera), std::move(data));
>  
>  	return true;
> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> index 52a0d862417cc4ec..94561062c2b9d4fc 100644
> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> @@ -971,7 +971,7 @@ int PipelineHandlerRkISP1::createCamera(MediaEntity *sensor)
>  
>  	std::set<Stream *> streams{ &data->stream_ };
>  	std::shared_ptr<Camera> camera =
> -		Camera::create(this, sensor->name(), streams);
> +		Camera::create(this, data->sensor_->id(), streams);
>  	registerCamera(std::move(camera), std::move(data));
>  
>  	return 0;
> diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
> index 0bab5af86f05d63c..eb72e3b8a2996342 100644
> --- a/src/libcamera/pipeline/simple/simple.cpp
> +++ b/src/libcamera/pipeline/simple/simple.cpp
> @@ -815,7 +815,7 @@ bool SimplePipelineHandler::match(DeviceEnumerator *enumerator)
>  			continue;
>  
>  		std::shared_ptr<Camera> camera =
> -			Camera::create(this, data->sensor_->entity()->name(),
> +			Camera::create(this, data->sensor_->id(),
>  				       data->streams());
>  		registerCamera(std::move(camera), std::move(data));
>  	}
> diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp
> index 4f461b928514022d..cf244f11f2423dea 100644
> --- a/src/libcamera/pipeline/vimc/vimc.cpp
> +++ b/src/libcamera/pipeline/vimc/vimc.cpp
> @@ -432,9 +432,9 @@ bool PipelineHandlerVimc::match(DeviceEnumerator *enumerator)
>  		return false;
>  
>  	/* Create and register the camera. */
> -	std::string name{ "VIMC " + data->sensor_->model() };
>  	std::set<Stream *> streams{ &data->stream_ };
> -	std::shared_ptr<Camera> camera = Camera::create(this, name, streams);
> +	std::shared_ptr<Camera> camera =
> +		Camera::create(this, data->sensor_->id(), streams);
>  	registerCamera(std::move(camera), std::move(data));
>  
>  	return true;
> diff --git a/test/camera/buffer_import.cpp b/test/camera/buffer_import.cpp
> index ad680a83f9187213..e8a7d1df52d3782c 100644
> --- a/test/camera/buffer_import.cpp
> +++ b/test/camera/buffer_import.cpp
> @@ -28,7 +28,7 @@ class BufferImportTest : public CameraTest, public Test
>  {
>  public:
>  	BufferImportTest()
> -		: CameraTest("VIMC Sensor B")
> +		: CameraTest("platform:vimc Sensor B")
>  	{
>  	}
>  
> diff --git a/test/camera/capture.cpp b/test/camera/capture.cpp
> index f6b2f348bda52752..d5ed6e72626cf87d 100644
> --- a/test/camera/capture.cpp
> +++ b/test/camera/capture.cpp
> @@ -18,7 +18,7 @@ class Capture : public CameraTest, public Test
>  {
>  public:
>  	Capture()
> -		: CameraTest("VIMC Sensor B")
> +		: CameraTest("platform:vimc Sensor B")
>  	{
>  	}
>  
> diff --git a/test/camera/configuration_default.cpp b/test/camera/configuration_default.cpp
> index 31c908d2449eafe7..ea97493d915fd107 100644
> --- a/test/camera/configuration_default.cpp
> +++ b/test/camera/configuration_default.cpp
> @@ -18,7 +18,7 @@ class ConfigurationDefault : public CameraTest, public Test
>  {
>  public:
>  	ConfigurationDefault()
> -		: CameraTest("VIMC Sensor B")
> +		: CameraTest("platform:vimc Sensor B")
>  	{
>  	}
>  
> diff --git a/test/camera/configuration_set.cpp b/test/camera/configuration_set.cpp
> index b4b5968115e81f59..b1fa8fea2edd7683 100644
> --- a/test/camera/configuration_set.cpp
> +++ b/test/camera/configuration_set.cpp
> @@ -18,7 +18,7 @@ class ConfigurationSet : public CameraTest, public Test
>  {
>  public:
>  	ConfigurationSet()
> -		: CameraTest("VIMC Sensor B")
> +		: CameraTest("platform:vimc Sensor B")
>  	{
>  	}
>  
> diff --git a/test/camera/statemachine.cpp b/test/camera/statemachine.cpp
> index 325b4674bcc958d8..0e7c43dd84399a5a 100644
> --- a/test/camera/statemachine.cpp
> +++ b/test/camera/statemachine.cpp
> @@ -18,7 +18,7 @@ class Statemachine : public CameraTest, public Test
>  {
>  public:
>  	Statemachine()
> -		: CameraTest("VIMC Sensor B")
> +		: CameraTest("platform:vimc Sensor B")
>  	{
>  	}
>  
> diff --git a/test/controls/control_info_map.cpp b/test/controls/control_info_map.cpp
> index e4305f132db7952f..72987646a63dab6b 100644
> --- a/test/controls/control_info_map.cpp
> +++ b/test/controls/control_info_map.cpp
> @@ -24,7 +24,7 @@ class ControlInfoMapTest : public CameraTest, public Test
>  {
>  public:
>  	ControlInfoMapTest()
> -		: CameraTest("VIMC Sensor B")
> +		: CameraTest("platform:vimc Sensor B")
>  	{
>  	}
>  
> diff --git a/test/controls/control_list.cpp b/test/controls/control_list.cpp
> index 5c8485b5dcc31499..9a0fe53c022246f1 100644
> --- a/test/controls/control_list.cpp
> +++ b/test/controls/control_list.cpp
> @@ -24,7 +24,7 @@ class ControlListTest : public CameraTest, public Test
>  {
>  public:
>  	ControlListTest()
> -		: CameraTest("VIMC Sensor B")
> +		: CameraTest("platform:vimc Sensor B")
>  	{
>  	}
>  
> diff --git a/test/serialization/serialization_test.h b/test/serialization/serialization_test.h
> index fe77221ef5d07478..5d4a6cd80a6e2208 100644
> --- a/test/serialization/serialization_test.h
> +++ b/test/serialization/serialization_test.h
> @@ -20,7 +20,7 @@ class SerializationTest : public CameraTest, public Test
>  {
>  public:
>  	SerializationTest()
> -		: CameraTest("VIMC Sensor B")
> +		: CameraTest("platform:vimc Sensor B")
>  	{
>  	}
>  

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list