rpicamsrc: Add camera-number property
authorJan Schmidt <jan@centricular.com>
Thu, 5 Mar 2015 13:52:37 +0000 (00:52 +1100)
committerTim-Philipp Müller <tim@centricular.com>
Fri, 10 Jul 2020 15:43:22 +0000 (16:43 +0100)
sys/rpicamsrc/gstrpicamsrc.c

index dd1671c..fcb5ae9 100644 (file)
@@ -90,6 +90,7 @@ enum
 enum
 {
   PROP_0,
+  PROP_CAMERA_NUMBER,
   PROP_BITRATE,
   PROP_KEYFRAME_INTERVAL,
   PROP_PREVIEW,
@@ -127,6 +128,8 @@ enum
   PROP_ANNOTATION_STRING
 };
 
+#define CAMERA_DEFAULT 0
+
 #define BITRATE_DEFAULT 17000000        /* 17Mbit/s default for 1080p */
 #define BITRATE_HIGHEST 25000000
 
@@ -215,6 +218,11 @@ gst_rpi_cam_src_class_init (GstRpiCamSrcClass * klass)
   gobject_class->set_property = gst_rpi_cam_src_set_property;
   gobject_class->get_property = gst_rpi_cam_src_get_property;
 
+  g_object_class_install_property (gobject_class, PROP_CAMERA_NUMBER,
+      g_param_spec_int ("camera-number", "Camera Number",
+          "Which camera to use on a multi-camera system - 0 or 1", 0,
+          1, CAMERA_DEFAULT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   g_object_class_install_property (gobject_class, PROP_BITRATE,
       g_param_spec_int ("bitrate", "Bitrate",
           "Bitrate for encoding. 0 for VBR using quantisation-parameter", 0,
@@ -378,6 +386,9 @@ gst_rpi_cam_src_set_property (GObject * object, guint prop_id,
   GstRpiCamSrc *src = GST_RPICAMSRC (object);
 
   switch (prop_id) {
+    case PROP_CAMERA_NUMBER:
+      src->capture_config.cameraNum = g_value_get_int (value);
+      break;
     case PROP_BITRATE:
       src->capture_config.bitrate = g_value_get_int (value);
       break;
@@ -482,6 +493,9 @@ gst_rpi_cam_src_get_property (GObject * object, guint prop_id,
   GstRpiCamSrc *src = GST_RPICAMSRC (object);
 
   switch (prop_id) {
+    case PROP_CAMERA_NUMBER:
+      g_value_set_int (value, src->capture_config.cameraNum);
+      break;
     case PROP_BITRATE:
       g_value_set_int (value, src->capture_config.bitrate);
       break;