From: Jussi Saavalainen Date: Thu, 17 Jan 2013 15:48:44 +0000 (+0200) Subject: Add ISP ae_mode setting as Gst property X-Git-Tag: 2.1b_release~6^2~21 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=450e9545911763f215b8a0ff95cd251b0deb8da4;p=adaptation%2Fintel_mfld%2Fgst-plugins-atomisp.git Add ISP ae_mode setting as Gst property Change-Id: I0e312e1cfb8cbba7a58870932ad93836ccdacbfc --- diff --git a/gst/mfldv4l2cam/gstv4l2camsrc.c b/gst/mfldv4l2cam/gstv4l2camsrc.c index 679804c..dd346bd 100644 --- a/gst/mfldv4l2cam/gstv4l2camsrc.c +++ b/gst/mfldv4l2cam/gstv4l2camsrc.c @@ -104,6 +104,7 @@ typedef enum PROP_AE, PROP_AE_METERING_MODE, PROP_AE_WINDOW, + PROP_AE_MODE, PROP_AF, PROP_AF_METERING_MODE, PROP_AF_WINDOW, @@ -189,6 +190,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; @@ -800,6 +821,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," @@ -1098,6 +1126,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; @@ -1269,6 +1298,12 @@ gst_v4l2camsrc_set_property (GObject * object, 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); @@ -1530,6 +1565,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; diff --git a/gst/mfldv4l2cam/gstv4l2camsrc.h b/gst/mfldv4l2cam/gstv4l2camsrc.h index 596401c..61c978b 100644 --- a/gst/mfldv4l2cam/gstv4l2camsrc.h +++ b/gst/mfldv4l2cam/gstv4l2camsrc.h @@ -50,6 +50,7 @@ G_BEGIN_DECLS #define GST_TYPE_CAMERA_INPUT_SENSOR (gst_camera_input_sensor_get_type()) #define GST_TYPE_CAMERA_AE_METERING_MODE (gst_camera_ae_metering_mode_get_type()) +#define GST_TYPE_CAMERA_AE_MODE (gst_camera_ae_mode_get_type()) #define GST_TYPE_CAMERA_AF_METERING_MODE (gst_camera_af_metering_mode_get_type()) typedef struct _GstMFLDV4l2CamSrc GstMFLDV4l2CamSrc; @@ -89,6 +90,22 @@ typedef enum { } GstCameraAEMeteringMode; /** + * GstCameraAEMode: + * @GST_CAMERA_AE_MODE_AUTO: Auto Exposure automatic mode + * @GST_CAMERA_AE_MODE_MANUAL: Auto Exposure manual mode + * @GST_CAMERA_AE_MODE_SHUTTER_PRIORITY: Auto Exposure shutter priority mode + * @GST_CAMERA_AE_MODE_APERTURE_PRIORITY: Auto Exposure aperture priority mode + * + * Camera element auto exposure mode + */ +typedef enum { + GST_CAMERA_AE_MODE_AUTO, + GST_CAMERA_AE_MODE_MANUAL, + GST_CAMERA_AE_MODE_SHUTTER_PRIORITY, + GST_CAMERA_AE_MODE_APERTURE_PRIORITY +} GstCameraAEMode; + +/** * GstCameraAFMeteringMode: * @GST_CAMERA_AF_METERING_AUTO: Auto Focus auto metering mode * @GST_CAMERA_AF_METERING_SPOT: Auto Focus spot metering mode @@ -258,6 +275,7 @@ struct _GstMFLDV4l2CamSrc { gint focus_posi; gboolean vflip,hflip; GstCameraAEMeteringMode ae_metering_mode; + GstCameraAEMode ae_mode; GstCameraAFMeteringMode af_metering_mode; GstCameraWindow ae_window; GstCameraWindow af_window; diff --git a/packaging/mfldv4l2camsrc.changes b/packaging/mfldv4l2camsrc.changes index 5ede68c..1a972e0 100644 --- a/packaging/mfldv4l2camsrc.changes +++ b/packaging/mfldv4l2camsrc.changes @@ -1,3 +1,7 @@ +* Thu Jan 17 2013 Jussi Saavalainen submit/trunk/20130117.150127@471e12c +- Add ISP ae_mode setting as Gst property. TZSP-4682 +- Add exposure mode initialisation. + * Thu Jan 17 2013 Marko Ollonen accepted/trunk/20130114.185021@5615cfc - colorspace: fourcc typo, TZSP-4757.