|  |  |  | GStreamer 0.10 Core Reference Manual |  | 
|---|---|---|---|---|
| Top | Description | ||||
#include <gst/gst.h>
                    GstTrace;
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);
#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 18. Tracing object instances
| 1 2 3 4 5 6 7 8 | // 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 (const gchar *filename,gint size);
Create a ringbuffer of size in the file with filename to 
store trace results in.
| 
 | a filename | 
| 
 | the max size of the file | 
| Returns : | a new GstTrace. | 
void                gst_trace_destroy                   (GstTrace *trace);
Flush an close the previously allocated 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.
| 
 | 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.
| 
 | 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.
| 
 | a GstTrace | 
| 
 | a sequence number | 
| 
 | the data to trace | 
| 
 | the trace message | 
#define gst_trace_get_size(trace) ((trace)->bufsize)
Retrieve the buffer size of trace.
| 
 | a GstTrace | 
#define gst_trace_get_offset(trace) ((trace)->bufoffset)
Retrieve the current buffer offset of trace.
| 
 | a GstTrace | 
#define gst_trace_get_remaining(trace) ((trace)->bufsize - (trace)->bufoffset)
Retrieve the remaining size in the trace buffer.
| 
 | a GstTrace | 
void                gst_trace_set_default               (GstTrace *trace);
Set the default GstTrace to 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.
| 
 | 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
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.
| 
 | the options to enable | 
GstAllocTrace*      gst_alloc_trace_get                 (const gchar *name);
Get the named alloc trace object.
| 
 | 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.
| 
 | 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.
| 
 | the GstAllocTrace | 
| 
 | flags to set | 
#define gst_alloc_trace_register(name)
Register a new alloc tracer with the given name
| 
 | The name of the tracer object | 
#define gst_alloc_trace_new(trace, mem)
Use the tracer to trace a new memory allocation
| 
 | The tracer to use | 
| 
 | The memory allocated |