| GStreamer 0.10 Core Reference Manual | ||||
|---|---|---|---|---|
#include <gst/gst.h>
GstTrace;
GstTrace* gst_trace_new (gchar *filename,
gint size);
void gst_trace_destroy (GstTrace *trace);
void gst_trace_flush (GstTrace *trace);
void gst_trace_text_flush (GstTrace *trace);
#define gst_trace_add_entry (trace,seq,data,msg)
#define gst_trace_get_size (trace)
#define gst_trace_get_offset (trace)
#define gst_trace_get_remaining (trace)
void gst_trace_set_default (GstTrace *trace);
void gst_trace_read_tsc (gint64 *dst);
enum GstAllocTraceFlags;
GstAllocTrace;
gboolean gst_alloc_trace_available (void);
const GList* gst_alloc_trace_list (void);
int gst_alloc_trace_live_all (void);
void gst_alloc_trace_print_all (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_print_live (void);
void gst_alloc_trace_set_flags (GstAllocTrace *trace,
GstAllocTraceFlags flags);
#define gst_alloc_trace_register (name)
#define gst_alloc_trace_new (trace, mem)
#define gst_alloc_trace_free (trace, mem)
Traces allows to track object allocation. They provide a instance counter per GType. The counter is incremented for each object allocated and decremented it when it's freed.
Example 1. Tracing object instances
// trace un-freed object instances
gst_alloc_trace_set_flags_all (GST_ALLOC_TRACE_LIVE);
if (!gst_alloc_trace_available ()) {
g_warning ("Trace not available (recompile with trace enabled).");
}
gst_alloc_trace_print_live ();
// do something here
gst_alloc_trace_print_live ();
Last reviewed on 2005-11-21 (0.9.5)
GstTrace* gst_trace_new (gchar *filename, gint size);
Create a ringbuffer of size in the file with filename to store trace results in.
| filename : | a filename |
| size : | the max size of the file |
| Returns : | a new GstTrace. |
void gst_trace_destroy (GstTrace *trace);
Flush an close the previously allocated trace.
| trace : | the GstTrace to destroy |
void gst_trace_flush (GstTrace *trace);
Flush any pending trace entries in trace to the trace file. trace can be NULL in which case the default GstTrace will be flushed.
| trace : | the GstTrace to flush. |
void gst_trace_text_flush (GstTrace *trace);
Flush any pending trace entries in trace to the trace file, formatted as a text line with timestamp and sequence numbers. trace can be NULL in which case the default GstTrace will be flushed.
| trace : | the GstTrace to flush. |
#define gst_trace_add_entry(trace,seq,data,msg)
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.
| trace : | a GstTrace |
| seq : | a sequence number |
| data : | the data to trace |
| msg : | the trace message |
#define gst_trace_get_size(trace) ((trace)->bufsize)
Retrieve the buffer size of trace.
| trace : | a GstTrace |
#define gst_trace_get_offset(trace) ((trace)->bufoffset)
Retrieve the current buffer offset of trace.
| trace : | a GstTrace |
#define gst_trace_get_remaining(trace) ((trace)->bufsize - (trace)->bufoffset)
Retrieve the remaining size in the trace buffer.
| trace : | a GstTrace |
void gst_trace_set_default (GstTrace *trace);
Set the default GstTrace to trace.
| trace : | the GstTrace to set as the default. |
void gst_trace_read_tsc (gint64 *dst);
Read a platform independent timer value that can be used in benchmarks.
| dst : | pointer to hold the result. |
typedef enum {
GST_ALLOC_TRACE_LIVE = (1 << 0),
GST_ALLOC_TRACE_MEM_LIVE = (1 << 1)
} GstAllocTraceFlags;
Flags indicating which tracing feature to enable.
typedef struct {
gchar *name;
gint flags;
gint live;
GSList *mem_live;
} GstAllocTrace;
The main tracing object
| gchar *name; | The name of the tracing object |
| gint flags; | Flags for this object |
| gint live; | counter for live memory |
| GSList *mem_live; | list with pointers to unfreed memory |
gboolean gst_alloc_trace_available (void);
Check if alloc tracing was compiled into the core
| Returns : | TRUE if the core was compiled with alloc tracing enabled. |
const GList* gst_alloc_trace_list (void);
Get a list of all registered alloc trace objects.
| Returns : | a GList of GstAllocTrace objects. |
int gst_alloc_trace_live_all (void);
Get the total number of live registered alloc trace objects.
| Returns : | the total number of live registered alloc trace objects. |
void gst_alloc_trace_print_all (void);
Print the status of all registered alloc trace objects.
void gst_alloc_trace_set_flags_all (GstAllocTraceFlags flags);
Enable the specified options on all registered alloc trace objects.
| flags : | the options to enable |
GstAllocTrace* gst_alloc_trace_get (const gchar *name);
Get the named alloc trace object.
| name : | the name of the alloc trace object |
| Returns : | a GstAllocTrace with the given name or NULL when no alloc tracer was registered with that name. |
void gst_alloc_trace_print (const GstAllocTrace *trace);
Print the status of the given GstAllocTrace.
| trace : | the GstAllocTrace to print |
void gst_alloc_trace_print_live (void);
Print the status of all registered alloc trace objects, ignoring those without live objects.
void gst_alloc_trace_set_flags (GstAllocTrace *trace, GstAllocTraceFlags flags);
Enable the given features on the given GstAllocTrace object.
| trace : | the GstAllocTrace |
| flags : | flags to set |
#define gst_alloc_trace_register(name)
Register a new alloc tracer with the given name
| name : | The name of the tracer object |
#define gst_alloc_trace_new(trace, mem)
Use the tracer to trace a new memory allocation
| trace : | The tracer to use |
| mem : | The memory allocated |