element: Enforce that elements created by gst_element_factory_create/make() are floating
[platform/upstream/gstreamer.git] / gst / gsttracer.h
index 6c96a0f..1d2726d 100644 (file)
 #ifndef __GST_TRACER_H__
 #define __GST_TRACER_H__
 
-#ifndef GST_USE_UNSTABLE_API
-#warning "The tracer subsystem is unstable API and may change in future."
-#warning "You can define GST_USE_UNSTABLE_API to avoid this warning."
-#endif
-
 #include <glib.h>
 #include <glib-object.h>
+#include <gst/gstobject.h>
 #include <gst/gstconfig.h>
-#include <gst/gsttracerutils.h>
 
 G_BEGIN_DECLS
 
@@ -53,24 +48,33 @@ struct _GstTracer {
   gpointer _gst_reserved[GST_PADDING];
 };
 
-typedef void (*GstTracerInvokeFunction) (GstTracer * self, 
-    GstTracerMessageId mid, va_list var_args);
-
 struct _GstTracerClass {
   GstObjectClass parent_class;
-  
-  /* plugin vmethods */
-  GstTracerInvokeFunction invoke;
-  
+
   /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
 };
 
-void gst_tracer_invoke (GstTracer * self, GstTracerMessageId mid, 
-    va_list var_args);
-
+GST_API
 GType gst_tracer_get_type          (void);
 
+#ifdef GST_USE_UNSTABLE_API
+
+GST_API
+void gst_tracing_register_hook (GstTracer *tracer, const gchar *detail,
+  GCallback func);
+
+/* tracing modules */
+
+GST_API
+gboolean gst_tracer_register (GstPlugin * plugin, const gchar * name, GType type);
+
+#endif
+
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstTracer, gst_object_unref)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_TRACER_H__ */