diff options
author | Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com> | 2009-02-20 12:03:03 +0200 |
---|---|---|
committer | René Stadler <rene.stadler@nokia.com> | 2009-02-23 14:20:12 +0200 |
commit | 617f34895c99c41b4515ecc4c499576773599883 (patch) | |
tree | af95c82fbb190295d0e2bcd7410c354bd2fcd5d4 /gst-libs/gst | |
parent | 0456f92b772cbbc425f177cf504cea81bae0e667 (diff) | |
download | gst-plugins-bad-617f34895c99c41b4515ecc4c499576773599883.tar.gz gst-plugins-bad-617f34895c99c41b4515ecc4c499576773599883.tar.bz2 gst-plugins-bad-617f34895c99c41b4515ecc4c499576773599883.zip |
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.
Diffstat (limited to 'gst-libs/gst')
-rw-r--r-- | gst-libs/gst/interfaces/photography.c | 15 | ||||
-rw-r--r-- | gst-libs/gst/interfaces/photography.h | 13 |
2 files changed, 19 insertions, 9 deletions
diff --git a/gst-libs/gst/interfaces/photography.c b/gst-libs/gst/interfaces/photography.c index 7e93b502..4d62cf46 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 199a7003..afa4631a 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); |