Add support fot configuring capture-width and capture-height
authorMarko Ollonen <marko.ollonen@ixonos.com>
Thu, 20 Sep 2012 12:25:44 +0000 (15:25 +0300)
committerMarko Ollonen <marko.ollonen@ixonos.com>
Thu, 20 Sep 2012 12:50:53 +0000 (15:50 +0300)
User can use these properties to prepare source to take image.

Change-Id: Id1f54d1f0d4664159a6ab4e52f50c46113f3b2b9

gst-libs/gst/camera/gstmfldcameraphotoiface.h
gst-libs/gst/camera/gstmfldcamerasrc.c
packaging/mfldv4l2camsrc.changes

index f3583cb..9d0c1b0 100644 (file)
@@ -53,7 +53,9 @@ typedef enum {
   PROP_IMAGE_CAPTURE_CAPS,
   PROP_IMAGE_PREVIEW_CAPS,
   PROP_AUTOFOCUS,
-  PROP_NOISE_REDUCTION
+  PROP_NOISE_REDUCTION,
+  PROP_CAPTURE_WIDTH,
+  PROP_CAPTURE_HEIGHT
 } GstCameraSrcProperties;
 
 
index 68b7cf7..eea611c 100644 (file)
@@ -367,6 +367,18 @@ gst_camerasrc_class_init (GstCameraSrcClass * klass)
           FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
          GST_PARAM_CONTROLLABLE));
 
+  g_object_class_install_property (gobject_class, PROP_CAPTURE_WIDTH,
+      g_param_spec_int ("capture-width", "Capture Widht",
+          "Image width used in capture mode.In case capture is done when pipeline is already running in viewfinder mode", 0,
+      G_MAXINT, 0,
+      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | GST_PARAM_CONTROLLABLE));
+
+  g_object_class_install_property (gobject_class, PROP_CAPTURE_HEIGHT,
+      g_param_spec_int ("capture-height", "Capture Height",
+          "Image height used in capture mode. In case capture is done when pipeline is already running in viewfinder mode", 0,
+      G_MAXINT, 0,
+      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | GST_PARAM_CONTROLLABLE));
+
   /**
    * GstCameraSrc:capture-mode:
    *
@@ -588,7 +600,22 @@ gst_camerasrc_set_property (GObject * object,
         bclass->set_vfinder_mode (camerasrc, camerasrc->viewfinder_mode);
       }
       break;
-
+    case PROP_CAPTURE_WIDTH:
+      camerasrc->capture_w = g_value_get_int (value);
+      GST_DEBUG_OBJECT (camerasrc, "Capture width %d",
+           camerasrc->capture_w);
+      /* both width & height should be set before setting flag to TRUE */
+      if(camerasrc->capture_h != 0)
+         camerasrc->capture_resolution_set = TRUE;
+      break;
+    case PROP_CAPTURE_HEIGHT:
+      camerasrc->capture_h = g_value_get_int (value);
+      GST_DEBUG_OBJECT (camerasrc, "Capture Height: %d",
+          camerasrc->capture_h);
+      /* both width & height should be set before setting flag to TRUE */
+      if(camerasrc->capture_w != 0)
+         camerasrc->capture_resolution_set = TRUE;
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -619,6 +646,12 @@ gst_camerasrc_get_property (GObject * object,
     case PROP_VIEWFINDER_MODE:
       g_value_set_enum (value, camerasrc->viewfinder_mode);
       break;
+    case PROP_CAPTURE_WIDTH:
+      g_value_set_int (value, camerasrc->capture_w);
+      break;
+    case PROP_CAPTURE_HEIGHT:
+      g_value_set_int (value, camerasrc->capture_h);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
index ef94c91..d85d5c7 100644 (file)
@@ -1,3 +1,6 @@
+* Thu Sep 20 2012 Marko Ollonen <marko.ollonen@ixonos.com> accepted/2.0_beta/20120912.025207@09af305
+- Add support fot configuring capture-width and capture-height
+
 * Mon Sep 10 2012 Jussi Saavalainen <jussi.saavalainen@ixonos.com> submit/2.0_beta/20120906.125813@efe13b9
 - Give real instead of page-aligned buffer size to Gstreamer