2007-08-12 Wim Taymans <wim.taymans@gmail.com>
+ * docs/gst/gstreamer-sections.txt:
+ * gst/gststructure.c: (gst_structure_get_uint):
+ * gst/gststructure.h:
+ Add function to get uint from a structure.
+ API: gst_structure_get_uint()
+
+2007-08-12 Wim Taymans <wim.taymans@gmail.com>
+
* gst/gstcaps.c: (gst_caps_set_simple_valist),
(gst_caps_intersect):
Fix proper check for simple caps.
}
/**
+ * gst_structure_get_uint:
+ * @structure: a #GstStructure
+ * @fieldname: the name of a field
+ * @value: a pointer to a uint to set
+ *
+ * Sets the uint pointed to by @value corresponding to the value of the
+ * given field. Caller is responsible for making sure the field exists
+ * and has the correct type.
+ *
+ * Returns: %TRUE if the value could be set correctly. If there was no field
+ * with @fieldname or the existing field did not contain a uint, this function
+ * returns %FALSE.
+ */
+gboolean
+gst_structure_get_uint (const GstStructure * structure,
+ const gchar * fieldname, guint * value)
+{
+ GstStructureField *field;
+
+ g_return_val_if_fail (structure != NULL, FALSE);
+ g_return_val_if_fail (fieldname != NULL, FALSE);
+ g_return_val_if_fail (value != NULL, FALSE);
+
+ field = gst_structure_get_field (structure, fieldname);
+
+ if (field == NULL)
+ return FALSE;
+ if (!G_VALUE_HOLDS_UINT (&field->value))
+ return FALSE;
+
+ *value = g_value_get_uint (&field->value);
+
+ return TRUE;
+}
+
+/**
* gst_structure_get_fourcc:
* @structure: a #GstStructure
* @fieldname: the name of a field
gboolean gst_structure_get_int (const GstStructure *structure,
const gchar *fieldname,
gint *value);
+gboolean gst_structure_get_uint (const GstStructure *structure,
+ const gchar *fieldname,
+ guint *value);
gboolean gst_structure_get_fourcc (const GstStructure *structure,
const gchar *fieldname,
guint32 *value);