Initilise 3A ae&af windows always when preview size is set.
authorMarko Ollonen <marko.ollonen@ixonos.com>
Tue, 16 Apr 2013 07:26:09 +0000 (10:26 +0300)
committerTelle-Tiia Pitkänen <telle-tiia.pitkanen@ixonos.com>
Wed, 17 Apr 2013 10:01:35 +0000 (13:01 +0300)
Change-Id: Id32860bcaaeaf53d683c4f52c46a74baecf170a4

gst-libs/atomisphal/mfld_cam.c
gst/mfldv4l2cam/v4l2camsrc_calls.c
gst/mfldv4l2cam/v4l2camsrc_calls.h
packaging/gst-plugins-atomisp.changes

index 497d34b..a469bb1 100644 (file)
@@ -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)
index 081b6ff..1404b4f 100644 (file)
@@ -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)
 {
index 9d1d488..06d86d7 100644 (file)
@@ -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__ */
index 524d187..48cfb82 100644 (file)
@@ -1,3 +1,6 @@
+* Tue Apr 16 2013 Marko Ollonen <marko.ollonen@ixonos.com> accepted/tizen_2.0/20130307.195130@d214073
+- Initilise 3A ae&af windows always when preview size is set.
+
 * Fri Apr 12 2013 Marko Ollonen <marko.ollonen@ixonos.com> accepted/tizen_2.0/20130307.195130@f710ac0
 - ev compensation, fix step -1.0.
 - Change flash sequence to use one bit longer flash.