From 37028010f1f82c827cfa4ac35a04850d80ea2fbc Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Fri, 6 Mar 2015 01:15:48 +1100 Subject: [PATCH] rpicamsrc: Implement drc property --- sys/rpicamsrc/gstrpicam_types.h | 8 ++++++++ sys/rpicamsrc/gstrpicamsrc.c | 14 ++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/sys/rpicamsrc/gstrpicam_types.h b/sys/rpicamsrc/gstrpicam_types.h index 7ebccb2dbf..acc47423d8 100644 --- a/sys/rpicamsrc/gstrpicam_types.h +++ b/sys/rpicamsrc/gstrpicam_types.h @@ -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; + diff --git a/sys/rpicamsrc/gstrpicamsrc.c b/sys/rpicamsrc/gstrpicamsrc.c index 71100ed0ab..d0e3049c5c 100644 --- a/sys/rpicamsrc/gstrpicamsrc.c +++ b/sys/rpicamsrc/gstrpicamsrc.c @@ -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;