libcamera: Add support for OmniVision OV8858
Support for the OmniVision OV8858 sensor is scheduled for inclusion in
the Linux kernel in version v6.3.
Add support for the sensor in libcamera by providing static properties
and a camera sensor helper in libipa.
The camera sensor helper expresses analogue gain increments in 1/128
step which differs from what is reported in the sensor documentation in
section "5.8 manual exposure compensation/ manual gain compensation" [0]
A more detailed analysis of the sensor gain model is reported at:
2022110617
.166892-2-nicholas@rothemail.net/#142267
Record with a \todo note a reference to discussion on the gain model
implementation.
Signed-off-by: Nicholas Roth <nicholas@rothemail.net>
Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
parent
7986d3d3c1
commit
0f382a9926
2 changed files with 31 additions and 0 deletions
|
@ -516,6 +516,24 @@ public:
|
||||||
};
|
};
|
||||||
REGISTER_CAMERA_SENSOR_HELPER("ov5693", CameraSensorHelperOv5693)
|
REGISTER_CAMERA_SENSOR_HELPER("ov5693", CameraSensorHelperOv5693)
|
||||||
|
|
||||||
|
class CameraSensorHelperOv8858 : public CameraSensorHelper
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CameraSensorHelperOv8858()
|
||||||
|
{
|
||||||
|
gainType_ = AnalogueGainLinear;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* \todo Validate the selected 1/128 step value as it differs
|
||||||
|
* from what the sensor manual describes.
|
||||||
|
*
|
||||||
|
* See: https://patchwork.linuxtv.org/project/linux-media/patch/20221106171129.166892-2-nicholas@rothemail.net/#142267
|
||||||
|
*/
|
||||||
|
gainConstants_.linear = { 1, 0, 0, 128 };
|
||||||
|
}
|
||||||
|
};
|
||||||
|
REGISTER_CAMERA_SENSOR_HELPER("ov8858", CameraSensorHelperOv8858)
|
||||||
|
|
||||||
class CameraSensorHelperOv8865 : public CameraSensorHelper
|
class CameraSensorHelperOv8865 : public CameraSensorHelper
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -180,6 +180,19 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen
|
||||||
*/
|
*/
|
||||||
},
|
},
|
||||||
} },
|
} },
|
||||||
|
{ "ov8858", {
|
||||||
|
.unitCellSize = { 1120, 1120 },
|
||||||
|
.testPatternModes = {
|
||||||
|
{ controls::draft::TestPatternModeOff, 0 },
|
||||||
|
{ controls::draft::TestPatternModeColorBars, 1 },
|
||||||
|
{ controls::draft::TestPatternModeColorBarsFadeToGray, 2 },
|
||||||
|
/*
|
||||||
|
* No corresponding test patter mode
|
||||||
|
* 3: "Vertical Color Bar Type 3",
|
||||||
|
* 4: "Vertical Color Bar Type 4"
|
||||||
|
*/
|
||||||
|
},
|
||||||
|
} },
|
||||||
{ "ov8865", {
|
{ "ov8865", {
|
||||||
.unitCellSize = { 1400, 1400 },
|
.unitCellSize = { 1400, 1400 },
|
||||||
.testPatternModes = {
|
.testPatternModes = {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue