X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gst%2Fgsttrace.h;h=ca70a836799c24163d08d3ea4196c7a0c65671a2;hb=066b515985897495cae32fca5b7eeeec260c40c9;hp=0f99734fea3628063e15a4c5bb9f658b7e18396b;hpb=f6a4af20b2b2b044e5c0b939f97861fc7cca94dd;p=platform%2Fupstream%2Fgstreamer.git diff --git a/gst/gsttrace.h b/gst/gsttrace.h index 0f99734..ca70a83 100644 --- a/gst/gsttrace.h +++ b/gst/gsttrace.h @@ -48,6 +48,7 @@ typedef struct _GstAllocTrace GstAllocTrace; * GstAllocTrace: * @name: The name of the tracing object * @flags: Flags for this object + * @offset: offset of the GType * @live: counter for live memory * @mem_live: list with pointers to unfreed memory * @@ -57,88 +58,20 @@ struct _GstAllocTrace { gchar *name; gint flags; + goffset offset; gint live; GSList *mem_live; }; #ifndef GST_DISABLE_TRACE -typedef struct _GstTrace GstTrace; -typedef struct _GstTraceEntry GstTraceEntry; +GST_EXPORT GMutex _gst_trace_mutex; -/** - * GstTrace: - * - * Opaque #GstTrace structure. - */ -struct _GstTrace { - /*< private >*/ - /* where this trace is going */ - gchar *filename; - int fd; - - /* current buffer, size, head offset */ - GstTraceEntry *buf; - gint bufsize; - gint bufoffset; -}; - -struct _GstTraceEntry { - gint64 timestamp; - guint32 sequence; - guint32 data; - gchar message[112]; -}; - -GstTrace* gst_trace_new (const gchar *filename, gint size); - -void gst_trace_destroy (GstTrace *trace); -void gst_trace_flush (GstTrace *trace); -void gst_trace_text_flush (GstTrace *trace); -/** - * gst_trace_get_size: - * @trace: a #GstTrace - * - * Retrieve the buffer size of @trace. - */ -#define gst_trace_get_size(trace) ((trace)->bufsize) -/** - * gst_trace_get_offset: - * @trace: a #GstTrace - * - * Retrieve the current buffer offset of @trace. - */ -#define gst_trace_get_offset(trace) ((trace)->bufoffset) -/** - * gst_trace_get_remaining: - * @trace: a #GstTrace - * - * Retrieve the remaining size in the @trace buffer. - */ -#define gst_trace_get_remaining(trace) ((trace)->bufsize - (trace)->bufoffset) -void gst_trace_set_default (GstTrace *trace); - -void _gst_trace_add_entry (GstTrace *trace, guint32 seq, - guint32 data, gchar *msg); - -void gst_trace_read_tsc (gint64 *dst); - - -extern GStaticMutex _gst_trace_mutex; - -gboolean gst_alloc_trace_available (void); -const GList* gst_alloc_trace_list (void); -GstAllocTrace* _gst_alloc_trace_register (const gchar *name); - -int gst_alloc_trace_live_all (void); -void gst_alloc_trace_print_all (void); -void gst_alloc_trace_print_live (void); -void gst_alloc_trace_set_flags_all (GstAllocTraceFlags flags); - -GstAllocTrace* gst_alloc_trace_get (const gchar *name); -void gst_alloc_trace_print (const GstAllocTrace *trace); -void gst_alloc_trace_set_flags (GstAllocTrace *trace, GstAllocTraceFlags flags); +void _priv_gst_alloc_trace_initialize (void); +void _priv_gst_alloc_trace_deinit (void); +GstAllocTrace* _priv_gst_alloc_trace_register (const gchar *name, goffset offset); +void _priv_gst_alloc_trace_dump (void); #ifndef GST_DISABLE_ALLOC_TRACE /** @@ -147,7 +80,9 @@ void gst_alloc_trace_set_flags (GstAllocTrace *trace, G * * Register a new alloc tracer with the given name */ -#define gst_alloc_trace_register(name) _gst_alloc_trace_register (name); +#define _gst_alloc_trace_register(name,offset) _priv_gst_alloc_trace_register (name,offset) + +#define _gst_alloc_trace_dump _priv_gst_alloc_trace_dump /** * gst_alloc_trace_new: @@ -156,16 +91,16 @@ void gst_alloc_trace_set_flags (GstAllocTrace *trace, G * * Use the tracer to trace a new memory allocation */ -#define gst_alloc_trace_new(trace, mem) \ +#define _gst_alloc_trace_new(trace, mem) \ G_STMT_START { \ if (G_UNLIKELY ((trace)->flags)) { \ - g_static_mutex_lock (&_gst_trace_mutex); \ + g_mutex_lock (&_gst_trace_mutex); \ if ((trace)->flags & GST_ALLOC_TRACE_LIVE) \ (trace)->live++; \ if ((trace)->flags & GST_ALLOC_TRACE_MEM_LIVE) \ (trace)->mem_live = \ g_slist_prepend ((trace)->mem_live, mem); \ - g_static_mutex_unlock (&_gst_trace_mutex); \ + g_mutex_unlock (&_gst_trace_mutex); \ } \ } G_STMT_END @@ -176,75 +111,32 @@ G_STMT_START { \ * * Trace a memory free operation */ -#define gst_alloc_trace_free(trace, mem) \ +#define _gst_alloc_trace_free(trace, mem) \ G_STMT_START { \ if (G_UNLIKELY ((trace)->flags)) { \ - g_static_mutex_lock (&_gst_trace_mutex); \ + g_mutex_lock (&_gst_trace_mutex); \ if ((trace)->flags & GST_ALLOC_TRACE_LIVE) \ (trace)->live--; \ if ((trace)->flags & GST_ALLOC_TRACE_MEM_LIVE) \ (trace)->mem_live = \ g_slist_remove ((trace)->mem_live, mem); \ - g_static_mutex_unlock (&_gst_trace_mutex); \ + g_mutex_unlock (&_gst_trace_mutex); \ } \ } G_STMT_END #else -#define gst_alloc_trace_register(name) (NULL) -#define gst_alloc_trace_new(trace, mem) -#define gst_alloc_trace_free(trace, mem) +#define _gst_alloc_trace_register(name) (NULL) +#define _gst_alloc_trace_new(trace, mem) +#define _gst_alloc_trace_free(trace, mem) +#define _gst_alloc_trace_dump() #endif - -extern gint _gst_trace_on; -/** - * gst_trace_add_entry: - * @trace: a #GstTrace - * @seq: a sequence number - * @data: the data to trace - * @msg: the trace message - * - * Add an entry to @trace with sequence number @seq, @data and @msg. - * If @trace is NULL, the entry will be added to the default #GstTrace. - */ -#define gst_trace_add_entry(trace,seq,data,msg) \ - if (_gst_trace_on) { \ - _gst_trace_add_entry(trace,(guint32)seq,(guint32)data,msg); \ - } - #else /* GST_DISABLE_TRACE */ -#if defined __GNUC__ && __GNUC__ >= 3 -#pragma GCC poison gst_trace_new -#pragma GCC poison gst_trace_destroy -#pragma GCC poison gst_trace_flush -#pragma GCC poison gst_trace_text_flush -#pragma GCC poison gst_trace_get_size -#pragma GCC poison gst_trace_get_offset -#pragma GCC poison gst_trace_get_remaining -#pragma GCC poison gst_trace_set_default -#pragma GCC poison _gst_trace_add_entry -#pragma GCC poison gst_trace_read_tsc -#endif - -#define gst_alloc_trace_register(name) (NULL) -#define gst_alloc_trace_new(trace, mem) -#define gst_alloc_trace_free(trace, mem) - -#define gst_alloc_trace_available() (FALSE) -#define gst_alloc_trace_list() (NULL) -#define _gst_alloc_trace_register(name) (NULL) - -#define gst_alloc_trace_live_all() (0) -#define gst_alloc_trace_print_all() -#define gst_alloc_trace_print_live() -#define gst_alloc_trace_set_flags_all(flags) - -#define gst_alloc_trace_get(name) (NULL) -#define gst_alloc_trace_print(trace) -#define gst_alloc_trace_set_flags(trace,flags) - -#define gst_trace_add_entry(trace,seq,data,msg) +#define _gst_alloc_trace_register(name, offset) (NULL) +#define _gst_alloc_trace_new(trace, mem) +#define _gst_alloc_trace_free(trace, mem) +#define _gst_alloc_trace_dump() #endif /* GST_DISABLE_TRACE */