PROP_AE,
PROP_AE_METERING_MODE,
PROP_AE_WINDOW,
+ PROP_AE_MODE,
PROP_AF,
PROP_AF_METERING_MODE,
PROP_AF_WINDOW,
}
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;
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,"
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;
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);
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;
#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;
} 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
gint focus_posi;
gboolean vflip,hflip;
GstCameraAEMeteringMode ae_metering_mode;
+ GstCameraAEMode ae_mode;
GstCameraAFMeteringMode af_metering_mode;
GstCameraWindow ae_window;
GstCameraWindow af_window;