@@ -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