GstTracer

GstTracer — Tracing base class

Synopsis

#include <gst/gst.h>

struct              GstTracer;
gboolean            gst_tracer_register                 (GstPlugin *plugin,
                                                         const gchar *name,
                                                         GType type);
void                gst_tracing_register_hook           (GstTracer *tracer,
                                                         const gchar *detail,
                                                         GCallback func);
void                (*GstTracerHookBinAddPost)          (GObject *self,
                                                         GstClockTime ts,
                                                         GstBin *bin,
                                                         GstElement *element,
                                                         gboolean result);
void                (*GstTracerHookBinAddPre)           (GObject *self,
                                                         GstClockTime ts,
                                                         GstBin *bin,
                                                         GstElement *element);
void                (*GstTracerHookBinRemovePost)       (GObject *self,
                                                         GstClockTime ts,
                                                         GstBin *bin,
                                                         gboolean result);
void                (*GstTracerHookBinRemovePre)        (GObject *self,
                                                         GstClockTime ts,
                                                         GstBin *bin,
                                                         GstElement *element);
void                (*GstTracerHookElementAddPad)       (GObject *self,
                                                         GstClockTime ts,
                                                         GstElement *element,
                                                         GstPad *pad);
void                (*GstTracerHookElementChangeStatePost)
                                                        (GObject *self,
                                                         GstClockTime ts,
                                                         GstElement *element,
                                                         GstStateChange transition,
                                                         GstStateChangeReturn result);
void                (*GstTracerHookElementChangeStatePre)
                                                        (GObject *self,
                                                         GstClockTime ts,
                                                         GstElement *element,
                                                         GstStateChange transition);
void                (*GstTracerHookElementNew)          (GObject *self,
                                                         GstClockTime ts,
                                                         GstElement *element);
void                (*GstTracerHookElementPostMessagePost)
                                                        (GObject *self,
                                                         GstClockTime ts,
                                                         GstElement *element,
                                                         gboolean res);
void                (*GstTracerHookElementPostMessagePre)
                                                        (GObject *self,
                                                         GstClockTime ts,
                                                         GstElement *element,
                                                         GstMessage *message);
void                (*GstTracerHookElementQueryPost)    (GObject *self,
                                                         GstClockTime ts,
                                                         GstElement *element,
                                                         GstQuery *query,
                                                         gboolean res);
void                (*GstTracerHookElementQueryPre)     (GObject *self,
                                                         GstClockTime ts,
                                                         GstElement *element,
                                                         GstQuery *query);
void                (*GstTracerHookElementRemovePad)    (GObject *self,
                                                         GstClockTime ts,
                                                         GstElement *element,
                                                         GstPad *pad);
void                (*GstTracerHookPadLinkPost)         (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *srcpad,
                                                         GstPad *sinkpad,
                                                         GstPadLinkReturn result);
void                (*GstTracerHookPadLinkPre)          (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *srcpad,
                                                         GstPad *sinkpad);
void                (*GstTracerHookPadPullRangePost)    (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *pad,
                                                         GstBuffer *buffer,
                                                         GstFlowReturn res);
void                (*GstTracerHookPadPullRangePre)     (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *pad,
                                                         guint64 offset,
                                                         guint size);
void                (*GstTracerHookPadPushEventPost)    (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *pad,
                                                         gboolean res);
void                (*GstTracerHookPadPushEventPre)     (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *pad,
                                                         GstEvent *event);
void                (*GstTracerHookPadPushListPost)     (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *pad,
                                                         GstFlowReturn res);
void                (*GstTracerHookPadPushListPre)      (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *pad,
                                                         GstBufferList *list);
void                (*GstTracerHookPadPushPost)         (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *pad,
                                                         GstFlowReturn res);
void                (*GstTracerHookPadPushPre)          (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *pad,
                                                         GstBuffer *buffer);
void                (*GstTracerHookPadQueryPost)        (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *pad,
                                                         GstQuery *query,
                                                         gboolean res);
void                (*GstTracerHookPadQueryPre)         (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *pad,
                                                         GstQuery *query);
void                (*GstTracerHookPadUnlinkPost)       (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *srcpad,
                                                         GstPad *sinkpad,
                                                         gboolean result);
void                (*GstTracerHookPadUnlinkPre)        (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *srcpad,
                                                         GstPad *sinkpad);

Object Hierarchy

  GObject
   +----GInitiallyUnowned
         +----GstObject
               +----GstTracer

Properties

  "params"                   gchar*                : Read / Write / Construct

Description

Tracing modules will subclass GstTracer and register through gst_tracing_register(). Modules can attach to various hook-types - see gst_tracing_register_hook(). When invoked they receive hook specific contextual data, which they must not modify.

Details

struct GstTracer

struct GstTracer;

gst_tracer_register ()

gboolean            gst_tracer_register                 (GstPlugin *plugin,
                                                         const gchar *name,
                                                         GType type);

Create a new tracer-factory capable of instantiating objects of the type and add the factory to plugin.

plugin :

A GstPlugin, or NULL for a static typefind function. [allow-none]

name :

The name for registering

type :

GType of tracer to register

Returns :

TRUE, if the registering succeeded, FALSE on error

gst_tracing_register_hook ()

void                gst_tracing_register_hook           (GstTracer *tracer,
                                                         const gchar *detail,
                                                         GCallback func);

Register func to be called when the trace hook detail is getting invoked. Use NULL for detail to register to all hooks.

tracer :

the tracer

detail :

the detailed hook

func :

the callback. [scope async]

GstTracerHookBinAddPost ()

void                (*GstTracerHookBinAddPost)          (GObject *self,
                                                         GstClockTime ts,
                                                         GstBin *bin,
                                                         GstElement *element,
                                                         gboolean result);

Post-hook for gst_bin_add() named "bin-add-post".

self :

the tracer instance

ts :

the current timestamp

bin :

the bin

element :

the element

result :

the result of gst_bin_add()

GstTracerHookBinAddPre ()

void                (*GstTracerHookBinAddPre)           (GObject *self,
                                                         GstClockTime ts,
                                                         GstBin *bin,
                                                         GstElement *element);

Pre-hook for gst_bin_add() named "bin-add-pre".

self :

the tracer instance

ts :

the current timestamp

bin :

the bin

element :

the element

GstTracerHookBinRemovePost ()

void                (*GstTracerHookBinRemovePost)       (GObject *self,
                                                         GstClockTime ts,
                                                         GstBin *bin,
                                                         gboolean result);

Post-hook for gst_bin_remove() named "bin-remove-post".

self :

the tracer instance

ts :

the current timestamp

bin :

the bin

result :

the result of gst_bin_remove()

GstTracerHookBinRemovePre ()

void                (*GstTracerHookBinRemovePre)        (GObject *self,
                                                         GstClockTime ts,
                                                         GstBin *bin,
                                                         GstElement *element);

Pre-hook for gst_bin_remove() named "bin-remove-pre".

self :

the tracer instance

ts :

the current timestamp

bin :

the bin

element :

the element

GstTracerHookElementAddPad ()

void                (*GstTracerHookElementAddPad)       (GObject *self,
                                                         GstClockTime ts,
                                                         GstElement *element,
                                                         GstPad *pad);

Hook for gst_element_add_pad() named "element-add-pad".

self :

the tracer instance

ts :

the current timestamp

element :

the element

pad :

the pad

GstTracerHookElementChangeStatePost ()

void                (*GstTracerHookElementChangeStatePost)
                                                        (GObject *self,
                                                         GstClockTime ts,
                                                         GstElement *element,
                                                         GstStateChange transition,
                                                         GstStateChangeReturn result);

Post-hook for gst_element_change_state() named "element-change-state-post".

self :

the tracer instance

ts :

the current timestamp

element :

the element

transition :

the transition

result :

the result of gst_pad_push()

GstTracerHookElementChangeStatePre ()

void                (*GstTracerHookElementChangeStatePre)
                                                        (GObject *self,
                                                         GstClockTime ts,
                                                         GstElement *element,
                                                         GstStateChange transition);

Pre-hook for gst_element_change_state() named "element-change-state-pre".

self :

the tracer instance

ts :

the current timestamp

element :

the element

transition :

the transition

GstTracerHookElementNew ()

void                (*GstTracerHookElementNew)          (GObject *self,
                                                         GstClockTime ts,
                                                         GstElement *element);

Hook for gst_element_new() named "element-new".

self :

the tracer instance

ts :

the current timestamp

element :

the element

GstTracerHookElementPostMessagePost ()

void                (*GstTracerHookElementPostMessagePost)
                                                        (GObject *self,
                                                         GstClockTime ts,
                                                         GstElement *element,
                                                         gboolean res);

Pre-hook for gst_element_post_message() named "element-post-message-post".

self :

the tracer instance

ts :

the current timestamp

element :

the element

res :

the result of gst_element_post_message()

GstTracerHookElementPostMessagePre ()

void                (*GstTracerHookElementPostMessagePre)
                                                        (GObject *self,
                                                         GstClockTime ts,
                                                         GstElement *element,
                                                         GstMessage *message);

Pre-hook for gst_element_post_message() named "element-post-message-pre".

self :

the tracer instance

ts :

the current timestamp

element :

the element

message :

the message

GstTracerHookElementQueryPost ()

void                (*GstTracerHookElementQueryPost)    (GObject *self,
                                                         GstClockTime ts,
                                                         GstElement *element,
                                                         GstQuery *query,
                                                         gboolean res);

Post-hook for gst_element_query() named "element-query-post".

self :

the tracer instance

ts :

the current timestamp

element :

the element

query :

the query

res :

the result of gst_element_query()

GstTracerHookElementQueryPre ()

void                (*GstTracerHookElementQueryPre)     (GObject *self,
                                                         GstClockTime ts,
                                                         GstElement *element,
                                                         GstQuery *query);

Pre-hook for gst_element_query() named "element-query-pre".

self :

the tracer instance

ts :

the current timestamp

element :

the element

query :

the query

GstTracerHookElementRemovePad ()

void                (*GstTracerHookElementRemovePad)    (GObject *self,
                                                         GstClockTime ts,
                                                         GstElement *element,
                                                         GstPad *pad);

Hook for gst_element_remove_pad() named "element-remove-pad".

self :

the tracer instance

ts :

the current timestamp

element :

the element

pad :

the pad

GstTracerHookPadLinkPost ()

void                (*GstTracerHookPadLinkPost)         (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *srcpad,
                                                         GstPad *sinkpad,
                                                         GstPadLinkReturn result);

Post-hook for gst_pad_link() named "pad-link-post".

self :

the tracer instance

ts :

the current timestamp

srcpad :

the srcpad

sinkpad :

the sinkpad

result :

the result of gst_pad_link()

GstTracerHookPadLinkPre ()

void                (*GstTracerHookPadLinkPre)          (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *srcpad,
                                                         GstPad *sinkpad);

Pre-hook for gst_pad_link() named "pad-link-pre".

self :

the tracer instance

ts :

the current timestamp

srcpad :

the srcpad

sinkpad :

the sinkpad

GstTracerHookPadPullRangePost ()

void                (*GstTracerHookPadPullRangePost)    (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *pad,
                                                         GstBuffer *buffer,
                                                         GstFlowReturn res);

Post-hook for gst_pad_pull_range() named "pad-pull-range-post".

self :

the tracer instance

ts :

the current timestamp

pad :

the pad

buffer :

the buffer

res :

the result of gst_pad_pull_range()

GstTracerHookPadPullRangePre ()

void                (*GstTracerHookPadPullRangePre)     (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *pad,
                                                         guint64 offset,
                                                         guint size);

Pre-hook for gst_pad_pull_range() named "pad-pull-range-pre".

self :

the tracer instance

ts :

the current timestamp

pad :

the pad

offset :

the stream offset

size :

the requested size

GstTracerHookPadPushEventPost ()

void                (*GstTracerHookPadPushEventPost)    (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *pad,
                                                         gboolean res);

Post-hook for gst_pad_push_event() named "pad-push-event-post".

self :

the tracer instance

ts :

the current timestamp

pad :

the pad

res :

the result of gst_pad_push_event()

GstTracerHookPadPushEventPre ()

void                (*GstTracerHookPadPushEventPre)     (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *pad,
                                                         GstEvent *event);

Pre-hook for gst_pad_push_event() named "pad-push-event-pre".

self :

the tracer instance

ts :

the current timestamp

pad :

the pad

event :

the event

GstTracerHookPadPushListPost ()

void                (*GstTracerHookPadPushListPost)     (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *pad,
                                                         GstFlowReturn res);

Post-hook for gst_pad_push_list() named "pad-push-list-post".

self :

the tracer instance

ts :

the current timestamp

pad :

the pad

res :

the result of gst_pad_push_list()

GstTracerHookPadPushListPre ()

void                (*GstTracerHookPadPushListPre)      (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *pad,
                                                         GstBufferList *list);

Pre-hook for gst_pad_push_list() named "pad-push-list-pre".

self :

the tracer instance

ts :

the current timestamp

pad :

the pad

list :

the buffer-list

GstTracerHookPadPushPost ()

void                (*GstTracerHookPadPushPost)         (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *pad,
                                                         GstFlowReturn res);

Post-hook for gst_pad_push() named "pad-push-post".

self :

the tracer instance

ts :

the current timestamp

pad :

the pad

res :

the result of gst_pad_push()

GstTracerHookPadPushPre ()

void                (*GstTracerHookPadPushPre)          (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *pad,
                                                         GstBuffer *buffer);

Pre-hook for gst_pad_push() named "pad-push-pre".

self :

the tracer instance

ts :

the current timestamp

pad :

the pad

buffer :

the buffer

GstTracerHookPadQueryPost ()

void                (*GstTracerHookPadQueryPost)        (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *pad,
                                                         GstQuery *query,
                                                         gboolean res);

Post-hook for gst_pad_query() named "pad-query-post".

self :

the tracer instance

ts :

the current timestamp

pad :

the pad

query :

the query

res :

the result of gst_pad_query()

GstTracerHookPadQueryPre ()

void                (*GstTracerHookPadQueryPre)         (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *pad,
                                                         GstQuery *query);

Pre-hook for gst_pad_query() named "pad-query-pre".

self :

the tracer instance

ts :

the current timestamp

pad :

the pad

query :

the query

GstTracerHookPadUnlinkPost ()

void                (*GstTracerHookPadUnlinkPost)       (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *srcpad,
                                                         GstPad *sinkpad,
                                                         gboolean result);

Post-hook for gst_pad_unlink() named "pad-unlink-post".

self :

the tracer instance

ts :

the current timestamp

srcpad :

the srcpad

sinkpad :

the sinkpad

result :

the result of gst_pad_push()

GstTracerHookPadUnlinkPre ()

void                (*GstTracerHookPadUnlinkPre)        (GObject *self,
                                                         GstClockTime ts,
                                                         GstPad *srcpad,
                                                         GstPad *sinkpad);

Pre-hook for gst_pad_unlink() named "pad-unlink-pre".

self :

the tracer instance

ts :

the current timestamp

srcpad :

the srcpad

sinkpad :

the sinkpad

Property Details

The "params" property

  "params"                   gchar*                : Read / Write / Construct

Extra configuration parameters.

Default value: NULL