[libcamera-devel] [PATCH v8 3/6] libcamera: CameraSensorProperties: Add table of v4l2 index and test pattern

Jacopo Mondi jacopo at jmondi.org
Thu Jun 10 18:07:00 CEST 2021


Hi Hiro,

On Thu, Jun 10, 2021 at 05:25:36PM +0900, Hirokazu Honda wrote:
> The V4L2 specification defines the sensor test pattern modes
> through a menu control, where a numerical index is associated to
> a string that describes the test pattern. The index-to-pattern
> mapping is driver specific and requires a corresponding representation
> in the library.
>
> Add to the static list of CameraSensorProperties a map of indexes to
> libcamera::controls::TestPatternModes values to be able to map the
> indexes returned by the driver to the corresponding test pattern mode.
>
> Signed-off-by: Hirokazu Honda <hiroh at chromium.org>
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>

Thanks
  j

> ---
>  .../internal/camera_sensor_properties.h       |  2 ++
>  src/libcamera/camera_sensor_properties.cpp    | 33 +++++++++++++++++++
>  2 files changed, 35 insertions(+)
>
> diff --git a/include/libcamera/internal/camera_sensor_properties.h b/include/libcamera/internal/camera_sensor_properties.h
> index f5e242cb..67c77920 100644
> --- a/include/libcamera/internal/camera_sensor_properties.h
> +++ b/include/libcamera/internal/camera_sensor_properties.h
> @@ -7,6 +7,7 @@
>  #ifndef __LIBCAMERA_SENSOR_CAMERA_SENSOR_PROPERTIES_H__
>  #define __LIBCAMERA_SENSOR_CAMERA_SENSOR_PROPERTIES_H__
>
> +#include <map>
>  #include <string>
>
>  #include <libcamera/geometry.h>
> @@ -17,6 +18,7 @@ struct CameraSensorProperties {
>  	static const CameraSensorProperties *get(const std::string &sensor);
>
>  	Size unitCellSize;
> +	std::map<int32_t, int32_t> testPatternModes;
>  };
>
>  } /* namespace libcamera */
> diff --git a/src/libcamera/camera_sensor_properties.cpp b/src/libcamera/camera_sensor_properties.cpp
> index a2c04009..f660743a 100644
> --- a/src/libcamera/camera_sensor_properties.cpp
> +++ b/src/libcamera/camera_sensor_properties.cpp
> @@ -9,6 +9,8 @@
>
>  #include <map>
>
> +#include <libcamera/control_ids.h>
> +
>  #include "libcamera/internal/log.h"
>
>  /**
> @@ -34,6 +36,11 @@ LOG_DEFINE_CATEGORY(CameraSensorProperties)
>   *
>   * \var CameraSensorProperties::unitCellSize
>   * \brief The physical size of a pixel, including pixel edges, in nanometers.
> + *
> + * \var CameraSensorProperties::testPatternModes
> + * \brief Map that associates the indexes of the sensor test pattern modes as
> + * returned by V4L2_CID_TEST_PATTERN with the corresponding TestPattern
> + * control value
>   */
>
>  /**
> @@ -47,18 +54,44 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen
>  	static const std::map<std::string, const CameraSensorProperties> sensorProps = {
>  		{ "imx219", {
>  			.unitCellSize = { 1120, 1120 },
> +			.testPatternModes = {
> +				{ 0, controls::draft::TestPatternModeOff },
> +				{ 1, controls::draft::TestPatternModeColorBars },
> +				{ 2, controls::draft::TestPatternModeSolidColor },
> +				{ 3, controls::draft::TestPatternModeColorBarsFadeToGray },
> +				{ 4, controls::draft::TestPatternModePn9 },
> +			},
>  		} },
>  		{ "imx258", {
>  			.unitCellSize = { 1120, 1120 },
> +			/* \todo fill test pattern modes for imx258. */
> +			.testPatternModes = {},
>  		} },
>  		{ "ov5670", {
>  			.unitCellSize = { 1120, 1120 },
> +			.testPatternModes = {
> +				{ 0, controls::draft::TestPatternModeOff },
> +				{ 1, controls::draft::TestPatternModeColorBars },
> +			},
>  		} },
>  		{ "ov13858", {
>  			.unitCellSize = { 1120, 1120 },
> +			.testPatternModes =  {
> +				{ 0, controls::draft::TestPatternModeOff },
> +				{ 1, controls::draft::TestPatternModeColorBars },
> +			},
>  		} },
>  		{ "ov5693", {
>  			.unitCellSize = { 1400, 1400 },
> +			.testPatternModes = {
> +				{ 0, controls::draft::TestPatternModeOff },
> +				{ 2, controls::draft::TestPatternModeColorBars },
> +				/*
> +				 * No corresponding test pattern mode for
> +				 * 1: "Random data" and 3: "Colour Bars with
> +				 * Rolling Bar".
> +				 */
> +			},
>  		} },
>  	};
>
> --
> 2.32.0.rc1.229.g3e70b5a671-goog
>


More information about the libcamera-devel mailing list