From: Marko Ollonen Date: Tue, 16 Apr 2013 07:26:09 +0000 (+0300) Subject: Initilise 3A ae&af windows always when preview size is set. X-Git-Tag: 2.1b_release^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6096d27389a8d8e1087f7a5ae6c81673d9a90503;p=adaptation%2Fintel_mfld%2Fgst-plugins-atomisp.git Initilise 3A ae&af windows always when preview size is set. Change-Id: Id32860bcaaeaf53d683c4f52c46a74baecf170a4 --- diff --git a/gst-libs/atomisphal/mfld_cam.c b/gst-libs/atomisphal/mfld_cam.c index 497d34b..a469bb1 100644 --- a/gst-libs/atomisphal/mfld_cam.c +++ b/gst-libs/atomisphal/mfld_cam.c @@ -1263,12 +1263,14 @@ cam_driver_init (int fd, const char *sensor_id) mfldadvci->AfEnable(TRUE); mfldadvci->AfLock(FALSE); + mfld_driver.window.x_left = 0; - mfld_driver.window.x_right = 0, + mfld_driver.window.x_right = 40, mfld_driver.window.y_top = 0; - mfld_driver.window.y_bottom = 0; + mfld_driver.window.y_bottom = 40; mfld_driver.window.weight = 0; mfldadvci->AeSetWindow(&mfld_driver.window); + mfldadvci->AfSetWindows (1, &mfld_driver.window ); mfldadvci->AeSetExposureProgram(advci_ae_exposure_program_auto); mfldadvci->AeSetMode(advci_ae_mode_auto); @@ -1276,8 +1278,10 @@ cam_driver_init (int fd, const char *sensor_id) mfldadvci->AfSetRange (advci_af_range_full); mfldadvci->AwbSetMode(advci_awb_mode_auto); mfldadvci->AfSetMode(advci_af_mode_auto); - mfldadvci->AfSetMeteringMode (advci_af_metering_mode_auto); mfldadvci->AeSetFlickerMode (advci_ae_flicker_mode_50hz); + mfldadvci->AfSetMeteringMode(advci_af_metering_mode_auto); + + mfldadvci->af_stop (); } else{ mfld_driver.sensor_type = SENSOR_TYPE_SOC; @@ -1846,9 +1850,12 @@ void cam_set_af_ae_window(advci_window *window) { cam_driver_dbg ("%s\n", __func__); - mfldadvci->AfSetWindows (1, window); - mfldadvci->AeSetWindow(window); - mfld_driver.window = *window; + if (mfld_driver.sensor_type == SENSOR_TYPE_RAW){ + mfldadvci->AfSetWindows (1, window); + mfldadvci->AeSetWindow(window); + mfld_driver.window = *window; + } + } void get_af_result(int fd, unsigned * result) diff --git a/gst/mfldv4l2cam/v4l2camsrc_calls.c b/gst/mfldv4l2cam/v4l2camsrc_calls.c index 081b6ff..1404b4f 100644 --- a/gst/mfldv4l2cam/v4l2camsrc_calls.c +++ b/gst/mfldv4l2cam/v4l2camsrc_calls.c @@ -2567,6 +2567,7 @@ gst_v4l2camsrc_set_capture (GstCameraSrc * camsrc, GstOperationMode mode, v4l2camsrc->vf_fps_n = *fps_n; v4l2camsrc->vf_fps_d = *fps_d; } + gst_v4l2camsrc_init_AeAafwindow(camsrc, width,height); } if (err != CAM_ERR_NONE) ret = FALSE; @@ -3506,15 +3507,26 @@ gst_v4l2camsrc_set_AeAafwindow (GstCameraSrc * camsrc, GstCameraSrc3a_window win v4l2camsrc->af_window = v4l2camsrc->ae_window = *(GstCameraWindow*)&window; - if (v4l2camsrc->is_active) { - g_mutex_lock (v4l2camsrc->device_mutex); cam_set_af_ae_window((advci_window *) (&v4l2camsrc->af_window)); - g_mutex_unlock (v4l2camsrc->device_mutex); - } return ret; } +void +gst_v4l2camsrc_init_AeAafwindow(GstCameraSrc * camsrc, guint *width, guint *height) +{ + GstCameraSrc3a_window init_window; + + init_window.x_left = (*width / 2) - 20 < 0 ? (*width / 2) : (*width / 2) - 20; + init_window.x_right = (*width / 2) + 20; + init_window.y_top = (*height / 2) - 20 < 0 ? (*height / 2): (*height / 2) - 20; + init_window.y_bottom = (*height / 2) + 20; + init_window.weight = 400; + + gst_v4l2camsrc_set_AeAafwindow(camsrc, init_window); + +} + gboolean gst_v4l2camsrc_set_autofocus (GstCameraSrc * camsrc, gboolean on) { diff --git a/gst/mfldv4l2cam/v4l2camsrc_calls.h b/gst/mfldv4l2cam/v4l2camsrc_calls.h index 9d1d488..06d86d7 100644 --- a/gst/mfldv4l2cam/v4l2camsrc_calls.h +++ b/gst/mfldv4l2cam/v4l2camsrc_calls.h @@ -165,5 +165,8 @@ gst_v4l2camsrc_create_second_buffer(GstCameraSrc *camsrc, GstBuffer **buf); void gst_v4l2camsrc_stop_second_wait(GstCameraSrc *camsrc); +void +gst_v4l2camsrc_init_AeAafwindow (GstCameraSrc * camsrc, guint *width, guint *height); + #endif /* __V4L2CAMSRC_CALLS_H__ */ diff --git a/packaging/gst-plugins-atomisp.changes b/packaging/gst-plugins-atomisp.changes index 524d187..48cfb82 100644 --- a/packaging/gst-plugins-atomisp.changes +++ b/packaging/gst-plugins-atomisp.changes @@ -1,3 +1,6 @@ +* Tue Apr 16 2013 Marko Ollonen accepted/tizen_2.0/20130307.195130@d214073 +- Initilise 3A ae&af windows always when preview size is set. + * Fri Apr 12 2013 Marko Ollonen accepted/tizen_2.0/20130307.195130@f710ac0 - ev compensation, fix step -1.0. - Change flash sequence to use one bit longer flash.