summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>2009-02-20 12:03:03 +0200
committerRené Stadler <rene.stadler@nokia.com>2009-02-23 14:20:12 +0200
commit617f34895c99c41b4515ecc4c499576773599883 (patch)
treeaf95c82fbb190295d0e2bcd7410c354bd2fcd5d4
parent0456f92b772cbbc425f177cf504cea81bae0e667 (diff)
downloadgstreamer-plugins-bad-617f34895c99c41b4515ecc4c499576773599883.tar.gz
photo iface: Add caps object to preparation API for requested and actual capture format
Allow requesting of certain format with prepare_for_capture() and return the actual format in GstPhotoCapturePrepared callback.
-rw-r--r--gst-libs/gst/interfaces/photography.c15
-rw-r--r--gst-libs/gst/interfaces/photography.h13
2 files changed, 19 insertions, 9 deletions
diff --git a/gst-libs/gst/interfaces/photography.c b/gst-libs/gst/interfaces/photography.c
index 7e93b5023..4d62cf46b 100644
--- a/gst-libs/gst/interfaces/photography.c
+++ b/gst-libs/gst/interfaces/photography.c
@@ -325,22 +325,29 @@ gst_photography_get_capabilities (GstPhotography * photo)
* gst_photography_prepare_for_capture:
* @photo: #GstPhotography interface of a #GstElement
* @func: callback that is called after capturing has been prepared
+ * @caps: #GstCaps defining the desired format of the captured image
* @user_data: user data that will be passed to the callback @func
*
* Start preparations for capture. @func callback is called after
* preparations are done.
+ *
+ * Returns: TRUE if preparations were started (caps were OK), otherwise FALSE.
*/
-void
+gboolean
gst_photography_prepare_for_capture (GstPhotography * photo,
- GstPhotoCapturePrepared func, gpointer user_data)
+ GstPhotoCapturePrepared func, GstCaps * capture_caps, gpointer user_data)
{
GstPhotographyInterface *iface;
- g_return_if_fail (photo != NULL);
+ gboolean ret = TRUE;
+
+ g_return_val_if_fail (photo != NULL, FALSE);
iface = GST_PHOTOGRAPHY_GET_IFACE (photo);
if (iface->prepare_for_capture) {
- iface->prepare_for_capture (photo, func, user_data);
+ ret = iface->prepare_for_capture (photo, func, capture_caps, user_data);
}
+
+ return ret;
}
/**
diff --git a/gst-libs/gst/interfaces/photography.h b/gst-libs/gst/interfaces/photography.h
index 199a70035..afa4631a4 100644
--- a/gst-libs/gst/interfaces/photography.h
+++ b/gst-libs/gst/interfaces/photography.h
@@ -143,11 +143,14 @@ typedef struct
/**
* GstPhotoCapturePrepared:
* @data: user data that has been given, when registering the callback
+ * @configured_caps: #GstCaps defining the configured capture format.
+ * Ownership of these caps stays in the element.
*
* This callback will be called when the element has finished preparations
* for photo capture.
*/
-typedef void (*GstPhotoCapturePrepared) (gpointer data);
+typedef void (*GstPhotoCapturePrepared) (gpointer data,
+ const GstCaps *configured_caps);
/**
* GstPhotographyInterface:
@@ -210,8 +213,8 @@ typedef struct _GstPhotographyInterface
gboolean (*set_zoom) (GstPhotography * photo, gfloat zoom);
GstPhotoCaps (*get_capabilities) (GstPhotography * photo);
- void (*prepare_for_capture) (GstPhotography * photo,
- GstPhotoCapturePrepared func, gpointer user_data);
+ gboolean (*prepare_for_capture) (GstPhotography * photo,
+ GstPhotoCapturePrepared func, GstCaps *capture_caps, gpointer user_data);
void (*set_autofocus) (GstPhotography * photo, gboolean on);
/*< private > */
@@ -257,8 +260,8 @@ gboolean gst_photography_set_zoom (GstPhotography * photo, gfloat zoom);
GstPhotoCaps gst_photography_get_capabilities (GstPhotography * photo);
-void gst_photography_prepare_for_capture (GstPhotography * photo,
- GstPhotoCapturePrepared func, gpointer user_data);
+gboolean gst_photography_prepare_for_capture (GstPhotography * photo,
+ GstPhotoCapturePrepared func, GstCaps *capture_caps, gpointer user_data);
void gst_photography_set_autofocus (GstPhotography * photo, gboolean on);