[libcamera-devel] [PATCH 2/3] libcamera: camera_sensor: Set default sensor location to Unknown

paul.elder at ideasonboard.com paul.elder at ideasonboard.com
Fri Feb 12 05:52:51 CET 2021


Hi Niklas,

On Thu, Feb 11, 2021 at 11:35:58PM +0100, Niklas Söderlund wrote:
> Hi Laurent,
> 
> On 2021-02-12 00:26:02 +0200, Laurent Pinchart wrote:
> > Hi Niklas,
> > 
> > On Thu, Feb 11, 2021 at 10:58:24PM +0100, Niklas Söderlund wrote:
> > > On 2021-02-11 23:44:44 +0200, Laurent Pinchart wrote:
> > > > On Thu, Feb 11, 2021 at 02:24:19PM +0100, Niklas Söderlund wrote:
> > > > > On 2021-02-11 17:55:26 +0900, Paul Elder wrote:
> > > > > > Instead of choosing some arbitrary location for the sensor when its
> > > > > > location is unknown, set it explicitly to unknown.
> > > > > > 
> > > > > > Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
> > > > > > ---
> > > > > >  src/libcamera/camera_sensor.cpp | 2 +-
> > > > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > > > 
> > > > > > diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp
> > > > > > index c9e8d49b..474055ba 100644
> > > > > > --- a/src/libcamera/camera_sensor.cpp
> > > > > > +++ b/src/libcamera/camera_sensor.cpp
> > > > > > @@ -446,7 +446,7 @@ int CameraSensor::initProperties()
> > > > > >  			break;
> > > > > >  		}
> > > > > >  	} else {
> > > > > > -		propertyValue = properties::CameraLocationExternal;
> > > > > > +		propertyValue = properties::CameraLocationUnknown;
> > > > > 
> > > > > I wonder if it would not make more sens to just set the location to 
> > > > > front here? What additional use-case do we cover by adding the unkown 
> > > > > location?
> > > > >
> > > > > If we want to highlight we don't know where a camera is would it not be 
> > > > > better to LOG() that we don't know but assume front. I'm thinking from 
> > > > > an application point of view is it not kind of messy to have to deal 
> > > > > with a firmware description that is incomplete? I guess all users will 
> > > > > do what you do in this series for the HAL and default it to something 
> > > > > else.
> > > > 
> > > > Isn't it better to let the application decide though, instead of
> > > > pretending we know ? The application could then decide how to deal with
> > > > the situation depending on its use cases, which are not known to
> > > > libcamera.
> > > 
> > > I'd say it depends :-)
> > > 
> > > Down the road I envision the camera location to always be mandatory.  
> > > Either read from firmware or a platform configuration file. If this 
> > > holds true I think adding a unknown location now is just pushing the 
> > > problem down the road. On the other hand if we think we will have 
> > > cameras with an unknown location and see it as a valid use-case I think 
> > > this patch is correct.
> > > 
> > > I'm however not convinced we have a good use-case for a camera with an 
> > > unknown location. Do you have an example of such use-case?
> > 
> > How would you describe, for instance, a Raspberry Pi camera sitting on a
> > desk ?
> 
> I would describe it as external, just like a UVC camera at the end of a 
> cable. If I then make a product of the RPi/UVC camera and mount it in a 
> frame I would expect a firmware or other integration work (configuation 
> file?) addition to describe how I mounted it.
> 
> IMHO that way libcamera applications can make a better deductions about 
> use-cases then if it has to handle the subtle differences between 
> external and unknown.

Yes, I agree that there really should be a firmware or configuration
file or /something/ that indicates the location. The issue that we're
having is what if such configuration is absent. In such case I think
it's better to have a distintion between some default value and the fact
that the location is unknown, and then the application can decide what
to do in the latter case.

> > 
> > > > > If you do opt to keep the addition of CameraLocationUnknown you should 
> > > > > also update cam utility to handle the new location value.

Ah, yes.


Thanks,

Paul

> > > > Yes, that should be part of this series.
> > > > 
> > > > Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> > > > 
> > > > > >  	}
> > > > > >  	properties_.set(properties::Location, propertyValue);
> > > > > >  


More information about the libcamera-devel mailing list