rpicamsrc: Implement drc property
authorJan Schmidt <jan@centricular.com>
Thu, 5 Mar 2015 14:15:48 +0000 (01:15 +1100)
committerTim-Philipp Müller <tim@centricular.com>
Fri, 10 Jul 2020 15:43:25 +0000 (16:43 +0100)
sys/rpicamsrc/gstrpicam_types.h
sys/rpicamsrc/gstrpicamsrc.c

index 7ebccb2..acc4742 100644 (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;
+
index 71100ed..d0e3049 100644 (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;