Skip to content

Commit df089b0

Browse files
ravi-rahulshyam-j
authored andcommitted
Add support for OV2312
Signed-off-by: Rahul T R <r-ravikumar@ti.com>
1 parent 1badf4f commit df089b0

File tree

1 file changed

+46
-3
lines changed

1 file changed

+46
-3
lines changed

ext/tiovx/gsttiovxisp.c

Lines changed: 46 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -617,6 +617,8 @@ static int32_t get_imx219_ae_dyn_params (IssAeDynamicParams * p_ae_dynPrms);
617617

618618
static int32_t get_imx390_ae_dyn_params (IssAeDynamicParams * p_ae_dynPrms);
619619

620+
static int32_t get_ov2312_ae_dyn_params (IssAeDynamicParams * p_ae_dynPrms);
621+
620622
static void gst_tiovx_isp_map_2A_values (GstTIOVXISP * self, int exposure_time,
621623
int analog_gain, gint32 * exposure_time_mapped,
622624
gint32 * analog_gain_mapped);
@@ -1640,8 +1642,10 @@ gst_tiovx_isp_postprocess (GstTIOVXMiso * miso)
16401642
sizeof (tivx_ae_awb_params_t), &aewb_buf_map_id,
16411643
(void **) &ae_awb_result, VX_WRITE_ONLY, VX_MEMORY_TYPE_HOST, 0);
16421644

1643-
if (g_strcmp0 (self->sensor_name, "IMX390-UB953_D3") == 0) {
1645+
if (g_strcmp0 (self->sensor_name, "SENSOR_SONY_IMX390_UB953_D3") == 0) {
16441646
get_imx390_ae_dyn_params (&sink_pad->sensor_in_data.ae_dynPrms);
1647+
} else if (g_strcmp0 (self->sensor_name, "SENSOR_OV2312_UB953_LI") == 0) {
1648+
get_ov2312_ae_dyn_params (&sink_pad->sensor_in_data.ae_dynPrms);
16451649
} else {
16461650
get_imx219_ae_dyn_params (&sink_pad->sensor_in_data.ae_dynPrms);
16471651
}
@@ -1777,6 +1781,42 @@ get_imx390_ae_dyn_params (IssAeDynamicParams * p_ae_dynPrms)
17771781
return status;
17781782
}
17791783

1784+
static int32_t
1785+
get_ov2312_ae_dyn_params (IssAeDynamicParams * p_ae_dynPrms)
1786+
{
1787+
int32_t status = -1;
1788+
uint8_t count = 0;
1789+
1790+
g_return_val_if_fail (p_ae_dynPrms, status);
1791+
1792+
p_ae_dynPrms->targetBrightnessRange.min = 40;
1793+
p_ae_dynPrms->targetBrightnessRange.max = 50;
1794+
p_ae_dynPrms->targetBrightness = 45;
1795+
p_ae_dynPrms->threshold = 5;
1796+
p_ae_dynPrms->enableBlc = 0;
1797+
p_ae_dynPrms->exposureTimeStepSize = 1;
1798+
1799+
p_ae_dynPrms->exposureTimeRange[count].min = 1000;
1800+
p_ae_dynPrms->exposureTimeRange[count].max = 14450;
1801+
p_ae_dynPrms->analogGainRange[count].min = 1;
1802+
p_ae_dynPrms->analogGainRange[count].max = 1;
1803+
p_ae_dynPrms->digitalGainRange[count].min = 1024;
1804+
p_ae_dynPrms->digitalGainRange[count].max = 1024;
1805+
count++;
1806+
1807+
p_ae_dynPrms->exposureTimeRange[count].min = 14450;
1808+
p_ae_dynPrms->exposureTimeRange[count].max = 14450;
1809+
p_ae_dynPrms->analogGainRange[count].min = 1;
1810+
p_ae_dynPrms->analogGainRange[count].max = 512;
1811+
p_ae_dynPrms->digitalGainRange[count].min = 1024;
1812+
p_ae_dynPrms->digitalGainRange[count].max = 1024;
1813+
count++;
1814+
1815+
p_ae_dynPrms->numAeDynParams = count;
1816+
status = 0;
1817+
return status;
1818+
}
1819+
17801820
static void
17811821
gst_tiovx_isp_map_2A_values (GstTIOVXISP * self, int exposure_time,
17821822
int analog_gain, gint32 * exposure_time_mapped, gint32 * analog_gain_mapped)
@@ -1785,7 +1825,7 @@ gst_tiovx_isp_map_2A_values (GstTIOVXISP * self, int exposure_time,
17851825
g_return_if_fail (exposure_time_mapped);
17861826
g_return_if_fail (analog_gain_mapped);
17871827

1788-
if (g_strcmp0 (self->sensor_name, "IMX390-UB953_D3") == 0) {
1828+
if (g_strcmp0 (self->sensor_name, "SENSOR_SONY_IMX390_UB953_D3") == 0) {
17891829
gint i = 0;
17901830
for (i = 0; i <= ISS_IMX390_GAIN_TBL_SIZE; i++) {
17911831
if (gIMX390GainsTable[i][0] >= analog_gain) {
@@ -1809,7 +1849,10 @@ gst_tiovx_isp_map_2A_values (GstTIOVXISP * self, int exposure_time,
18091849

18101850
multiplier = analog_gain / 1024.0;
18111851
*analog_gain_mapped = 256.0 - 256.0 / multiplier;
1812-
1852+
} else if (g_strcmp0 (self->sensor_name, "SENSOR_OV2312_UB953_LI") == 0) {
1853+
*exposure_time_mapped = (60 * 1300 * exposure_time / 1000000);
1854+
// ms to row_time conversion - row_time(us) = 1000000/fps/height
1855+
*analog_gain_mapped = analog_gain;
18131856
} else {
18141857
GST_ERROR_OBJECT (self, "Unknown sensor: %s", self->sensor_name);
18151858
}

0 commit comments

Comments
 (0)