gstreamer_core/gst/gstinfo.h
branchRCL_3
changeset 29 567bb019e3e3
parent 0 0e761a78d257
child 30 7e817e7e631c
--- a/gstreamer_core/gst/gstinfo.h	Wed Mar 31 22:03:18 2010 +0300
+++ b/gstreamer_core/gst/gstinfo.h	Tue Aug 31 15:30:33 2010 +0300
@@ -28,17 +28,6 @@
 #include <glib-object.h>
 #include <gst/gstconfig.h>
 
-
-#ifndef _MSC_VER
-#define IMPORT_SYMBOL
-#else /* _MSC_VER */
-#ifndef LIBGSTREAMER_EXPORTS
-#define IMPORT_SYMBOL __declspec(dllimport)
-#else
-#define IMPORT_SYMBOL 
-#endif
-#endif
-
 #ifndef M_PI
 #define M_PI  3.14159265358979323846
 #endif
@@ -70,6 +59,14 @@
  *  useful to know. As a rule of thumb a pipeline that is iterating as expected
  *  should never output anzthing else but LOG messages.
  *  Examples for this are referencing/dereferencing of objects or cothread switches.
+ * @GST_LEVEL_FIXME: Fixme messages are messages that indicate that something
+ *  in the executed code path is not fully implemented or handled yet. Note
+ *  that this does not replace proper error handling in any way, the purpose
+ *  of this message is to make it easier to spot incomplete/unfinished pieces
+ *  of code when reading the debug log. (Since: 0.10.23)
+ * @GST_LEVEL_MEMDUMP: memory dump messages are used to log (small) chunks of
+ *  data as memory dumps in the log. They will be displayed as hexdump with
+ *  ASCII characters. (Since: 0.10.23)
  * @GST_LEVEL_COUNT: The number of defined debugging levels.
  *
  * The level defines the importance of a debugging message. The more important a
@@ -82,6 +79,9 @@
   GST_LEVEL_INFO,
   GST_LEVEL_DEBUG,
   GST_LEVEL_LOG,
+  GST_LEVEL_FIXME = 6,
+  /* add more */
+  GST_LEVEL_MEMDUMP = 9,
   /* add more */
   GST_LEVEL_COUNT
 } GstDebugLevel;
@@ -213,14 +213,17 @@
  * be defined when configuring your project, as it is compiler dependant. If it
  * is not defined, some default value is used. It is used to provide debugging
  * output with the function name of the message.
+ *
+ * Note that this is different from G_STRFUNC as we do not want the full
+ * function signature in C++ code.
  */
 #ifndef GST_FUNCTION
-#if defined (__GNUC__)
+#if defined (__GNUC__) || (defined (_MSC_VER) && _MSC_VER >= 1300)
 #  define GST_FUNCTION     ((const char*) (__FUNCTION__))
-#elif defined (G_HAVE_ISO_VARARGS)
+#elif defined (__STDC__) && defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
 #  define GST_FUNCTION     ((const char*) (__func__))
 #else
-#  define GST_FUNCTION     ((const char*) ("???"))
+#  define GST_FUNCTION     ((const char*) (__PRETTY_FUNCTION__))
 #endif
 #endif /* ifndef GST_FUNCTION */
 
@@ -415,7 +418,8 @@
  * This macro expands to nothing if debugging is disabled.
  */
 #define GST_DEBUG_CATEGORY_STATIC(cat) static GstDebugCategory *cat = NULL
-/* do not use this function, use the macros below */
+
+/* do not use this function, use the GST_DEBUG_CATEGORY_INIT macro below */
 #ifdef __SYMBIAN32__
 IMPORT_C
 #endif
@@ -508,12 +512,56 @@
 
 GSList *
         gst_debug_get_all_categories	(void);
+
+/* do not use this function, use the GST_DEBUG_CATEGORY_GET macro below */
 #ifdef __SYMBIAN32__
 IMPORT_C
 #endif
 
+GstDebugCategory *_gst_debug_get_category (const gchar *name);
 
-gchar *	gst_debug_construct_term_color	(guint colorinfo);
+/**
+ * GST_DEBUG_CATEGORY_GET:
+ * @cat: the category to initialize.
+ * @name: log category name
+ *
+ * Lookup an exiting #GstDebugCategory by its @name and sets @cat. If category
+ * is not found, but %GST_CAT_DEFAULT is defined, that is assigned to @cat.
+ * Otherwise cat will be NULL.
+ *
+ * |[
+ * GST_DEBUG_CATEGORY_STATIC (gst_myplugin_debug);
+ * #define GST_CAT_DEFAULT gst_myplugin_debug
+ * GST_DEBUG_CATEGORY_STATIC (GST_CAT_PERFORMANCE);
+ * ...
+ * GST_DEBUG_CATEGORY_INIT (gst_myplugin_debug, "myplugin", 0, "nice element");
+ * GST_DEBUG_CATEGORY_GET (GST_CAT_PERFORMANCE, "performance);
+ * ]|
+ *
+ * Since: 0.10.24
+ */
+#ifdef GST_CAT_DEFAULT
+#define GST_DEBUG_CATEGORY_GET(cat,name)  G_STMT_START{\
+  cat = _gst_debug_get_category (name);			\
+  if (!cat) {						\
+    cat = GST_CAT_DEFAULT;				\
+  }							\
+}G_STMT_END
+#else
+#define GST_DEBUG_CATEGORY_GET(cat,name)  G_STMT_START{\
+  cat = _gst_debug_get_category (name);			\
+}G_STMT_END
+#endif
+
+#ifdef __SYMBIAN32__
+IMPORT_C
+#endif
+gchar * gst_debug_construct_term_color	(guint colorinfo);
+#ifdef __SYMBIAN32__
+IMPORT_C
+#endif
+
+gint    gst_debug_construct_win_color (guint colorinfo);
 
 
 /**
@@ -522,10 +570,17 @@
  * Default gstreamer core debug log category. Please define your own.
  */
 GST_EXPORT GstDebugCategory *	GST_CAT_DEFAULT;
+GST_EXPORT GstDebugLevel            __gst_debug_min; 
+
 /* this symbol may not be used */
 extern gboolean			__gst_debug_enabled;
 
+/* since 0.10.7, the min debug level, used for quickly discarding debug
+ * messages that fall under the threshold. */
 #ifdef __SYMBIAN32__
+#ifdef __SYMBIAN32__
+IMPORT_C
+#endif
 GstDebugCategory ** _GST_CAT_DEFAULT();
 #ifdef __SYMBIAN32__
 IMPORT_C
@@ -535,17 +590,13 @@
 #ifdef __SYMBIAN32__
 IMPORT_C
 #endif
+GstDebugCategory** _GST_CAT_QOS();
 
-GstDebugCategory** _GST_CAT_QOS();
 #ifdef __SYMBIAN32__
 IMPORT_C
 #endif
-
-GstDebugCategory ** _GST_CAT_DEFAULT();
+GstDebugLevel*            gst_debug_min();
 #endif
-/* since 0.10.7, the min debug level, used for quickly discarding debug
- * messages that fall under the threshold. */
-extern IMPORT_SYMBOL GstDebugLevel            __gst_debug_min; 
 
 /**
  * GST_CAT_LEVEL_LOG:
@@ -578,7 +629,7 @@
 GST_CAT_LEVEL_LOG_valist (GstDebugCategory * cat,
     GstDebugLevel level, gpointer object, const char *format, va_list varargs)
 {
-#ifdef DEBUG_ENABLE
+#ifdef __SYMBIAN32__
   GstDebugCategory** cat1;
   GstDebugCategory* p;
   cat1 = _GST_CAT_DEFAULT();
@@ -586,6 +637,11 @@
   if (G_UNLIKELY (level <= __gst_debug_min)) {
     gst_debug_log_valist (p, level, "", "", 0, (GObject *) object, format,
         varargs);
+    }
+#else
+    if (G_UNLIKELY (level <= __gst_debug_min)) {
+      gst_debug_log_valist (cat, level, "", "", 0, (GObject *) object, format,
+          varargs);
   }
 #endif
 }
@@ -603,6 +659,34 @@
 #endif
 #endif /* G_HAVE_ISO_VARARGS */
 
+/* private helper function */
+#ifdef __SYMBIAN32__
+IMPORT_C
+#endif
+
+void _gst_debug_dump_mem (GstDebugCategory * cat, const gchar * file,
+    const gchar * func, gint line, GObject * obj, const gchar * msg,
+    const guint8 * data, guint length);
+
+/* This one doesn't have varargs in the macro, so it's different than all the
+ * other macros and hence in a separate block right here. Docs chunks are
+ * with the other doc chunks below though. */
+#define __GST_CAT_MEMDUMP_LOG(cat,object,msg,data,length) G_STMT_START{       \
+  if (G_UNLIKELY (GST_LEVEL_MEMDUMP <= __gst_debug_min)) {                    \
+    _gst_debug_dump_mem ((cat), __FILE__, GST_FUNCTION, __LINE__,             \
+        (GObject *) (object), (msg), (data), (length));                       \
+  }                                                                           \
+}G_STMT_END
+
+#define GST_CAT_MEMDUMP_OBJECT(cat,obj,msg,data,length)  \
+    __GST_CAT_MEMDUMP_LOG(cat,obj,msg,data,length)
+#define GST_CAT_MEMDUMP(cat,msg,data,length)             \
+    __GST_CAT_MEMDUMP_LOG(cat,NULL,msg,data,length)
+#define GST_MEMDUMP_OBJECT(obj,msg,data,length)          \
+    __GST_CAT_MEMDUMP_LOG(GST_CAT_DEFAULT,obj,msg,data,length)
+#define GST_MEMDUMP(msg,data,length)                     \
+    __GST_CAT_MEMDUMP_LOG(GST_CAT_DEFAULT,NULL,msg,data,length)
+
 /**
  * GST_CAT_ERROR_OBJECT:
  * @cat: category to use
@@ -644,6 +728,29 @@
  *
  * Output an logging message belonging to the given object in the given category.
  */
+/**
+ * GST_CAT_FIXME_OBJECT:
+ * @cat: category to use
+ * @obj: the #GObject the message belongs to
+ * @...: printf-style message to output
+ *
+ * Output a fixme message belonging to the given object in the given category.
+ *
+ * Since: 0.10.23
+ */
+/**
+ * GST_CAT_MEMDUMP_OBJECT:
+ * @cat: category to use
+ * @obj: the #GObject the message belongs to
+ * @msg: message string to log with the data
+ * @data: pointer to the data to output
+ * @length: length of the data to output
+ *
+ * Output a hexdump of @data relating to the given object in the given
+ * category.
+ *
+ * Since: 0.10.23
+ */
 
 
 /**
@@ -681,6 +788,26 @@
  *
  * Output an logging message in the given category.
  */
+/**
+ * GST_CAT_FIXME:
+ * @cat: category to use
+ * @...: printf-style message to output
+ *
+ * Output an fixme message in the given category.
+ *
+ * Since: 0.10.23
+ */
+/**
+ * GST_CAT_MEMDUMP:
+ * @cat: category to use
+ * @msg: message string to log with the data
+ * @data: pointer to the data to output
+ * @length: length of the data to output
+ *
+ * Output a hexdump of @data in the given category.
+ *
+ * Since: 0.10.23
+ */
 
 
 /**
@@ -720,6 +847,26 @@
  *
  * Output a logging message belonging to the given object in the default category.
  */
+/**
+ * GST_FIXME_OBJECT:
+ * @obj: the #GObject the message belongs to
+ * @...: printf-style message to output
+ *
+ * Output a logging message belonging to the given object in the default category.
+ *
+ * Since: 0.10.23
+ */
+/**
+ * GST_MEMDUMP_OBJECT:
+ * @obj: the #GObject the message belongs to
+ * @msg: message string to log with the data
+ * @data: pointer to the data to output
+ * @length: length of the data to output
+ *
+ * Output a logging message belonging to the given object in the default category.
+ *
+ * Since: 0.10.23
+ */
 
 
 /**
@@ -752,6 +899,24 @@
  *
  * Output a logging message in the default category.
  */
+/**
+ * GST_FIXME:
+ * @...: printf-style message to output
+ *
+ * Output a fixme message in the default category.
+ *
+ * Since: 0.10.23
+ */
+/**
+ * GST_MEMDUMP:
+ * @msg: message string to log with the data
+ * @data: pointer to the data to output
+ * @length: length of the data to output
+ *
+ * Output a hexdump of @data.
+ *
+ * Since: 0.10.23
+ */
 
 #ifdef G_HAVE_ISO_VARARGS
 
@@ -760,24 +925,28 @@
 #define GST_CAT_INFO_OBJECT(cat,obj,...)	GST_CAT_LEVEL_LOG (cat, GST_LEVEL_INFO,    obj,  __VA_ARGS__)
 #define GST_CAT_DEBUG_OBJECT(cat,obj,...)	GST_CAT_LEVEL_LOG (cat, GST_LEVEL_DEBUG,   obj,  __VA_ARGS__)
 #define GST_CAT_LOG_OBJECT(cat,obj,...)		GST_CAT_LEVEL_LOG (cat, GST_LEVEL_LOG,     obj,  __VA_ARGS__)
+#define GST_CAT_FIXME_OBJECT(cat,obj,...)	GST_CAT_LEVEL_LOG (cat, GST_LEVEL_FIXME,   obj,  __VA_ARGS__)
 
 #define GST_CAT_ERROR(cat,...)			GST_CAT_LEVEL_LOG (cat, GST_LEVEL_ERROR,   NULL, __VA_ARGS__)
 #define GST_CAT_WARNING(cat,...)		GST_CAT_LEVEL_LOG (cat, GST_LEVEL_WARNING, NULL, __VA_ARGS__)
 #define GST_CAT_INFO(cat,...)			GST_CAT_LEVEL_LOG (cat, GST_LEVEL_INFO,    NULL, __VA_ARGS__)
 #define GST_CAT_DEBUG(cat,...)			GST_CAT_LEVEL_LOG (cat, GST_LEVEL_DEBUG,   NULL, __VA_ARGS__)
 #define GST_CAT_LOG(cat,...)			GST_CAT_LEVEL_LOG (cat, GST_LEVEL_LOG,     NULL, __VA_ARGS__)
+#define GST_CAT_FIXME(cat,...)			GST_CAT_LEVEL_LOG (cat, GST_LEVEL_FIXME,   NULL, __VA_ARGS__)
 
 #define GST_ERROR_OBJECT(obj,...)	GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_ERROR,   obj,  __VA_ARGS__)
 #define GST_WARNING_OBJECT(obj,...)	GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_WARNING, obj,  __VA_ARGS__)
 #define GST_INFO_OBJECT(obj,...)	GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_INFO,    obj,  __VA_ARGS__)
 #define GST_DEBUG_OBJECT(obj,...)	GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_DEBUG,   obj,  __VA_ARGS__)
 #define GST_LOG_OBJECT(obj,...)		GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_LOG,     obj,  __VA_ARGS__)
+#define GST_FIXME_OBJECT(obj,...)	GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_FIXME,   obj,  __VA_ARGS__)
 
 #define GST_ERROR(...)			GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_ERROR,   NULL, __VA_ARGS__)
 #define GST_WARNING(...)		GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_WARNING, NULL, __VA_ARGS__)
 #define GST_INFO(...)			GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_INFO,    NULL, __VA_ARGS__)
 #define GST_DEBUG(...)			GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_DEBUG,   NULL, __VA_ARGS__)
 #define GST_LOG(...)			GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_LOG,     NULL, __VA_ARGS__)
+#define GST_FIXME(...)			GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_FIXME,   NULL, __VA_ARGS__)
 
 #else
 #ifdef G_HAVE_GNUC_VARARGS
@@ -787,24 +956,28 @@
 #define GST_CAT_INFO_OBJECT(cat,obj,args...)	GST_CAT_LEVEL_LOG (cat, GST_LEVEL_INFO,    obj,  ##args )
 #define GST_CAT_DEBUG_OBJECT(cat,obj,args...)	GST_CAT_LEVEL_LOG (cat, GST_LEVEL_DEBUG,   obj,  ##args )
 #define GST_CAT_LOG_OBJECT(cat,obj,args...)	GST_CAT_LEVEL_LOG (cat, GST_LEVEL_LOG,     obj,  ##args )
+#define GST_CAT_FIXME_OBJECT(cat,obj,args...)	GST_CAT_LEVEL_LOG (cat, GST_LEVEL_FIXME,   obj,  ##args )
 
 #define GST_CAT_ERROR(cat,args...)		GST_CAT_LEVEL_LOG (cat, GST_LEVEL_ERROR,   NULL, ##args )
 #define GST_CAT_WARNING(cat,args...)		GST_CAT_LEVEL_LOG (cat, GST_LEVEL_WARNING, NULL, ##args )
 #define GST_CAT_INFO(cat,args...)		GST_CAT_LEVEL_LOG (cat, GST_LEVEL_INFO,    NULL, ##args )
 #define GST_CAT_DEBUG(cat,args...)		GST_CAT_LEVEL_LOG (cat, GST_LEVEL_DEBUG,   NULL, ##args )
 #define GST_CAT_LOG(cat,args...)		GST_CAT_LEVEL_LOG (cat, GST_LEVEL_LOG,     NULL, ##args )
+#define GST_CAT_FIXME(cat,args...)		GST_CAT_LEVEL_LOG (cat, GST_LEVEL_FIXME,   NULL, ##args )
 
 #define GST_ERROR_OBJECT(obj,args...)	GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_ERROR,   obj,  ##args )
 #define GST_WARNING_OBJECT(obj,args...)	GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_WARNING, obj,  ##args )
 #define GST_INFO_OBJECT(obj,args...)	GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_INFO,    obj,  ##args )
 #define GST_DEBUG_OBJECT(obj,args...)	GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_DEBUG,   obj,  ##args )
 #define GST_LOG_OBJECT(obj,args...)	GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_LOG,     obj,  ##args )
+#define GST_FIXME_OBJECT(obj,args...)	GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_FIXME,   obj,  ##args )
 
 #define GST_ERROR(args...)		GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_ERROR,   NULL, ##args )
 #define GST_WARNING(args...)		GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_WARNING, NULL, ##args )
 #define GST_INFO(args...)		GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_INFO,    NULL, ##args )
 #define GST_DEBUG(args...)		GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_DEBUG,   NULL, ##args )
 #define GST_LOG(args...)		GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_LOG,     NULL, ##args )
+#define GST_FIXME(args...)		GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_FIXME,   NULL, ##args )
 
 #else
 /* no variadic macros, use inline */
@@ -864,6 +1037,17 @@
 }
 
 static inline void
+GST_CAT_FIXME_OBJECT (GstDebugCategory * cat, gpointer obj, const char *format,
+    ...)
+{
+  va_list varargs;
+
+  va_start (varargs, format);
+  GST_CAT_LEVEL_LOG_valist (cat, GST_LEVEL_FIXME, obj, format, varargs);
+  va_end (varargs);
+}
+
+static inline void
 GST_CAT_ERROR (GstDebugCategory * cat, const char *format, ...)
 {
   va_list varargs;
@@ -914,6 +1098,16 @@
 }
 
 static inline void
+GST_CAT_FIXME (GstDebugCategory * cat, const char *format, ...)
+{
+  va_list varargs;
+
+  va_start (varargs, format);
+  GST_CAT_LEVEL_LOG_valist (cat, GST_LEVEL_FIXME, NULL, format, varargs);
+  va_end (varargs);
+}
+
+static inline void
 GST_ERROR_OBJECT (gpointer obj, const char *format, ...)
 {
   va_list varargs;
@@ -969,6 +1163,17 @@
 }
 
 static inline void
+GST_FIXME_OBJECT (gpointer obj, const char *format, ...)
+{
+  va_list varargs;
+
+  va_start (varargs, format);
+  GST_CAT_LEVEL_LOG_valist (GST_CAT_DEFAULT, GST_LEVEL_FIXME, obj, format,
+      varargs);
+  va_end (varargs);
+}
+
+static inline void
 GST_ERROR (const char *format, ...)
 {
   va_list varargs;
@@ -1022,6 +1227,17 @@
       format, varargs);
   va_end (varargs);
 }
+
+static inline void
+GST_FIXME (const char *format, ...)
+{
+  va_list varargs;
+
+  va_start (varargs, format);
+  GST_CAT_LEVEL_LOG_valist (GST_CAT_DEFAULT, GST_LEVEL_FIXME, NULL, format,
+      varargs);
+  va_end (varargs);
+}
 #endif
 #endif
 
@@ -1069,19 +1285,23 @@
 #else /* GST_DISABLE_GST_DEBUG */
 
 
+#ifndef GST_INFO_C
+
 #if defined(__GNUC__) && __GNUC__ >= 3
 #  pragma GCC poison gst_debug_log
 #  pragma GCC poison gst_debug_log_valist
 #  pragma GCC poison _gst_debug_category_new
 #endif
 
+#define __gst_debug_min GST_LEVEL_NONE
+
 #define _gst_debug_init()				/* NOP */
 
 #define gst_debug_set_default_threshold(level)		/* NOP */
 #define gst_debug_get_default_threshold()		(GST_LEVEL_NONE)
 
 #define gst_debug_level_get_name(level)				("NONE")
-#define gst_debug_message_get(message)  			("NONE")
+#define gst_debug_message_get(message)  			("")
 #define gst_debug_add_log_function(func,data)		/* NOP */
 guint gst_debug_remove_log_function (GstLogFunction func);
 guint gst_debug_remove_log_function_by_data (gpointer data);
@@ -1102,6 +1322,7 @@
 #define GST_DEBUG_CATEGORY_STATIC(var)			/* NOP */
 #endif
 #define GST_DEBUG_CATEGORY_INIT(var,name,color,desc)	/* NOP */
+#define GST_DEBUG_CATEGORY_GET(var,name)		/* NOP */
 #define gst_debug_category_free(category)		/* NOP */
 #define gst_debug_category_set_threshold(category,level) /* NOP */
 #define gst_debug_category_reset_threshold(category)	/* NOP */
@@ -1111,6 +1332,9 @@
 #define gst_debug_category_get_description(cat)		("")
 #define gst_debug_get_all_categories()			(NULL)
 #define gst_debug_construct_term_color(colorinfo)	(g_strdup ("00"))
+#define gst_debug_construct_win_color(colorinfo)	(0)
+
+#endif /* !GST_INFO_C */
 
 #ifdef G_HAVE_ISO_VARARGS
 
@@ -1121,26 +1345,30 @@
 #define GST_CAT_INFO_OBJECT(...)			/* NOP */
 #define GST_CAT_DEBUG_OBJECT(...)			/* NOP */
 #define GST_CAT_LOG_OBJECT(...)				/* NOP */
+#define GST_CAT_FIXME_OBJECT(...)			/* NOP */
 
 #define GST_CAT_ERROR(...)				/* NOP */
 #define GST_CAT_WARNING(...)				/* NOP */
 #define GST_CAT_INFO(...)				/* NOP */
 #define GST_CAT_DEBUG(...)				/* NOP */
 #define GST_CAT_LOG(...)				/* NOP */
+#define GST_CAT_FIXME(...)				/* NOP */
 
 #define GST_ERROR_OBJECT(...)				/* NOP */
 #define GST_WARNING_OBJECT(...)				/* NOP */
 #define GST_INFO_OBJECT(...)				/* NOP */
 #define GST_DEBUG_OBJECT(...)				/* NOP */
 #define GST_LOG_OBJECT(...)				/* NOP */
+#define GST_FIXME_OBJECT(...)				/* NOP */
 
 #define GST_ERROR(...)					/* NOP */
 #define GST_WARNING(...)				/* NOP */
 #define GST_INFO(...)					/* NOP */
 #define GST_DEBUG(...)					/* NOP */
 #define GST_LOG(...)					/* NOP */
+#define GST_FIXME(...)					/* NOP */
 
-#else
+#else /* !G_HAVE_ISO_VARARGS */
 #ifdef G_HAVE_GNUC_VARARGS
 
 #define GST_CAT_LEVEL_LOG(cat,level,args...)		/* NOP */
@@ -1150,26 +1378,30 @@
 #define GST_CAT_INFO_OBJECT(args...)			/* NOP */
 #define GST_CAT_DEBUG_OBJECT(args...)			/* NOP */
 #define GST_CAT_LOG_OBJECT(args...)			/* NOP */
+#define GST_CAT_FIXME_OBJECT(args...)			/* NOP */
 
 #define GST_CAT_ERROR(args...)				/* NOP */
 #define GST_CAT_WARNING(args...)			/* NOP */
 #define GST_CAT_INFO(args...)				/* NOP */
 #define GST_CAT_DEBUG(args...)				/* NOP */
 #define GST_CAT_LOG(args...)				/* NOP */
+#define GST_CAT_FIXME(args...)				/* NOP */
 
 #define GST_ERROR_OBJECT(args...)			/* NOP */
 #define GST_WARNING_OBJECT(args...)			/* NOP */
 #define GST_INFO_OBJECT(args...)			/* NOP */
 #define GST_DEBUG_OBJECT(args...)			/* NOP */
 #define GST_LOG_OBJECT(args...)				/* NOP */
+#define GST_FIXME_OBJECT(args...)			/* NOP */
 
 #define GST_ERROR(args...)				/* NOP */
 #define GST_WARNING(args...)				/* NOP */
 #define GST_INFO(args...)				/* NOP */
 #define GST_DEBUG(args...)				/* NOP */
 #define GST_LOG(args...)				/* NOP */
+#define GST_FIXME(args...)				/* NOP */
 
-#else
+#else /* !G_HAVE_GNUC_VARARGS */
 static inline void
 GST_CAT_LEVEL_LOG_valist (GstDebugCategory * cat,
     GstDebugLevel level, gpointer object, const char *format, va_list varargs)
@@ -1207,6 +1439,12 @@
 }
 
 static inline void
+GST_CAT_FIXME_OBJECT (GstDebugCategory * cat, gpointer obj, const char *format,
+    ...)
+{
+}
+
+static inline void
 GST_CAT_ERROR (GstDebugCategory * cat, const char *format, ...)
 {
 }
@@ -1232,6 +1470,11 @@
 }
 
 static inline void
+GST_CAT_FIXME (GstDebugCategory * cat, const char *format, ...)
+{
+}
+
+static inline void
 GST_ERROR_OBJECT (gpointer obj, const char *format, ...)
 {
 }
@@ -1257,6 +1500,11 @@
 }
 
 static inline void
+GST_FIXME_OBJECT (gpointer obj, const char *format, ...)
+{
+}
+
+static inline void
 GST_ERROR (const char *format, ...)
 {
 }
@@ -1280,13 +1528,27 @@
 GST_LOG (const char *format, ...)
 {
 }
-#endif
-#endif
+
+static inline void
+GST_FIXME (const char *format, ...)
+{
+}
+
+#endif /* G_HAVE_GNUC_VARARGS */
+#endif /* G_HAVE_ISO_VARARGS */
 
 #define GST_DEBUG_FUNCPTR(ptr) (ptr)
 #define GST_DEBUG_FUNCPTR_NAME(ptr) (g_strdup_printf ("%p", ptr))
 
+#define GST_CAT_MEMDUMP_OBJECT(cat,obj,msg,data,length) /* NOP */
+#define GST_CAT_MEMDUMP(cat,msg,data,length)            /* NOP */
+#define GST_MEMDUMP_OBJECT(obj,msg,data,length)         /* NOP */
+#define GST_MEMDUMP(msg,data,length)                    /* NOP */
+
 #endif /* GST_DISABLE_GST_DEBUG */
+#ifdef __SYMBIAN32__
+IMPORT_C
+#endif
 
 
 void gst_debug_print_stack_trace (void);