rpicamsrc: add awb-gain-red and awb-gain-blue properties
authorJan Schmidt <jan@centricular.com>
Thu, 5 Mar 2015 14:09:16 +0000 (01:09 +1100)
committerTim-Philipp Müller <tim@centricular.com>
Fri, 10 Jul 2020 15:43:23 +0000 (16:43 +0100)
sys/rpicamsrc/gstrpicamsrc.c

index fcb5ae9..71100ed 100644 (file)
@@ -107,8 +107,8 @@ enum
   PROP_EXPOSURE_MODE,
   PROP_EXPOSURE_METERING_MODE,
   PROP_AWB_MODE,
-  PROP_AWB_GAIN_B,
-  PROP_AWB_GAIN_G,
+  PROP_AWB_GAIN_RED,
+  PROP_AWB_GAIN_BLUE,
   PROP_IMAGE_EFFECT,
   PROP_IMAGE_EFFECT_PARAMS,
   PROP_COLOUR_EFFECTS,
@@ -291,6 +291,14 @@ gst_rpi_cam_src_class_init (GstRpiCamSrcClass * klass)
           "White Balance mode", GST_RPI_CAM_TYPE_RPI_CAM_SRC_AWB_MODE,
           GST_RPI_CAM_SRC_AWB_MODE_AUTO,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_class, PROP_AWB_GAIN_RED,
+      g_param_spec_float ("awb-gain-red", "AWB Red Gain",
+          "Manual AWB Gain for red channel when awb-mode=OFF",
+          0, 8.0, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_class, PROP_AWB_GAIN_RED,
+      g_param_spec_float ("awb-gain-blue", "AWB Blue Gain",
+          "Manual AWB Gain for blue channel when awb-mode=OFF",
+          0, 8.0, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_IMAGE_EFFECT,
       g_param_spec_enum ("image-effect", "Image effect",
           "Visual FX to apply to the image",
@@ -448,6 +456,14 @@ gst_rpi_cam_src_set_property (GObject * object, guint prop_id,
     case PROP_AWB_MODE:
       src->capture_config.camera_parameters.awbMode = g_value_get_enum (value);
       break;
+    case PROP_AWB_GAIN_RED:
+      src->capture_config.camera_parameters.awb_gains_r =
+          g_value_get_float (value);
+      break;
+    case PROP_AWB_GAIN_BLUE:
+      src->capture_config.camera_parameters.awb_gains_b =
+          g_value_get_float (value);
+      break;
     case PROP_IMAGE_EFFECT:
       src->capture_config.camera_parameters.imageEffect =
           g_value_get_enum (value);
@@ -553,6 +569,14 @@ gst_rpi_cam_src_get_property (GObject * object, guint prop_id,
     case PROP_AWB_MODE:
       g_value_set_enum (value, src->capture_config.camera_parameters.awbMode);
       break;
+    case PROP_AWB_GAIN_RED:
+      g_value_set_float (value,
+          src->capture_config.camera_parameters.awb_gains_r);
+      break;
+    case PROP_AWB_GAIN_BLUE:
+      g_value_set_float (value,
+          src->capture_config.camera_parameters.awb_gains_b);
+      break;
     case PROP_IMAGE_EFFECT:
       g_value_set_enum (value,
           src->capture_config.camera_parameters.imageEffect);