[libcamera-devel] [PATCH v6 5/6] libcamera: pipeline: ipu3: Report available sensor test pattern mode
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Mon Jun 7 01:47:36 CEST 2021
Hi Hiro,
Thank you for the patch.
On Fri, May 28, 2021 at 12:05:30PM +0900, Hirokazu Honda wrote:
> PipelineHandlerIPU3 gets available test pattern modes of the
> sensor device and reports them to a client.
>
> Signed-off-by: Hirokazu Honda <hiroh at chromium.org>
> Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>
> ---
> src/libcamera/pipeline/ipu3/ipu3.cpp | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
> index 58923bc7..0e028cff 100644
> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp
> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
> @@ -936,6 +936,18 @@ int PipelineHandlerIPU3::initControls(IPU3CameraData *data)
> ControlInfoMap::Map controls = IPU3Controls;
> const ControlInfoMap &sensorControls = sensor->controls();
>
> + if (const std::vector<uint8_t> &testPatternModes =
> + sensor->testPatternModes();
> + !testPatternModes.empty()) {
That's a really weird construct.
const std::vector<uint8_t> &testPatternModes = sensor->testPatternModes();
if (!testPatternModes.empty()) {
would be more readable.
> + std::vector<ControlValue> values;
> + values.reserve(testPatternModes.size());
> +
> + for (uint8_t pattern : testPatternModes)
> + values.emplace_back(static_cast<int32_t>(pattern));
You will be able to drop the cast if you make the test pattern modes map
store int32_t (the CameraSensor::testPatternModes() function will need
to be updated accordingly).
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> +
> + controls[&controls::draft::TestPatternMode] = ControlInfo(values);
> + }
> +
> /*
> * Compute exposure time limits.
> *
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list