+GST_API
+GstStructure *gst_make_element_message_details (const char *name, ...);
+
+#define GST_ELEMENT_MESSAGE_MAKE_DETAILS(args) gst_make_element_message_details args
+
+/**
+ * GST_ELEMENT_FLOW_ERROR:
+ * @el: the element that generates the error
+ * @flow_return: the GstFlowReturn leading to that ERROR message
+ *
+ * Utility function that elements can use in case they encountered a fatal
+ * data processing error due to wrong flow processing.
+ *
+ * Since: 1.10
+ */
+#define GST_ELEMENT_FLOW_ERROR(el,flow_return) \
+G_STMT_START { \
+ GST_ELEMENT_ERROR_WITH_DETAILS (el, STREAM, FAILED, \
+ ("Internal data stream error."), \
+ ("streaming stopped, reason %s (%d)", gst_flow_get_name (flow_return), flow_return), \
+ ("flow-return", G_TYPE_INT, flow_return, NULL));\
+} G_STMT_END
+
+/**
+ * GST_ELEMENT_ERROR_WITH_DETAILS:
+ * @el: the element that generates the error
+ * @domain: like CORE, LIBRARY, RESOURCE or STREAM (see #gstreamer-GstGError)
+ * @code: error code defined for that domain (see #gstreamer-GstGError)
+ * @text: the message to display (format string and args enclosed in
+ parentheses)
+ * @debug: debugging information for the message (format string and args
+ enclosed in parentheses)
+ * @args: optional name, type, value triplets, which will be stored
+ * in the associated GstStructure. NULL terminator required.
+ * Must be enclosed within parentheses.
+ *
+ * Utility function that elements can use in case they encountered a fatal
+ * data processing error. The pipeline will post an error message and the
+ * application will be requested to stop further media processing.
+ *
+ * Since: 1.10
+ */
+#define GST_ELEMENT_ERROR_WITH_DETAILS(el,domain,code,text,debug,args) \
+G_STMT_START { \
+ gchar *__txt = _gst_element_error_printf text; \
+ gchar *__dbg = _gst_element_error_printf debug; \
+ if (__txt) \
+ GST_WARNING_OBJECT (el, "error: %s", __txt); \
+ if (__dbg) \
+ GST_WARNING_OBJECT (el, "error: %s", __dbg); \
+ gst_element_message_full_with_details (GST_ELEMENT(el), \
+ GST_MESSAGE_ERROR, GST_ ## domain ## _ERROR, \
+ GST_ ## domain ## _ERROR_ ## code, __txt, __dbg, __FILE__, \
+ GST_FUNCTION, __LINE__, GST_ELEMENT_MESSAGE_MAKE_DETAILS(args)); \
+} G_STMT_END
+