[libcamera-devel] [PATCH] libcamera: camera_sensor: Add model() function
Jacopo Mondi
jacopo at jmondi.org
Tue Apr 28 09:06:11 CEST 2020
Hi Laurent,
On Tue, Apr 28, 2020 at 01:26:51AM +0300, Laurent Pinchart wrote:
> Add a new model() function to the CameraSensor class to report the
> camera sensor model.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
> src/libcamera/camera_sensor.cpp | 24 ++++++++++++++++++++++++
> src/libcamera/include/camera_sensor.h | 1 +
> 2 files changed, 25 insertions(+)
>
> Jacopo,
>
> I'll need this in pipeline handlers to obtain the sensor model, in order
> to construct a configuration file name, without having to generate the
> whole CameraSensorInfo. Is this OK with you ? As I've taken the
> implementation of the function from your code, should I add your
> Signed-off-by ?
>
Yeah, no worries as you wish
Speaking of this patch, I'll rebase CameraSensorInfo to use this
method as there discussed with you and Niklas.
Thanks
j
> diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp
> index c893b90979d8..55a9fbd71e69 100644
> --- a/src/libcamera/camera_sensor.cpp
> +++ b/src/libcamera/camera_sensor.cpp
> @@ -163,6 +163,30 @@ int CameraSensor::init()
> return 0;
> }
>
> +/**
> + * \brief Retrieve the sensor model name
> + *
> + * The sensor model name is a free-formed string that uniquely identifies the
> + * sensor model.
> + *
> + * \return The sensor model name
> + */
> +std::string CameraSensor::model() const
> +{
> + /*
> + * Extract the camera sensor model name from the media entity name.
> + *
> + * \todo There is no standardized naming scheme for sensor entities
> + * in the Linux kernel at the moment. The most common naming scheme
> + * is the one obtained by associating the sensor name and its I2C
> + * device and bus addresses in the form of: "devname i2c-adapt:i2c-addr"
> + * Assume this is the standard naming scheme and parse the first part
> + * of the entity name to obtain "devname".
> + */
> + std::string entityName = subdev_->entity()->name();
> + return entityName.substr(0, entityName.find(' '));
> +}
> +
> /**
> * \fn CameraSensor::entity()
> * \brief Retrieve the sensor media entity
> diff --git a/src/libcamera/include/camera_sensor.h b/src/libcamera/include/camera_sensor.h
> index 5277f7f7fe87..e68185370eb2 100644
> --- a/src/libcamera/include/camera_sensor.h
> +++ b/src/libcamera/include/camera_sensor.h
> @@ -33,6 +33,7 @@ public:
>
> int init();
>
> + std::string model() const;
> const MediaEntity *entity() const { return entity_; }
> const std::vector<unsigned int> &mbusCodes() const { return mbusCodes_; }
> const std::vector<Size> &sizes() const { return sizes_; }
> --
> Regards,
>
> Laurent Pinchart
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
More information about the libcamera-devel
mailing list