Skip to content

Commit 7f6b361

Browse files
odudexJamie C. Driver
authored andcommitted
camera: vertical flip for OV5640 (for diy devices, eg. T-Display S3 PRO)
1 parent 125fdf5 commit 7f6b361

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

main/camera.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,6 @@ static void jade_camera_init(void)
288288

289289
sensor_t* camera_sensor = esp_camera_sensor_get();
290290
JADE_ASSERT(camera_sensor);
291-
JADE_ASSERT(camera_sensor->set_hmirror);
292291

293292
camera_sensor_info_t* camera_info = esp_camera_sensor_get_info(&camera_sensor->id);
294293
JADE_ASSERT(camera_info);
@@ -299,12 +298,22 @@ static void jade_camera_init(void)
299298

300299
// GC0308 appears to need image flipping on both axes
301300
if (camera_info->model == CAMERA_GC0308) {
301+
JADE_ASSERT(camera_sensor->set_hmirror);
302+
JADE_ASSERT(camera_sensor->set_vflip);
302303
const int hret = camera_sensor->set_hmirror(camera_sensor, 1);
303304
const int vret = camera_sensor->set_vflip(camera_sensor, 1);
304305
if (hret || vret) {
305306
JADE_LOGE("Failed to set camera hmirror/vflip, returned: %d/%d", hret, vret);
306307
}
307308
}
309+
// OV5640 needs vertical flip for T-Display S3 PRO
310+
else if (camera_info->model == CAMERA_OV5640) {
311+
JADE_ASSERT(camera_sensor->set_vflip);
312+
const int vret = camera_sensor->set_vflip(camera_sensor, 1);
313+
if (vret) {
314+
JADE_LOGE("Failed to set camera vflip, returned: %d", vret);
315+
}
316+
}
308317
#if defined(CONFIG_DISPLAY_TOUCHSCREEN)
309318
touchscreen_deinit();
310319
touchscreen_init();

0 commit comments

Comments
 (0)