[libcamera-devel] [PATCH] cam: Support base 16 and base 8 when parsing integer options

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed Jun 19 15:06:45 CEST 2019


Hi Niklas,

On Wed, Jun 19, 2019 at 01:00:11PM +0200, Niklas Söderlund wrote:
> On 2019-06-19 13:50:47 +0300, Laurent Pinchart wrote:
> > Integer options have to use base 10. This isn't user-friendly when
> > specifying pixel formats. Detect the base automatically to support base
> > 16. As a side effect, integer values starting with 0 will be interpreted
> > in base 8.
> 
> I wonder if we should not use cam to experiment on how libcamera should 
> express pixel formats. As a first step maybe we could translate the v4l2 
> integer value to/from its string representation inside cam and if that 
> proves to be useful move it to libcamera?

It's a good idea. We still have to decide on how to represent formats,
but the two problems can be tackled independently. I'm more and more
tempted to use DRM 4CCs...

> I might not be the representation we choose in the end but by doing so 
> we would have a central place to change translation method.
> 
> That being said this patch in itself adds value to cam so,
> 
> Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> 
> > Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> > ---
> >  src/cam/options.cpp | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/src/cam/options.cpp b/src/cam/options.cpp
> > index bea4a600d1d5..7c3948df3b5c 100644
> > --- a/src/cam/options.cpp
> > +++ b/src/cam/options.cpp
> > @@ -79,7 +79,7 @@ bool OptionsBase<T>::parseValue(const T &opt, const Option &option,
> >  
> >  		if (optarg) {
> >  			char *endptr;
> > -			integer = strtoul(optarg, &endptr, 10);
> > +			integer = strtoul(optarg, &endptr, 0);
> >  			if (*endptr != '\0')
> >  				return false;
> >  		} else {

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list