rpicamsrc: Implement drc property

This commit is contained in:
Jan Schmidt 2015-03-06 01:15:48 +11:00 committed by Tim-Philipp Müller
parent 78b36bbb6b
commit 37028010f1
2 changed files with 22 additions and 0 deletions

View file

@ -69,3 +69,11 @@ typedef enum {
GST_RPI_CAM_SRC_FLICKERAVOID_50HZ = MMAL_PARAM_FLICKERAVOID_50HZ,
GST_RPI_CAM_SRC_FLICKERAVOID_60HZ = MMAL_PARAM_FLICKERAVOID_60HZ
} GstRpiCamSrcFlickerAvoidance;
typedef enum {
GST_RPI_CAM_SRC_DRC_LEVEL_OFF = MMAL_PARAMETER_DRC_STRENGTH_OFF,
GST_RPI_CAM_SRC_DRC_LEVEL_LOW = MMAL_PARAMETER_DRC_STRENGTH_LOW,
GST_RPI_CAM_SRC_DRC_LEVEL_MEDIUM = MMAL_PARAMETER_DRC_STRENGTH_MEDIUM,
GST_RPI_CAM_SRC_DRC_LEVEL_HIGH = MMAL_PARAMETER_DRC_STRENGTH_HIGH
} GstRpiCamSrcDRCLevel;

View file

@ -286,6 +286,12 @@ gst_rpi_cam_src_class_init (GstRpiCamSrcClass * klass)
GST_RPI_CAM_TYPE_RPI_CAM_SRC_EXPOSURE_METERING_MODE,
EXPOSURE_METERING_MODE_DEFAULT,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_DRC,
g_param_spec_enum ("drc", "DRC level",
"Dynamic Range Control level",
GST_RPI_CAM_TYPE_RPI_CAM_SRC_DRC_LEVEL,
GST_RPI_CAM_SRC_DRC_LEVEL_OFF,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_AWB_MODE,
g_param_spec_enum ("awb-mode", "Automatic White Balance Mode",
"White Balance mode", GST_RPI_CAM_TYPE_RPI_CAM_SRC_AWB_MODE,
@ -496,6 +502,11 @@ gst_rpi_cam_src_set_property (GObject * object, guint prop_id,
src->capture_config.camera_parameters.shutter_speed =
g_value_get_int (value);
break;
case PROP_DRC:
src->capture_config.camera_parameters.drc_level =
g_value_get_enum (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@ -611,6 +622,9 @@ gst_rpi_cam_src_get_property (GObject * object, guint prop_id,
g_value_set_int (value,
src->capture_config.camera_parameters.shutter_speed);
break;
case PROP_DRC:
g_value_set_enum (value, src->capture_config.camera_parameters.drc_level);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;