unload 3a in dispose.
[adaptation/intel_mfld/gst-plugins-atomisp.git] / gst / mfldv4l2cam / gstv4l2camsrc.c
index 1ce554b..b189d92 100644 (file)
 #include "gstv4l2camvidorient.h"
 #include <mfld_cam.h>
 
-#include "exifmakernote_main.h"
-#include "exifmakernote_util.h"
-
 #define MFLD_ADVCI_PATH "/usr/lib/"
-#define MFLD_V4L2CAMSRC_VERSION "5e436697caea9d9d47d31601c4c9b9bf14559d7c"
+#define MFLD_V4L2CAMSRC_VERSION "85de990a519ae021f0bf4ec89c0e352ec76f6965"
 #define FOCUS_POSITION_MIN     0
 #define FOCUS_POSITION_MAX     512
 
@@ -72,6 +69,9 @@ static void gst_v4l2camsrc_get_property (GObject * object,
 static gboolean gst_v4l2camsrc_unlock (GstCameraSrc * src);
 static gboolean gst_v4l2camsrc_unlock_stop (GstCameraSrc * src);
 static gboolean gst_v4l2camsrc_set_zoom (GstCameraSrc * camsrc, gfloat zoom);
+static gboolean gst_v4l2camsrc_set_ae_mode (GstCameraSrc * camsrc, int mode);
+static gboolean gst_v4l2camsrc_get_ae_mode (GstCameraSrc * camsrc, int *mode);
+
 static gboolean gst_v4l2camsrc_iface_supported (GstImplementsInterface * iface,
     GType iface_type);
 static gboolean gst_v4l2camsrc_get_makernote (GstCameraSrc * camsrc, unsigned char *buf, unsigned size);
@@ -103,6 +103,7 @@ typedef enum
   PROP_AE,
   PROP_AE_METERING_MODE,
   PROP_AE_WINDOW,
+  PROP_AE_MODE,
   PROP_AF,
   PROP_AF_METERING_MODE,
   PROP_AF_WINDOW,
@@ -127,6 +128,8 @@ typedef enum
   PROP_DUMP_RAW,
   PROP_DUMP_IMAGE,
   PROP_DEBUG_FLAGS,
+  PROP_DISABLE_LOW_RES_CROP,
+  PROP_DRAW_CORNER_MARKERS,
 } GstV4L2CamSrcProperties;
 
 
@@ -140,6 +143,15 @@ typedef enum
 #define DEFAULT_DEBUG_FLAGS    0
 #define C_FLAGS(v) ((guint) v)
 
+
+static const char* surface_string =
+    "video/x-vaapi-sharing, "
+    "type = vaapi, "
+    "width  = (int) [ 1, MAX ], "
+    "height = (int) [ 1, MAX ], "
+    "framerate = (fraction) [ 0, MAX ]";
+
+
 GType
 gst_camera_input_sensor_get_type (void)
 {
@@ -179,6 +191,26 @@ gst_camera_ae_metering_mode_get_type(void)
 }
 
 GType
+gst_camera_ae_mode_get_type(void)
+{
+  static GType gst_camera_ae_mode_type = 0;
+  static GEnumValue gst_camera_ae_mode[] = {
+    {GST_CAMERA_AE_MODE_AUTO, "AE auto", "auto"},
+    {GST_CAMERA_AE_MODE_MANUAL, "AE manual", "manual"},
+    {GST_CAMERA_AE_MODE_SHUTTER_PRIORITY, "AE shutter priority", "shutter"},
+    {GST_CAMERA_AE_MODE_APERTURE_PRIORITY, "AE aperture priority", "aperture"},
+    {0, NULL, NULL},
+  };
+
+  if (G_UNLIKELY (!gst_camera_ae_mode_type)) {
+    gst_camera_ae_mode_type=
+        g_enum_register_static ("GstCameraAEMode",
+        gst_camera_ae_mode);
+  }
+  return  gst_camera_ae_mode_type;
+}
+
+GType
 gst_camera_af_metering_mode_get_type(void)
 {
   static GType gst_camera_af_metering_mode_type = 0;
@@ -587,9 +619,13 @@ gst_v4l2camsrc_get_caps (GstCameraSrc * camsrc)
     }
   }
 
+  GstStructure * structure = gst_structure_from_string(surface_string, NULL);
+  gst_caps_append_structure (ret, structure);
+
   v4l2camsrc->probed_caps = gst_caps_ref (ret);
 
-  GST_INFO_OBJECT (v4l2camsrc, "probed caps: %" GST_PTR_FORMAT, ret);
+  GST_INFO_OBJECT(v4l2camsrc, "use GST_DEBUG >= 5 for probed caps");
+  GST_LOG_OBJECT (v4l2camsrc, "probed caps: %" GST_PTR_FORMAT, ret);
 
   return ret;
 }
@@ -675,6 +711,8 @@ gst_v4l2camsrc_get_all_caps (void)
         gst_caps_append_structure (caps, structure);
       }
     }
+    structure = gst_structure_from_string(surface_string, NULL);
+    gst_caps_append_structure (caps, structure);
   }
 
   return gst_caps_ref (caps);
@@ -714,7 +752,14 @@ gboolean gst_v4l2camsrc_write_settings (GstCameraSrc * camsrc,
     GstPhotoSettings * photoconf, gboolean scene_override);
 gboolean
 gst_v4l2camsrc_set_flash_mode (GstCameraSrc *camsrc, int value);
+gboolean
+gst_v4l2camsrc_read_exif (GstCameraSrc *camsrc, 
+    GstCameraControlExifInfo *exif_info);
+gboolean
+gst_v4l2camsrc_set_strobe_state (GstCameraSrc *camsrc, gboolean state);
 
+gboolean 
+gst_v4l2camsrc_set_AeAafwindow (GstCameraSrc * camsrc, GstCameraSrc3a_window window);
 
 /*
  * gst_v4l2camsrc_class_init:
@@ -780,6 +825,13 @@ gst_v4l2camsrc_class_init (GstMFLDV4l2CamSrcClass * klass)
           GST_CAMERA_AE_METERING_AUTO,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  g_object_class_install_property (gobject_class, PROP_AE_MODE,
+      g_param_spec_enum ("ae-mode", "AE Mode",
+          "Select AE Mode",
+          GST_TYPE_CAMERA_AE_MODE,
+          GST_CAMERA_AE_MODE_AUTO,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
  g_object_class_install_property (gobject_class, PROP_AE_WINDOW,
       g_param_spec_string("ae-window", "AE Window",
           "Set AE Window Coordinates in format: x_left=value,x_right=value,"
@@ -919,6 +971,18 @@ gst_v4l2camsrc_class_init (GstMFLDV4l2CamSrcClass * klass)
           "Horisontal flip", FALSE,
           G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE));
 
+  g_object_class_install_property (gobject_class,
+      PROP_DISABLE_LOW_RES_CROP,
+      g_param_spec_boolean ("disable-low-res-crop", "disable low resolution crop",
+          "disable software crop on unsupported low resolution frame size", FALSE,
+          G_PARAM_READWRITE));
+
+  g_object_class_install_property (gobject_class,
+      PROP_DRAW_CORNER_MARKERS,
+      g_param_spec_boolean ("draw-corner-markers", "draw markers in frame corners",
+          "draw markers in frame corners", FALSE,
+          G_PARAM_READWRITE));
+
   camera_class->is_open = GST_DEBUG_FUNCPTR (gst_v4l2camsrc_is_open);
   camera_class->open = GST_DEBUG_FUNCPTR (gst_v4l2camsrc_open);
   camera_class->close = GST_DEBUG_FUNCPTR (gst_v4l2camsrc_close);
@@ -951,12 +1015,18 @@ gst_v4l2camsrc_class_init (GstMFLDV4l2CamSrcClass * klass)
   camera_class->get_capabilities =
       GST_DEBUG_FUNCPTR (gst_v4l2camsrc_get_capabilities);
   camera_class->set_zoom = GST_DEBUG_FUNCPTR (gst_v4l2camsrc_set_zoom);
+  camera_class->set_AeAafwindow = GST_DEBUG_FUNCPTR (gst_v4l2camsrc_set_AeAafwindow);
+  camera_class->set_ae_mode = GST_DEBUG_FUNCPTR (gst_v4l2camsrc_set_ae_mode);
+  camera_class->get_ae_mode = GST_DEBUG_FUNCPTR (gst_v4l2camsrc_get_ae_mode);
+
   camera_class->get_makernote = GST_DEBUG_FUNCPTR (gst_v4l2camsrc_get_makernote);
   camera_class->makernote_init = GST_DEBUG_FUNCPTR(gst_v4l2camsrc_makernote_init);
   camera_class->makernote_deal = GST_DEBUG_FUNCPTR(gst_v4l2camsrc_makernote_deal);
   camera_class->makernote_uninit = GST_DEBUG_FUNCPTR(gst_v4l2camsrc_makernote_uninit);
   camera_class->set_flash_mode = GST_DEBUG_FUNCPTR(gst_v4l2camsrc_set_flash_mode);
+  camera_class->read_exif = GST_DEBUG_FUNCPTR(gst_v4l2camsrc_read_exif);
 
+  camera_class->set_strobe_state = GST_DEBUG_FUNCPTR(gst_v4l2camsrc_set_strobe_state);
 
 //camera_class->fill_image_tags = GST_DEBUG_FUNCPTR(gst_v4l2camsrc_fill_image_tags);
 //camera_class->get_preview_image = GST_DEBUG_FUNCPTR(gst_v4l2camsrc_get_preview_image);
@@ -973,17 +1043,12 @@ gst_v4l2camsrc_mfldadvci_wrapper_load (GstMFLDV4l2CamSrc * v4l2camsrc)
   GstV4l2MFLDAdvCI *mfldadvci;
 
   mfldadvci = g_new0 (GstV4l2MFLDAdvCI, 1);
-  gint advci_version;
-
-  int (*init_function) (GstV4l2MFLDAdvCI * mfldadvci);
-
-  wrapper_default_functions_init (mfldadvci);
+  wrapper_default_link_functions_init(mfldadvci);
 
+#ifdef USE_DYNAMIC_3A
   if (g_module_supported ()) {
     gchar *module_file;
-
     module_file = g_module_build_path (MFLD_ADVCI_PATH, "libmfldadvci.so.0");
-
     GST_DEBUG_OBJECT (v4l2camsrc, "Loading %s", module_file);
 
     v4l2camsrc->module = g_module_open (module_file, G_MODULE_BIND_LOCAL);
@@ -994,44 +1059,12 @@ gst_v4l2camsrc_mfldadvci_wrapper_load (GstMFLDV4l2CamSrc * v4l2camsrc)
       v4l2camsrc->module = g_module_open (module_file, G_MODULE_BIND_LOCAL);
       GST_DEBUG_OBJECT (v4l2camsrc, "Loading %s", module_file);
     }
-
-    printf("Camera Source Interface version is %d\n", LIBMFLDADVCI_VERSION);
-
+    GST_DEBUG_OBJECT(v4l2camsrc, "Camera Source Interface version is %d\n", LIBMFLDADVCI_VERSION);
     if (v4l2camsrc->module) {
-      gboolean ret;
-
-      ret = g_module_symbol (v4l2camsrc->module, "libmfldadvci_init",
-          (gpointer) & init_function);
-
-      if (ret) {
-       advci_version = init_function (mfldadvci);
-        if (advci_version < 0) {
-          GST_WARNING_OBJECT (v4l2camsrc, "Failed to init libmfldadvci symbol");
-          g_module_close (v4l2camsrc->module);
-          v4l2camsrc->module = NULL;
-        } else {
-         if (advci_version != LIBMFLDADVCI_VERSION) {
-          GST_WARNING_OBJECT (v4l2camsrc,
-                    "libmfldadvci version mismatch with camera source,"
-                    "the 3A is disabled, please update your libmfldadvci to %d",
-                    LIBMFLDADVCI_VERSION);
-          g_module_close (v4l2camsrc->module);
-          v4l2camsrc->module = NULL;
-         wrapper_default_functions_init (mfldadvci);
-         }
-       }
-      } else {
-        GST_WARNING_OBJECT (v4l2camsrc, "libmfldadvci: Init symbol not found");
-        g_module_close (v4l2camsrc->module);
-        v4l2camsrc->module = NULL;
-      }
-    } else {
-      GST_DEBUG_OBJECT (v4l2camsrc,
-          "libmfldadvci: Opening the module failed: %s", g_module_error ());
+      lib_3a_link_functions_init(mfldadvci, v4l2camsrc->module);
     }
-    g_free (module_file);
-    GST_DEBUG_OBJECT (v4l2camsrc, "libmfldadvci:  initialized");
   }
+#endif /* USE_DYNAMIC_3A */
 
   return mfldadvci;
 }
@@ -1045,21 +1078,12 @@ gst_v4l2camsrc_mfldadvci_wrapper_unload (GstMFLDV4l2CamSrc * v4l2camsrc)
 {
   GstV4l2MFLDAdvCI *mfldadvci = v4l2camsrc->mfldadvci;
 
-  if (v4l2camsrc->module) {
-    void (*deinit_function) (GstV4l2MFLDAdvCI * mfldadvci);
-    gboolean ret;
-
-    GST_DEBUG_OBJECT (v4l2camsrc, "Unloading libmfldadvci");
+  GST_DEBUG ("mfldadvci unload");
+  g_module_close (v4l2camsrc->module);
+  v4l2camsrc->module = NULL;
 
-    ret = g_module_symbol (v4l2camsrc->module, "libmfdladvci_deinit",
-        (gpointer) & deinit_function);
-    if (ret) {
-      deinit_function (mfldadvci);
-    }
-    g_module_close (v4l2camsrc->module);
-    v4l2camsrc->module = NULL;
-  }
   g_free (mfldadvci);
+
 }
 
 
@@ -1096,9 +1120,9 @@ gst_v4l2camsrc_init (GstMFLDV4l2CamSrc * v4l2camsrc,
   v4l2camsrc->sc_enabled = TRUE;
   v4l2camsrc->cc_updated = FALSE;
   v4l2camsrc->gamma_updated = FALSE;
-  v4l2camsrc->ae_enabled = FALSE;
-  v4l2camsrc->af_enabled = FALSE;
-  v4l2camsrc->awb_enabled = FALSE;
+  v4l2camsrc->ae_enabled = TRUE;
+  v4l2camsrc->af_enabled = TRUE;
+  v4l2camsrc->awb_enabled = TRUE;
   v4l2camsrc->still_af = FALSE;
   v4l2camsrc->bayer_downscaling = FALSE;
   v4l2camsrc->tone.gamma = 2.2;
@@ -1113,6 +1137,8 @@ gst_v4l2camsrc_init (GstMFLDV4l2CamSrc * v4l2camsrc,
   v4l2camsrc->dump_image = FALSE;
   v4l2camsrc->raw_output_size = 0;
   v4l2camsrc->debug_flags = DEFAULT_DEBUG_FLAGS;
+  v4l2camsrc->disable_low_res_crop = FALSE;
+  v4l2camsrc->draw_corner_markers = FALSE;
 
   v4l2camsrc->device_mutex = g_mutex_new ();
 
@@ -1120,6 +1146,7 @@ gst_v4l2camsrc_init (GstMFLDV4l2CamSrc * v4l2camsrc,
 
   v4l2camsrc->input_sensor = GST_CAMERA_INPUT_SENSOR_PRIMARY;
   v4l2camsrc->ae_metering_mode = GST_CAMERA_AE_METERING_AUTO;
+  v4l2camsrc->ae_mode = GST_CAMERA_AE_MODE_AUTO;
   v4l2camsrc->af_metering_mode = GST_CAMERA_AF_METERING_AUTO;
 
   v4l2camsrc->ae_window.x_left = 0;
@@ -1167,6 +1194,7 @@ gst_v4l2camsrc_dispose (GObject * object)
 
   G_OBJECT_CLASS (parent_class)->dispose (object);
   libmfld_cam_dispose ();
+  gst_v4l2camsrc_mfldadvci_wrapper_unload(v4l2camsrc);
 }
 
 
@@ -1218,7 +1246,6 @@ gst_v4l2camsrc_set_property (GObject * object,
       GstStructure *ae_window_param = NULL;
       char * ctmp = NULL;
       gboolean parsed = TRUE;
-      ci_adv_Err r;
 
       ctmp = g_malloc0 (60);
       if (ctmp == NULL)
@@ -1267,26 +1294,18 @@ gst_v4l2camsrc_set_property (GObject * object,
                      "y_bottom:%d, y_top:%d, weight:%d.\n",
                      v4l2camsrc->ae_window.x_left,v4l2camsrc->ae_window.x_right,
                      v4l2camsrc->ae_window.y_bottom, v4l2camsrc->ae_window.y_top,
-                     v4l2camsrc->ae_window.y_top);
+                     v4l2camsrc->ae_window.weight);
 
 
       if (v4l2camsrc->ae_metering_mode != GST_CAMERA_AE_METERING_SPOT)
       {
                GST_DEBUG_OBJECT(v4l2camsrc,"wrong ae metering mode. set it to spot mode automaticly.\n");
                v4l2camsrc->ae_metering_mode = GST_CAMERA_AE_METERING_SPOT;
-               ci_adv_Err r = v4l2camsrc->mfldadvci->AeSetMeteringMode
-                       ( (ci_adv_AeMeteringMode) v4l2camsrc->ae_metering_mode);
-       if(r != ci_adv_Success)
-       {
-               GST_DEBUG_OBJECT(v4l2camsrc,"set metering mode failed.\n");
-       }
+               v4l2camsrc->mfldadvci->AeSetMeteringMode
+                       ( (advci_ae_metering_mode) v4l2camsrc->ae_metering_mode);
 
       }
-      r = v4l2camsrc->mfldadvci->AeSetWindow ((ci_adv_Window *) (&(v4l2camsrc->ae_window)));
-      if(r != ci_adv_Success)
-      {
-               GST_DEBUG_OBJECT(v4l2camsrc,"ae set window failed due to 3a lib error.\n");
-      }
+      v4l2camsrc->mfldadvci->AeSetWindow ((advci_window *) (&(v4l2camsrc->ae_window)));
 
       gst_structure_free (ae_window_param);
       g_free (ctmp);
@@ -1296,13 +1315,19 @@ gst_v4l2camsrc_set_property (GObject * object,
     case PROP_AE_METERING_MODE:
     {
       v4l2camsrc->ae_metering_mode = g_value_get_enum (value);
-      v4l2camsrc->mfldadvci->AeSetMeteringMode((ci_adv_AeMeteringMode)v4l2camsrc->ae_metering_mode);
+      v4l2camsrc->mfldadvci->AeSetMeteringMode((advci_ae_metering_mode)v4l2camsrc->ae_metering_mode);
+      break;
+    }
+    case PROP_AE_MODE:
+    {
+      v4l2camsrc->ae_mode = g_value_get_enum (value);
+      v4l2camsrc->mfldadvci->AeSetMode((advci_ae_mode)v4l2camsrc->ae_mode);
       break;
     }
     case PROP_AF_METERING_MODE:
     {
       v4l2camsrc->af_metering_mode = g_value_get_enum (value);
-      v4l2camsrc->mfldadvci->AfSetMeteringMode((ci_adv_AfMeteringMode)v4l2camsrc->af_metering_mode);
+      v4l2camsrc->mfldadvci->AfSetMeteringMode((advci_af_metering_mode)v4l2camsrc->af_metering_mode);
       break;
     }
     case PROP_AF_WINDOW:
@@ -1310,7 +1335,6 @@ gst_v4l2camsrc_set_property (GObject * object,
       GstStructure *af_window_param = NULL;
       char * ctmp = NULL;
       gboolean parsed = TRUE;
-      ci_adv_Err r;
 
       ctmp = g_malloc0 (60);
       if (ctmp == NULL)
@@ -1362,11 +1386,7 @@ gst_v4l2camsrc_set_property (GObject * object,
                      v4l2camsrc->af_window.y_top);
 
 
-      r = v4l2camsrc->mfldadvci->AfSetWindow ((ci_adv_Window *) (&(v4l2camsrc->af_window)));
-      if(r != ci_adv_Success)
-      {
-               GST_DEBUG_OBJECT(v4l2camsrc,"af set window failed due to 3a lib error.\n");
-      }
+      v4l2camsrc->mfldadvci->AfSetWindows (1, (advci_window *) (&(v4l2camsrc->af_window)));
 
       gst_structure_free (af_window_param);
       g_free (ctmp);
@@ -1503,6 +1523,12 @@ gst_v4l2camsrc_set_property (GObject * object,
     case PROP_DEBUG_FLAGS:
       v4l2camsrc->debug_flags = g_value_get_flags (value);
       break;
+    case PROP_DISABLE_LOW_RES_CROP:
+      v4l2camsrc->disable_low_res_crop = g_value_get_boolean (value);
+      break;
+    case PROP_DRAW_CORNER_MARKERS:
+      v4l2camsrc->draw_corner_markers = g_value_get_boolean (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1563,6 +1589,9 @@ gst_v4l2camsrc_get_property (GObject * object,
     case PROP_AE_METERING_MODE:
       g_value_set_enum (value, v4l2camsrc->ae_metering_mode);
       break;
+    case PROP_AE_MODE:
+      g_value_set_enum (value, v4l2camsrc->ae_mode);
+      break;
     case PROP_AE_WINDOW:
     {
       GstStructure *tmp = NULL;
@@ -1676,6 +1705,12 @@ gst_v4l2camsrc_get_property (GObject * object,
     case PROP_DEBUG_FLAGS:
       g_value_set_flags (value, v4l2camsrc->debug_flags);
       break;
+    case PROP_DISABLE_LOW_RES_CROP:
+      g_value_set_boolean (value, v4l2camsrc->disable_low_res_crop);
+      break;
+    case PROP_DRAW_CORNER_MARKERS:
+      g_value_set_boolean (value, v4l2camsrc->draw_corner_markers);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1735,6 +1770,39 @@ gst_v4l2camsrc_set_zoom (GstCameraSrc * camsrc, gfloat zoom)
 
   return ret;
 }
+static gboolean
+gst_v4l2camsrc_set_ae_mode(GstCameraSrc * camsrc, int mode)
+{
+  GstMFLDV4l2CamSrc *v4l2camsrc;
+  gboolean ret = TRUE;
+
+  v4l2camsrc = GST_V4L2CAMSRC (camsrc);
+
+  if (v4l2camsrc->is_active) {
+    g_mutex_lock (v4l2camsrc->device_mutex);
+    v4l2camsrc->ae_metering_mode = *(GstCameraAEMeteringMode *)&mode;
+    v4l2camsrc->mfldadvci->AeSetMeteringMode((advci_ae_metering_mode)v4l2camsrc->ae_metering_mode);
+    g_mutex_unlock (v4l2camsrc->device_mutex);
+  }
+
+  return ret;
+}
+static gboolean
+gst_v4l2camsrc_get_ae_mode(GstCameraSrc * camsrc, int *mode)
+{
+  GstMFLDV4l2CamSrc *v4l2camsrc;
+  gboolean ret = TRUE;
+
+  v4l2camsrc = GST_V4L2CAMSRC (camsrc);
+
+  if (v4l2camsrc->is_active) {
+    g_mutex_lock (v4l2camsrc->device_mutex);
+    *mode = v4l2camsrc->ae_metering_mode;
+    g_mutex_unlock (v4l2camsrc->device_mutex);
+  }
+
+  return ret;
+}
 
 static gboolean
 gst_v4l2camsrc_get_makernote (GstCameraSrc * camsrc, unsigned char *buf, unsigned size)
@@ -1763,19 +1831,14 @@ static gboolean gst_v4l2camsrc_makernote_init(GstCameraSrc * camsrc,
                                                       int *handle)
 {
   GstMFLDV4l2CamSrc *v4l2camsrc;
-  ENUM_MAKERNOTE_RET_VAL ret;
 
   v4l2camsrc = GST_V4L2CAMSRC (camsrc);
   GST_DEBUG_OBJECT (v4l2camsrc, "%s, !!!!!!line:%d\n", __func__, __LINE__);
 
   num_afwindows = num_grid = 1;
   num_faces = num_eyes = 0;
-  ret = makernote_nokia_init(num_afwindows, num_faces,
-                              num_eyes, num_grid, handle, buf_size);
-  if(ENUM_MAKERNOTE_RET_TRUE != ret)
-    return FALSE;
+  return FALSE;
 
-  return TRUE;
 }
 
 static gboolean gst_v4l2camsrc_makernote_deal(GstCameraSrc * camsrc,
@@ -1785,19 +1848,12 @@ static gboolean gst_v4l2camsrc_makernote_deal(GstCameraSrc * camsrc,
                                                       int handle)
 {
   GstMFLDV4l2CamSrc *v4l2camsrc;
-  ENUM_MAKERNOTE_RET_VAL ret;
 
   v4l2camsrc = GST_V4L2CAMSRC (camsrc);
   GST_DEBUG_OBJECT (v4l2camsrc, "%s, !!!!!!line:%d\n", __func__, __LINE__);
 
-  makernote_util_create(handle, num_afwindows, num_grid, camsrc); // af windows is one, grid for awb is one
-
-  ret = makernote_nokia_copy_buffer(handle, GST_BUFFER_DATA(pmakerbuf),
-                                      GST_BUFFER_SIZE(pmakerbuf));
-  if(ENUM_MAKERNOTE_RET_TRUE != ret)
-    return FALSE;
+  return FALSE;
 
-  return TRUE;
 }
 
 static gboolean gst_v4l2camsrc_makernote_uninit(GstCameraSrc * camsrc,
@@ -1808,10 +1864,7 @@ static gboolean gst_v4l2camsrc_makernote_uninit(GstCameraSrc * camsrc,
   v4l2camsrc = GST_V4L2CAMSRC (camsrc);
   GST_DEBUG_OBJECT (v4l2camsrc, "%s, !!!!!!line:%d\n", __func__, __LINE__);
 
-  if(makernote_nokia_uninit(handle) != ENUM_MAKERNOTE_RET_TRUE)
-    return FALSE;
-
-  return TRUE;
+  return FALSE;
 }
 
 
@@ -1824,10 +1877,10 @@ static gboolean gst_v4l2camsrc_makernote_uninit(GstCameraSrc * camsrc,
 static gboolean
 plugin_init (GstPlugin * plugin)
 {
-  GST_DEBUG_CATEGORY_INIT (gst_v4l2camsrc_debug, "mfldv4l2camsrc", 0,
+  GST_DEBUG_CATEGORY_INIT (gst_v4l2camsrc_debug, "camerasrc", 0,
       "Medfield V4L2 camera source");
 
-  return gst_element_register (plugin, "mfldv4l2camsrc",
+  return gst_element_register (plugin, "camerasrc",
       GST_RANK_NONE, GST_TYPE_V4L2CAMSRC);
 }