request distance to object from 3A.
authorMarko Ollonen <marko.ollonen@ixonos.com>
Tue, 9 Apr 2013 14:41:43 +0000 (17:41 +0300)
committerGerrit Code Review <gerrit2@kim11>
Thu, 11 Apr 2013 08:41:23 +0000 (17:41 +0900)
distance of object is printed to debug output.

Change-Id: I2b715378bfa5d3971df2e961355da3f63130b5d8

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

index 0035aac..f1c8c96 100644 (file)
@@ -340,6 +340,10 @@ lib_3a_link_functions_init (GstV4l2MFLDAdvCI *mfldadvci,  GModule *mod)
   g_module_symbol (mod, "ci_adv_enable_shading_correction", (gpointer) &mfldadvci->EnableShadingCorrection);
   g_module_symbol (mod, "ci_adv_dvs_process", (gpointer) &mfldadvci->DvsProcess);
 
+
+  g_module_symbol (mod, "ci_adv_get_focus_current_pos", (gpointer) &mfldadvci->GetCurrFocusPos);
+  g_module_symbol (mod, "ci_adv_focus_pos_to_distance", (gpointer) &mfldadvci->FocusPosToDisctance);
+
   mfldadvci->initialized = 0;
   // TODO
   mfldadvci->init = wrapper_default_init;
@@ -432,5 +436,7 @@ wrapper_default_link_functions_init (GstV4l2MFLDAdvCI *mfldadvci)
   mfldadvci->EnableShadingCorrection = wrapper_default_enable;
   mfldadvci->DvsProcess = wrapper_default_void;
 
+  mfldadvci->GetCurrFocusPos = wrapper_default_int_int;
+  mfldadvci->FocusPosToDisctance = wrapper_default_int_int;
 
 }
index 0244f6b..72b1de8 100644 (file)
@@ -277,6 +277,10 @@ struct _GstV4l2MFLDAdvCI
 
   void (*EnableShadingCorrection)(gboolean enable);
   void (*DvsProcess)(void);
+
+  int  (*GetCurrFocusPos)(int *pos);
+  int  (*FocusPosToDisctance)(int pos);  /*!< Converts pos to focus distance in cm */
+
 };
 
 void lib_3a_link_functions_init (GstV4l2MFLDAdvCI *mfldadvci, GModule *mod);
index 7ee6d58..69b48cf 100644 (file)
@@ -2031,4 +2031,13 @@ gboolean cam_is_flash_used()
 {
   return mfld_driver.flash_used;
 }
+int cam_get_focus_position()
+{
+  int curr_position = 0;
+  if (mfld_driver.sensor_type == SENSOR_TYPE_RAW) {
+    mfldadvci->GetCurrFocusPos(&curr_position);
+    return mfldadvci->FocusPosToDisctance(curr_position);
+  }
+  return curr_position;
+}
 
index b690a01..02857f6 100644 (file)
@@ -317,4 +317,6 @@ cam_err_t get_awb_manual_color_temperature(int fd, int *ctemp);
 cam_err_t get_wb_mode (int *wb_mode);
 gboolean cam_is_flash_used(void);
 
+int cam_get_focus_position(void);
+
 #endif
index 558f8d1..081b6ff 100644 (file)
@@ -3299,6 +3299,7 @@ gst_v4l2camsrc_read_exif (GstCameraSrc * camsrc,
   GstMFLDV4l2CamSrc *v4l2camsrc;
   cam_err_t err;
   int exposure = 0;
+  int focus_pos = 0;
   struct atomisp_makernote_info maker_note;
   unsigned char *buf;
 
@@ -3351,6 +3352,9 @@ gst_v4l2camsrc_read_exif (GstCameraSrc * camsrc,
 
   GST_DEBUG ("flash used  : %d", exif_info->flash);
 
+  focus_pos = cam_get_focus_position();
+  GST_DEBUG ("focus position : %d cm", focus_pos);
+
   return TRUE;
 
 /* ERRORS */
index 7fe6d32..bef98ca 100644 (file)
@@ -1,3 +1,6 @@
+* Tue Apr 09 2013 Marko Ollonen <marko.ollonen@ixonos.com> accepted/tizen_2.0/20130307.195130@4295e4b
+- request distance to object from 3A.
+
 * Tue Apr 09 2013 Marko Ollonen <marko.ollonen@ixonos.com> accepted/tizen_2.0/20130307.195130@fc8a6d8
 - Add support for auto focus range.
 - cleanup lsc & dvs code.