+/* STREAM_START */
+
+GST_API
+GstMessage * gst_message_new_stream_start (GstObject * src) G_GNUC_MALLOC;
+
+GST_API
+void gst_message_set_group_id (GstMessage *message, guint group_id);
+
+GST_API
+gboolean gst_message_parse_group_id (GstMessage *message, guint *group_id);
+
+/* NEED_CONTEXT */
+
+GST_API
+GstMessage * gst_message_new_need_context (GstObject * src, const gchar * context_type) G_GNUC_MALLOC;
+
+GST_API
+gboolean gst_message_parse_context_type (GstMessage * message, const gchar ** context_type);
+
+/* HAVE_CONTEXT */
+
+GST_API
+GstMessage * gst_message_new_have_context (GstObject * src, GstContext *context) G_GNUC_MALLOC;
+
+GST_API
+void gst_message_parse_have_context (GstMessage *message, GstContext **context);
+
+/* DEVICE_ADDED */
+
+GST_API
+GstMessage * gst_message_new_device_added (GstObject * src, GstDevice * device) G_GNUC_MALLOC;
+
+GST_API
+void gst_message_parse_device_added (GstMessage * message, GstDevice ** device);
+
+/* DEVICE_REMOVED */
+
+GST_API
+GstMessage * gst_message_new_device_removed (GstObject * src, GstDevice * device) G_GNUC_MALLOC;
+
+GST_API
+void gst_message_parse_device_removed (GstMessage * message, GstDevice ** device);
+
+/* DEVICE_CHANGED */
+
+GST_API
+GstMessage * gst_message_new_device_changed (GstObject * src, GstDevice * device, GstDevice *changed_device);
+
+GST_API
+void gst_message_parse_device_changed (GstMessage * message, GstDevice ** device, GstDevice ** changed_device);
+
+
+/* PROPERTY_NOTIFY */
+
+GST_API
+GstMessage * gst_message_new_property_notify (GstObject * src, const gchar * property_name, GValue * val) G_GNUC_MALLOC;
+
+GST_API
+void gst_message_parse_property_notify (GstMessage * message, GstObject ** object, const gchar ** property_name, const GValue ** property_value);
+
+/* STREAM_COLLECTION */
+
+GST_API
+GstMessage * gst_message_new_stream_collection (GstObject * src, GstStreamCollection * collection) G_GNUC_MALLOC;
+
+GST_API
+void gst_message_parse_stream_collection (GstMessage *message, GstStreamCollection **collection);
+
+/* STREAMS_SELECTED */
+
+GST_API
+GstMessage * gst_message_new_streams_selected (GstObject *src, GstStreamCollection *collection);
+
+GST_API
+void gst_message_streams_selected_add (GstMessage *message, GstStream *stream);
+
+GST_API
+void gst_message_parse_streams_selected (GstMessage * message, GstStreamCollection **collection);
+
+GST_API
+guint gst_message_streams_selected_get_size (GstMessage * message);
+
+GST_API
+GstStream *gst_message_streams_selected_get_stream (GstMessage *message, guint idx);
+
+/* REDIRECT */
+
+GST_API
+GstMessage * gst_message_new_redirect (GstObject * src, const gchar * location, GstTagList * tag_list, const GstStructure * entry_struct) G_GNUC_MALLOC;
+
+GST_API
+void gst_message_add_redirect_entry (GstMessage * message, const gchar * location, GstTagList * tag_list, const GstStructure * entry_struct);
+
+GST_API
+void gst_message_parse_redirect_entry (GstMessage * message, gsize entry_index, const gchar ** location, GstTagList ** tag_list, const GstStructure ** entry_struct);
+
+GST_API
+gsize gst_message_get_num_redirect_entries (GstMessage * message);
+
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstMessage, gst_message_unref)
+#endif
+