-GType gst_structure_get_type (void);
-
-GstStructure * gst_structure_new_empty (const gchar * name);
-GstStructure * gst_structure_new_id_empty (GQuark quark);
-GstStructure * gst_structure_new (const gchar * name,
- const gchar * firstfield,
- ...) G_GNUC_NULL_TERMINATED;
-GstStructure * gst_structure_new_valist (const gchar * name,
- const gchar * firstfield,
- va_list varargs);
-GstStructure * gst_structure_new_id (GQuark name_quark,
- GQuark field_quark,
- ...);
-GstStructure * gst_structure_copy (const GstStructure *structure);
-gboolean gst_structure_set_parent_refcount (GstStructure *structure,
- gint *refcount);
-void gst_structure_free (GstStructure *structure);
-
-const gchar * gst_structure_get_name (const GstStructure *structure);
-GQuark gst_structure_get_name_id (const GstStructure *structure);
-gboolean gst_structure_has_name (const GstStructure *structure,
- const gchar *name);
-void gst_structure_set_name (GstStructure *structure,
- const gchar *name);
-
-void gst_structure_id_set_value (GstStructure *structure,
- GQuark field,
- const GValue *value);
-void gst_structure_set_value (GstStructure *structure,
- const gchar *fieldname,
- const GValue *value);
-void gst_structure_id_take_value (GstStructure *structure,
- GQuark field,
- GValue *value);
-void gst_structure_take_value (GstStructure *structure,
- const gchar *fieldname,
- GValue *value);
-void gst_structure_set (GstStructure *structure,
- const gchar *fieldname,
- ...) G_GNUC_NULL_TERMINATED;
-
-void gst_structure_set_valist (GstStructure *structure,
- const gchar *fieldname,
- va_list varargs);
-
-void gst_structure_id_set (GstStructure *structure,
- GQuark fieldname,
- ...) G_GNUC_NULL_TERMINATED;
-
-void gst_structure_id_set_valist (GstStructure *structure,
- GQuark fieldname,
- va_list varargs);
-
-gboolean gst_structure_get_valist (const GstStructure *structure,
- const char *first_fieldname,
- va_list args);
-
-gboolean gst_structure_get (const GstStructure *structure,
- const char *first_fieldname,
- ...) G_GNUC_NULL_TERMINATED;
-
-gboolean gst_structure_id_get_valist (const GstStructure *structure,
- GQuark first_field_id,
- va_list args);
-
-gboolean gst_structure_id_get (const GstStructure *structure,
- GQuark first_field_id,
- ...) G_GNUC_NULL_TERMINATED;
-
-const GValue * gst_structure_id_get_value (const GstStructure *structure,
- GQuark field);
-const GValue * gst_structure_get_value (const GstStructure *structure,
- const gchar *fieldname);
-void gst_structure_remove_field (GstStructure *structure,
- const gchar *fieldname);
-void gst_structure_remove_fields (GstStructure *structure,
- const gchar *fieldname,
- ...) G_GNUC_NULL_TERMINATED;
-void gst_structure_remove_fields_valist (GstStructure *structure,
- const gchar *fieldname,
- va_list varargs);
-void gst_structure_remove_all_fields (GstStructure *structure);
-
-GType gst_structure_get_field_type (const GstStructure *structure,
- const gchar *fieldname);
-gboolean gst_structure_foreach (const GstStructure *structure,
- GstStructureForeachFunc func,
- gpointer user_data);
-gboolean gst_structure_map_in_place (GstStructure *structure,
- GstStructureMapFunc func,
- gpointer user_data);
-gint gst_structure_n_fields (const GstStructure *structure);
-const gchar * gst_structure_nth_field_name (const GstStructure *structure, guint index);
-gboolean gst_structure_id_has_field (const GstStructure *structure,
- GQuark field);
-gboolean gst_structure_id_has_field_typed (const GstStructure *structure,
- GQuark field,
- GType type);
-gboolean gst_structure_has_field (const GstStructure *structure,
- const gchar *fieldname);
-gboolean gst_structure_has_field_typed (const GstStructure *structure,
- const gchar *fieldname,
- GType type);
+GST_API
+GType gst_structure_get_type (void);
+
+GST_API
+GstStructure * gst_structure_new_empty (const gchar * name) G_GNUC_MALLOC;
+
+GST_API
+GstStructure * gst_structure_new_id_empty (GQuark quark) G_GNUC_MALLOC;
+
+GST_API
+GstStructure * gst_structure_new (const gchar * name,
+ const gchar * firstfield,
+ ...) G_GNUC_NULL_TERMINATED G_GNUC_MALLOC;
+GST_API
+GstStructure * gst_structure_new_valist (const gchar * name,
+ const gchar * firstfield,
+ va_list varargs) G_GNUC_MALLOC;
+GST_API
+GstStructure * gst_structure_new_id (GQuark name_quark,
+ GQuark field_quark,
+ ...) G_GNUC_MALLOC;
+GST_API
+GstStructure * gst_structure_new_from_string (const gchar * string);
+
+GST_API
+GstStructure * gst_structure_copy (const GstStructure * structure) G_GNUC_MALLOC;
+
+GST_API
+gboolean gst_structure_set_parent_refcount (GstStructure * structure,
+ gint * refcount);
+GST_API
+void gst_structure_free (GstStructure * structure);
+
+GST_API
+void gst_clear_structure (GstStructure **structure_ptr);
+#define gst_clear_structure(structure_ptr) g_clear_pointer ((structure_ptr), gst_structure_free)
+
+GST_API
+const gchar * gst_structure_get_name (const GstStructure * structure);
+
+GST_API
+GQuark gst_structure_get_name_id (const GstStructure * structure);
+
+GST_API
+gboolean gst_structure_has_name (const GstStructure * structure,
+ const gchar * name);
+GST_API
+void gst_structure_set_name (GstStructure * structure,
+ const gchar * name);
+GST_API
+void gst_structure_id_set_value (GstStructure * structure,
+ GQuark field,
+ const GValue * value);
+GST_API
+void gst_structure_set_value (GstStructure * structure,
+ const gchar * fieldname,
+ const GValue * value);
+GST_API
+void gst_structure_set_array (GstStructure * structure,
+ const gchar * fieldname,
+ const GValueArray * array);
+GST_API
+void gst_structure_set_list (GstStructure * structure,
+ const gchar * fieldname,
+ const GValueArray * array);
+GST_API
+void gst_structure_id_take_value (GstStructure * structure,
+ GQuark field,
+ GValue * value);
+GST_API
+void gst_structure_take_value (GstStructure * structure,
+ const gchar * fieldname,
+ GValue * value);
+GST_API
+void gst_structure_set (GstStructure * structure,
+ const gchar * fieldname,
+ ...) G_GNUC_NULL_TERMINATED;
+GST_API
+void gst_structure_set_valist (GstStructure * structure,
+ const gchar * fieldname,
+ va_list varargs);
+GST_API
+void gst_structure_id_set (GstStructure * structure,
+ GQuark fieldname,
+ ...) G_GNUC_NULL_TERMINATED;
+GST_API
+void gst_structure_id_set_valist (GstStructure * structure,
+ GQuark fieldname,
+ va_list varargs);
+GST_API
+gboolean gst_structure_get_valist (const GstStructure * structure,
+ const char * first_fieldname,
+ va_list args);
+GST_API
+gboolean gst_structure_get (const GstStructure * structure,
+ const char * first_fieldname,
+ ...) G_GNUC_NULL_TERMINATED;
+GST_API
+gboolean gst_structure_id_get_valist (const GstStructure * structure,
+ GQuark first_field_id,
+ va_list args);
+GST_API
+gboolean gst_structure_id_get (const GstStructure * structure,
+ GQuark first_field_id,
+ ...) G_GNUC_NULL_TERMINATED;
+GST_API
+const GValue * gst_structure_id_get_value (const GstStructure * structure,
+ GQuark field);
+GST_API
+const GValue * gst_structure_get_value (const GstStructure * structure,
+ const gchar * fieldname);
+GST_API
+void gst_structure_remove_field (GstStructure * structure,
+ const gchar * fieldname);
+GST_API
+void gst_structure_remove_fields (GstStructure * structure,
+ const gchar * fieldname,
+ ...) G_GNUC_NULL_TERMINATED;
+GST_API
+void gst_structure_remove_fields_valist (GstStructure * structure,
+ const gchar * fieldname,
+ va_list varargs);
+GST_API
+void gst_structure_remove_all_fields (GstStructure * structure);
+
+GST_API
+GType gst_structure_get_field_type (const GstStructure * structure,
+ const gchar * fieldname);
+GST_API
+gboolean gst_structure_foreach (const GstStructure * structure,
+ GstStructureForeachFunc func,
+ gpointer user_data);
+GST_API
+gboolean gst_structure_map_in_place (GstStructure * structure,
+ GstStructureMapFunc func,
+ gpointer user_data);
+GST_API
+void gst_structure_filter_and_map_in_place (GstStructure * structure,
+ GstStructureFilterMapFunc func,
+ gpointer user_data);
+GST_API
+gint gst_structure_n_fields (const GstStructure * structure);
+
+GST_API
+const gchar * gst_structure_nth_field_name (const GstStructure * structure,
+ guint index);
+GST_API
+gboolean gst_structure_id_has_field (const GstStructure * structure,
+ GQuark field);
+GST_API
+gboolean gst_structure_id_has_field_typed (const GstStructure * structure,
+ GQuark field,
+ GType type);
+GST_API
+gboolean gst_structure_has_field (const GstStructure * structure,
+ const gchar * fieldname);
+GST_API
+gboolean gst_structure_has_field_typed (const GstStructure * structure,
+ const gchar * fieldname,
+ GType type);