[libcamera-devel,v6,1/7] libcamera: properties: Add model property

Message ID 20200929144648.429397-2-niklas.soderlund@ragnatech.se
State Accepted
Headers show
Series
  • libcamera: Allow for user-friendly names in
Related show

Commit Message

Niklas Söderlund Sept. 29, 2020, 2:46 p.m. UTC
The model name must to the extent possible describe the sensor. For most
devices this is the model name of the sensor. While for some devices the
sensor model is unavailable as the sensor or the entire camera is part
of a larger unit and exposed as a black-box to the system. In such cases
the model name of the smallest component closest to the sensor must be
used.

Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
---
* Changes since v5
- Expand description.
- Changes so much by now I reluctantly have to drop Kieran's R-b :-(

* Changes since v4
- Expand description.

* Changes since v3
- s/as ASCII/in ASCII/
---
 src/libcamera/property_ids.yaml | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

Comments

Kieran Bingham Sept. 30, 2020, 8:18 a.m. UTC | #1
Hi Niklas,

On 29/09/2020 15:46, Niklas Söderlund wrote:
> The model name must to the extent possible describe the sensor. For most
> devices this is the model name of the sensor. While for some devices the
> sensor model is unavailable as the sensor or the entire camera is part
> of a larger unit and exposed as a black-box to the system. In such cases
> the model name of the smallest component closest to the sensor must be
> used.
> 
> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
> ---
> * Changes since v5
> - Expand description.
> - Changes so much by now I reluctantly have to drop Kieran's R-b :-(

What? Oh ok I'll take another look. :-D


> * Changes since v4
> - Expand description.
> 
> * Changes since v3
> - s/as ASCII/in ASCII/
> ---
>  src/libcamera/property_ids.yaml | 23 +++++++++++++++++++++++
>  1 file changed, 23 insertions(+)
> 
> diff --git a/src/libcamera/property_ids.yaml b/src/libcamera/property_ids.yaml
> index 74ad0195d6310367..3f634503a7f201e3 100644
> --- a/src/libcamera/property_ids.yaml
> +++ b/src/libcamera/property_ids.yaml
> @@ -387,6 +387,29 @@ controls:
>                                |                    |
>                                +--------------------+
>  
> +  - Model:
> +      type: string
> +      description: |
> +        The model name must to the extent possible describe the sensor. For most
> +        devices this is the model name of the sensor. While for some devices the
> +        sensor model is unavailable as the sensor or the entire camera is part
> +        of a larger unit and exposed as a black-box to the system. In such cases
> +        the model name of the smallest component closest to the sensor must be
> +        used.

I'm not sure I understand this ... as in ... like the CSI2
receiver/port? would that be a potential name used?

> +
> +        The model name is not meant to be a camera name displayed to the
> +        end-user, but may be combined with other camera information to create a
> +        camera name.
> +
> +        The model name is not guaranteed to be unique in the system nor is
> +        it guaranteed to be stable or have any other properties required to make
> +        it a good candidate to be used as a permanent identifier of a camera.
> +
> +        The model name shall describe the camera in a human readable format and
> +        shall be encoded in ASCII.
> +
> +        Example model names are 'ov5670', 'imx219' or 'Logitech Webcam C930e'.
> +
>    - UnitCellSize:
>        type: Size
>        description: |
> 

Except for a small potential confusion on 'what the smallest component
closest to the sensor' might be interpreted as

Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

But perhaps that will be more evident to whomever has to deal with this
in the future, as it sounds like a catch-all phrase to support what to
do if you can't get the sensor name directly, so I don't object to it.
Laurent Pinchart Oct. 2, 2020, 2:19 a.m. UTC | #2
Hi Niklas and Kieran,

On Wed, Sep 30, 2020 at 09:18:26AM +0100, Kieran Bingham wrote:
> On 29/09/2020 15:46, Niklas Söderlund wrote:
> > The model name must to the extent possible describe the sensor. For most
> > devices this is the model name of the sensor. While for some devices the
> > sensor model is unavailable as the sensor or the entire camera is part
> > of a larger unit and exposed as a black-box to the system. In such cases
> > the model name of the smallest component closest to the sensor must be
> > used.
> > 
> > Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
> > ---
> > * Changes since v5
> > - Expand description.
> > - Changes so much by now I reluctantly have to drop Kieran's R-b :-(
> 
> What? Oh ok I'll take another look. :-D
> 
> > * Changes since v4
> > - Expand description.
> > 
> > * Changes since v3
> > - s/as ASCII/in ASCII/
> > ---
> >  src/libcamera/property_ids.yaml | 23 +++++++++++++++++++++++
> >  1 file changed, 23 insertions(+)
> > 
> > diff --git a/src/libcamera/property_ids.yaml b/src/libcamera/property_ids.yaml
> > index 74ad0195d6310367..3f634503a7f201e3 100644
> > --- a/src/libcamera/property_ids.yaml
> > +++ b/src/libcamera/property_ids.yaml
> > @@ -387,6 +387,29 @@ controls:
> >                                |                    |
> >                                +--------------------+
> >  
> > +  - Model:

I've initially thought we could come up with a good definition of what
would be a generic camera model, but it's quite difficult. We can't
always use the sensor name, mostly because of UVC cameras, but I can
also imagine using the name of a GMSL, FPD-Link III or MIPI A-PHY camera
box instead of the sensor name in the future). There's also the issue of
logical cameras using multiple sensors that should be taken into
account.

For all of these reasons, I think we'll end up reworking this in the
future when more use cases will emerge, I'll stop trying to reach
perfection. As the model name is the sensor name in the normal case, I'd
be fine if we renamed this SensorModel. Up to you.

> > +      type: string
> > +      description: |
> > +        The model name must to the extent possible describe the sensor. For most

s/must/shall/

> > +        devices this is the model name of the sensor. While for some devices the
> > +        sensor model is unavailable as the sensor or the entire camera is part
> > +        of a larger unit and exposed as a black-box to the system. In such cases
> > +        the model name of the smallest component closest to the sensor must be

Ditto.

> > +        used.
> 
> I'm not sure I understand this ... as in ... like the CSI2
> receiver/port? would that be a potential name used?

It's a bit confusing indeed. Maybe "[...] the model name of the smallest
device that contains the camera sensor [...]" ?

> > +
> > +        The model name is not meant to be a camera name displayed to the
> > +        end-user, but may be combined with other camera information to create a
> > +        camera name.
> > +
> > +        The model name is not guaranteed to be unique in the system nor is
> > +        it guaranteed to be stable or have any other properties required to make
> > +        it a good candidate to be used as a permanent identifier of a camera.

Do you foresee cases where it won't be stable ?

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

> > +
> > +        The model name shall describe the camera in a human readable format and
> > +        shall be encoded in ASCII.
> > +
> > +        Example model names are 'ov5670', 'imx219' or 'Logitech Webcam C930e'.
> > +
> >    - UnitCellSize:
> >        type: Size
> >        description: |
> 
> Except for a small potential confusion on 'what the smallest component
> closest to the sensor' might be interpreted as
> 
> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
> 
> But perhaps that will be more evident to whomever has to deal with this
> in the future, as it sounds like a catch-all phrase to support what to
> do if you can't get the sensor name directly, so I don't object to it.

Patch

diff --git a/src/libcamera/property_ids.yaml b/src/libcamera/property_ids.yaml
index 74ad0195d6310367..3f634503a7f201e3 100644
--- a/src/libcamera/property_ids.yaml
+++ b/src/libcamera/property_ids.yaml
@@ -387,6 +387,29 @@  controls:
                               |                    |
                               +--------------------+
 
+  - Model:
+      type: string
+      description: |
+        The model name must to the extent possible describe the sensor. For most
+        devices this is the model name of the sensor. While for some devices the
+        sensor model is unavailable as the sensor or the entire camera is part
+        of a larger unit and exposed as a black-box to the system. In such cases
+        the model name of the smallest component closest to the sensor must be
+        used.
+
+        The model name is not meant to be a camera name displayed to the
+        end-user, but may be combined with other camera information to create a
+        camera name.
+
+        The model name is not guaranteed to be unique in the system nor is
+        it guaranteed to be stable or have any other properties required to make
+        it a good candidate to be used as a permanent identifier of a camera.
+
+        The model name shall describe the camera in a human readable format and
+        shall be encoded in ASCII.
+
+        Example model names are 'ov5670', 'imx219' or 'Logitech Webcam C930e'.
+
   - UnitCellSize:
       type: Size
       description: |