* A function that will be called in gst_structure_foreach(). The function may
* not modify @value.
*
- * Returns: TRUE if the foreach operation should continue, FALSE if
- * the foreach operation should stop with FALSE.
+ * Returns: %TRUE if the foreach operation should continue, %FALSE if
+ * the foreach operation should stop with %FALSE.
*/
typedef gboolean (*GstStructureForeachFunc) (GQuark field_id,
const GValue * value,
* A function that will be called in gst_structure_map_in_place(). The function
* may modify @value.
*
- * Returns: TRUE if the map operation should continue, FALSE if
- * the map operation should stop with FALSE.
+ * Returns: %TRUE if the map operation should continue, %FALSE if
+ * the map operation should stop with %FALSE.
*/
typedef gboolean (*GstStructureMapFunc) (GQuark field_id,
GValue * value,
gpointer user_data);
/**
+ * GstStructureFilterMapFunc:
+ * @field_id: the #GQuark of the field name
+ * @value: the #GValue of the field
+ * @user_data: user data
+ *
+ * A function that will be called in gst_structure_filter_and_map_in_place().
+ * The function may modify @value, and the value will be removed from
+ * the structure if %FALSE is returned.
+ *
+ * Returns: %TRUE if the field should be preserved, %FALSE if it
+ * should be removed.
+ */
+typedef gboolean (*GstStructureFilterMapFunc) (GQuark field_id,
+ GValue * value,
+ gpointer user_data);
+
+/**
* GstStructure:
* @type: the GType of a structure
*
const gchar * fieldname,
const GValue * value);
+void gst_structure_set_array (GstStructure * structure,
+ const gchar * fieldname,
+ const GValueArray * array);
+
+void gst_structure_set_list (GstStructure * structure,
+ const gchar * fieldname,
+ const GValueArray * array);
+
void gst_structure_id_take_value (GstStructure * structure,
GQuark field,
GValue * value);
GstStructureMapFunc func,
gpointer user_data);
+void gst_structure_filter_and_map_in_place (GstStructure * structure,
+ GstStructureFilterMapFunc func,
+ gpointer user_data);
+
gint gst_structure_n_fields (const GstStructure * structure);
const gchar * gst_structure_nth_field_name (const GstStructure * structure,
gint * value_numerator,
gint * value_denominator);
+gboolean gst_structure_get_flagset (const GstStructure * structure,
+ const gchar * fieldname,
+ guint * value_flags,
+ guint * value_mask);
+
+gboolean gst_structure_get_array (GstStructure * structure,
+ const gchar * fieldname,
+ GValueArray ** array);
+
+gboolean gst_structure_get_list (GstStructure * structure,
+ const gchar * fieldname,
+ GValueArray ** array);
+
gchar * gst_structure_to_string (const GstStructure * structure) G_GNUC_MALLOC;
GstStructure * gst_structure_from_string (const gchar * string,
GstStructure * gst_structure_intersect (const GstStructure * struct1,
const GstStructure * struct2) G_GNUC_MALLOC;
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstStructure, gst_structure_free)
+#endif
+
G_END_DECLS
#endif