diff --git a/gst-libs/gst/interfaces/photography.c b/gst-libs/gst/interfaces/photography.c
index 8b470d6..c22e747 100644
--- a/gst-libs/gst/interfaces/photography.c
+++ b/gst-libs/gst/interfaces/photography.c
@@ -81,6 +81,7 @@ gst_photography_iface_base_init (GstPhotographyInterface * iface)
   iface->get_colour_tone_mode = NULL;
   iface->get_scene_mode = NULL;
   iface->get_flash_mode = NULL;
+  iface->get_capture_correction= NULL;
   iface->get_zoom = NULL;
   iface->get_flicker_mode = NULL;
   iface->get_focus_mode = NULL;
@@ -93,6 +94,7 @@ gst_photography_iface_base_init (GstPhotographyInterface * iface)
   iface->set_colour_tone_mode = NULL;
   iface->set_scene_mode = NULL;
   iface->set_flash_mode = NULL;
+  iface->set_capture_correction = NULL;
   iface->set_zoom = NULL;
   iface->set_flicker_mode = NULL;
   iface->set_focus_mode = NULL;
@@ -290,6 +292,26 @@ GST_PHOTOGRAPHY_FUNC_TEMPLATE (scene_mode, GstSceneMode);
 GST_PHOTOGRAPHY_FUNC_TEMPLATE (flash_mode, GstFlashMode);
 
 /**
+ * gst_photography_set_capture_correction:
+ * @photo: #GstPhotography interface of a #GstElement
+ * @capture_correction: #GstPhotographyCaptureCorrection to set
+ *
+ * Set the capture correction mode for the #GstElement
+ *
+ * Returns: %TRUE if setting the value succeeded, %FALSE otherwise
+ */
+/**
+ * gst_photography_get_capture_correction:
+ * @photo: #GstPhotography interface of a #GstElement
+ * @capture_correction: #GstPhotographyCaptureCorrection to get
+ *
+ * Get the capture correction mode for the #GstElement
+ *
+ * Returns: %TRUE if getting the value succeeded, %FALSE otherwise
+ */
+GST_PHOTOGRAPHY_FUNC_TEMPLATE (capture_correction, guint);
+
+/**
  * gst_photography_set_zoom:
  * @photo: #GstPhotography interface of a #GstElement
  * @zoom: zoom value to set
@@ -532,6 +554,13 @@ gst_photography_iface_class_init (gpointer g_class)
           GST_PHOTOGRAPHY_FOCUS_MODE_AUTO,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  /* Capture correction */
+  g_object_interface_install_property (g_class,
+      g_param_spec_uint (GST_PHOTOGRAPHY_PROP_CAPTURE_CORRECTION,
+          "Capture Correction property",
+          "Capture Correction defines the capture correction features in the camera ",
+          0, G_MAXUINT32, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   /* Capabilities */
   g_object_interface_install_property (g_class,
       g_param_spec_ulong (GST_PHOTOGRAPHY_PROP_CAPABILITIES,
diff --git a/gst-libs/gst/interfaces/photography.h b/gst-libs/gst/interfaces/photography.h
index e7e4f20..45e6df6 100644
--- a/gst-libs/gst/interfaces/photography.h
+++ b/gst-libs/gst/interfaces/photography.h
@@ -70,6 +70,7 @@ G_BEGIN_DECLS
 #define GST_PHOTOGRAPHY_PROP_FLICKER_MODE "flicker-mode"
 #define GST_PHOTOGRAPHY_PROP_FOCUS_MODE   "focus-mode"
 #define GST_PHOTOGRAPHY_PROP_ZOOM   "zoom"
+#define GST_PHOTOGRAPHY_PROP_CAPTURE_CORRECTION   "capture-correction"
 
 /**
  * GstPhotography:
@@ -78,6 +79,34 @@ G_BEGIN_DECLS
  */
 typedef struct _GstPhotography GstPhotography;
 
+/**
+ * GstPhotographyCaptureCorrection
+ * Some advanced capture settings in the ISP
+ * @ GST_PHOTOGRAPHY_CAPTURE_CORRECTION_GDC: Geometry Distortion Correction
+ * @ GST_PHOTOGRAPHY_CAPTURE_CORRECTION_RER: Red Eye Reduction
+ * @ GST_PHOTOGRAPHY_CAPTURE_CORRECTION_CAC: Chromatic Aberration Correction
+ * @ GST_PHOTOGRAPHY_CAPTURE_CORRECTION_EE: Edge Enhancement, increates the sharpness of the image
+ * @ GST_PHOTOGRAPHY_CAPTURE_CORRECTION_FCC: False Color Correction
+ * @ GST_PHOTOGRAPHY_CAPTURE_CORRECTION_DPC: Defect Pixel Correction
+ * @ GST_PHOTOGRAPHY_CAPTURE_CORRECTION_SC: Shading Correction
+ * @ GST_PHOTOGRAPHY_CAPTURE_CORRECTION_BLC: Black Level Compensation
+ * @ GST_PHOTOGRAPHY_CAPTURE_CORRECTION_IMAGE_STABLE: Still Image Stabilization
+ * @ GST_PHOTOGRAPHY_CAPTURE_CORRECTION_VIDEO_STABLE: Video Stabilization
+  */
+typedef enum
+{
+  GST_PHOTOGRAPHY_CAPTURE_CORRECTION_GDC = ( 1 << 0 ),
+  GST_PHOTOGRAPHY_CAPTURE_CORRECTION_RER = (1 << 1 ),
+  GST_PHOTOGRAPHY_CAPTURE_CORRECTION_CAC=  (1 << 2),
+  GST_PHOTOGRAPHY_CAPTURE_CORRECTION_EE = (1 << 3),
+  GST_PHOTOGRAPHY_CAPTURE_CORRECTION_FCC = (1 << 4),
+  GST_PHOTOGRAPHY_CAPTURE_CORRECTION_DPC = ( 1<< 5 ),
+  GST_PHOTOGRAPHY_CAPTURE_CORRECTION_SC= (1<< 6),
+  GST_PHOTOGRAPHY_CAPTURE_CORRECTION_BLC = (1 << 7),
+  GST_PHOTOGRAPHY_CAPTURE_CORRECTION_IMAGE_STABLE = (1 << 8),
+  GST_PHOTOGRAPHY_CAPTURE_CORRECTION_VIDEO_STABLE = (1 << 9)
+} GstPhotographyCaptureCorrection;
+
 typedef enum
 {
   GST_PHOTOGRAPHY_WB_MODE_AUTO = 0,
@@ -177,6 +206,7 @@ typedef struct
   GstColourToneMode tone_mode;
   GstSceneMode scene_mode;
   GstFlashMode flash_mode;
+  guint capture_correction;
   guint32 exposure;
   guint aperture;
   gfloat ev_compensation;
@@ -209,6 +239,7 @@ typedef void (*GstPhotoCapturePrepared) (gpointer data,
  * @get_colour_tone_mode: vmethod to get colour tone mode value
  * @get_scene_mode: vmethod to get scene mode value
  * @get_flash_mode: vmethod to get flash mode value
+ * @get_capture_correction: vmethod to get capture correction mode value
  * @get_zoom: vmethod to get zoom factor value
  * @set_ev_compensation: vmethod to set ev exposure compensation value
  * @set_iso_speed: vmethod to set iso speed (light sensitivity) value
@@ -218,6 +249,7 @@ typedef void (*GstPhotoCapturePrepared) (gpointer data,
  * @set_colour_tone_mode: vmethod to set colour tone mode value
  * @set_scene_mode: vmethod to set scene mode value
  * @set_flash_mode: vmethod to set flash mode value
+ * @set_capture_correction: vmethod to set capture correction mode value
  * @set_zoom: vmethod to set zoom factor value
  * @get_capabilities: vmethod to get supported capabilities of the interface
  * @prepare_for_capture: vmethod to tell the element to prepare for capturing
@@ -245,6 +277,8 @@ typedef struct _GstPhotographyInterface
       GstSceneMode * scene_mode);
     gboolean (*get_flash_mode) (GstPhotography * photo,
       GstFlashMode * flash_mode);
+    gboolean (*get_capture_correction) (GstPhotography * photo,
+      guint * capture_correction);
     gboolean (*get_zoom) (GstPhotography * photo, gfloat * zoom);
     gboolean (*get_flicker_mode) (GstPhotography * photo,
       GstFlickerReductionMode * flicker_mode);
@@ -263,6 +297,8 @@ typedef struct _GstPhotographyInterface
       GstSceneMode scene_mode);
     gboolean (*set_flash_mode) (GstPhotography * photo,
       GstFlashMode flash_mode);
+    gboolean (*set_capture_correction) (GstPhotography * photo,
+      guint capture_correction);
     gboolean (*set_zoom) (GstPhotography * photo, gfloat zoom);
     gboolean (*set_flicker_mode) (GstPhotography * photo,
       GstFlickerReductionMode flicker_mode);
@@ -299,6 +335,8 @@ gboolean gst_photography_get_scene_mode (GstPhotography * photo,
     GstSceneMode * scene_mode);
 gboolean gst_photography_get_flash_mode (GstPhotography * photo,
     GstFlashMode * flash_mode);
+gboolean gst_photography_get_capture_correction (GstPhotography * photo,
+    guint * capture_correction);
 gboolean gst_photography_get_zoom (GstPhotography * photo, gfloat * zoom);
 gboolean gst_photography_get_flicker_mode (GstPhotography * photo,
     GstFlickerReductionMode *mode);
@@ -319,6 +357,8 @@ gboolean gst_photography_set_scene_mode (GstPhotography * photo,
     GstSceneMode scene_mode);
 gboolean gst_photography_set_flash_mode (GstPhotography * photo,
     GstFlashMode flash_mode);
+gboolean gst_photography_set_capture_correction (GstPhotography * photo,
+    guint capture_correction);
 gboolean gst_photography_set_zoom (GstPhotography * photo, gfloat zoom);
 gboolean gst_photography_set_flicker_mode (GstPhotography * photo,
     GstFlickerReductionMode mode);
diff --git a/gst/camerabin/gstcamerabin-enum.h b/gst/camerabin/gstcamerabin-enum.h
index 747828a..1121c49 100644
--- a/gst/camerabin/gstcamerabin-enum.h
+++ b/gst/camerabin/gstcamerabin-enum.h
@@ -59,6 +59,7 @@ enum
   ARG_VIDEO_SOURCE_FILTER,
   ARG_IMAGE_CAPTURE_SUPPORTED_CAPS,
   ARG_VIEWFINDER_FILTER,
+  ARG_CAPTURE_CORRECTION,
   ARG_FLICKER_MODE,
   ARG_FOCUS_MODE,
   ARG_BLOCK_VIEWFINDER,
