[libcamera-devel] [PATCH] libcamera: camera_sensor: Do not initialise unsupported test patterns

Naushir Patuck naush at raspberrypi.com
Wed May 25 13:05:49 CEST 2022


Hi all,

On Tue, 22 Feb 2022 at 06:11, Laurent Pinchart <
laurent.pinchart at ideasonboard.com> wrote:

> Hi Kieran,
>
> Thank you for the patch.
>
> On Sat, Feb 12, 2022 at 11:34:07PM +0000, Kieran Bingham wrote:
> > After the CameraSensor class has initialised properties, a default
> > setting is applied to ensure that test pattern modes are disabled unless
> > explicitly requested.
> >
> > This does not currently check to see if test patterns are supported on
> > the CameraSensor and the applyTestPatternMode call will report a failure
> > if it attempts to set a mode when not supported.
> >
> > Move the initialisation of the test pattern mode to the implementation
> > of the control mappings to ensure that it is correctly reset at start
> > up, while the code path will have already completed early if not
> > supported.
> >
> > Bug: https://github.com/raspberrypi/libcamera-apps/issues/249
> > Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> > ---
> >  src/libcamera/camera_sensor.cpp | 5 ++++-
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/src/libcamera/camera_sensor.cpp
> b/src/libcamera/camera_sensor.cpp
> > index 345b4a170d47..3a6a1a6bca77 100644
> > --- a/src/libcamera/camera_sensor.cpp
> > +++ b/src/libcamera/camera_sensor.cpp
> > @@ -172,7 +172,7 @@ int CameraSensor::init()
> >       if (ret)
> >               return ret;
> >
> > -     return
> applyTestPatternMode(controls::draft::TestPatternModeEnum::TestPatternModeOff);
> > +     return 0;
> >  }
> >
> >  int CameraSensor::validateSensorDriver()
> > @@ -372,6 +372,9 @@ void CameraSensor::initTestPatternModes()
> >
> >               testPatternModes_.push_back(it->second);
> >       }
> > +
> > +     /* Initialise the sensor with test patterns disabled. */
> > +
>  applyTestPatternMode(controls::draft::TestPatternModeEnum::TestPatternModeOff);
>
> Errors when applyting the test pattern are not propagated up anymore.
>
> A different approach if you don't want to turn all void functions in the
> call stack to return an int is to move the error message when
> testPatternModes_.empty() from CameraSensor::applyTestPatternMode() to
> CameraSensor::setTestPatternMode(). You will need to keep the check in
> CameraSensor::applyTestPatternMode() in order to return 0, but
> CameraSensor::setTestPatternMode() could return a proper error code.
>

Have we come to a resolution on this?  It's winding up some of our users,
and we could do with suppressing these warnings :-)

Regards,
Naush



>
> >  }
> >
> >  int CameraSensor::initProperties()
>
> --
> Regards,
>
> Laurent Pinchart
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.libcamera.org/pipermail/libcamera-devel/attachments/20220525/685df798/attachment.htm>


More information about the libcamera-devel mailing list