diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp index 4f052151..94f36427 100644 --- a/src/ipa/libipa/camera_sensor_helper.cpp +++ b/src/ipa/libipa/camera_sensor_helper.cpp @@ -497,6 +497,16 @@ public: }; REGISTER_CAMERA_SENSOR_HELPER("gc08a3", CameraSensorHelperGc08a3) +class CameraSensorHelperHm1246 : public CameraSensorHelper +{ +public: + CameraSensorHelperHm1246() + { + gain_ = AnalogueGainLinear{ 1, 16, 0, 16 }; + } +}; +REGISTER_CAMERA_SENSOR_HELPER("hm1246", CameraSensorHelperHm1246) + class CameraSensorHelperImx214 : public CameraSensorHelper { public: diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp index 09f60391..b217363d 100644 --- a/src/libcamera/sensor/camera_sensor_properties.cpp +++ b/src/libcamera/sensor/camera_sensor_properties.cpp @@ -151,6 +151,38 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen }, .sensorDelays = { }, } }, + { "hm1246", { + .unitCellSize = { 3000, 3000 }, + .testPatternModes = { + { controls::draft::TestPatternModeOff, 0 }, + /* Solid white. */ + { controls::draft::TestPatternModeSolidColor, 6 }, + /* The six vertical bars (left-to-right) are as follows: black, + * blue, red, magenta, green and cyan. + */ + { controls::draft::TestPatternModeCustom1, 5 }, + /* + * No corresponding test pattern mode for: + * 1: "Checkboard" + * 2: "Ramp" + * 3: "Moving ones" + * 4: "Blending color bars" + * 7: "Solid black" + * 8: "Solid red" + * 9: "Solid green" + * 10: "Solid blue" + * + * Even though the sensor supports color bars and faded color bars as test patterns, these are + * not offered because these patterns do not meet the expected properties. + */ + }, + .sensorDelays = { + .exposureDelay = 2, + .gainDelay = 2, + .vblankDelay = 2, + .hblankDelay = 2 + }, + } }, { "imx214", { .unitCellSize = { 1120, 1120 }, .testPatternModes = {