Stefan Sauer
77ef6000c6
tracer: move prototype to the right header
...
Fixes the build when the tracing subsystem is disabled.
2015-10-06 18:52:38 +02:00
Stefan Sauer
660049bb38
tracing: rename the global api to gst_tracing
...
This makes it more obvious what is the api for tracer elements and what is api
for the global state.
2015-10-05 20:59:39 +02:00
Stefan Sauer
5e2770566f
tracers: eliminate var_args
...
Register tracer hooks as GCallback. Use macros for hook dispatch and cast the
hook functions back to the appropriate type.
2015-10-05 20:59:39 +02:00
Stefan Sauer
4881d1c16c
tracer: use GQuark or strings for the hook id
...
This way one can define new tracing probes without changing the core. We are
using our own quark table, as 1) we only want to initialize them if we're
tracing, 2) we want to share them with the tracers.
2015-10-05 20:59:39 +02:00
Stefan Sauer
1a3e218b89
tracer: simplify hook api
...
Instead of a single invoke() function and a 'mask', register to individual
hooks. This avoids one level of indirection and allows us to remove the
hook enums. The message enms are now renamed to hook enums.
2015-10-05 20:59:39 +02:00
Stefan Sauer
7b24d76260
tracer: drop the HookId hid from the invoke method
...
The MessageId is more detailed and anyway needed to interpret the varargs.
2015-10-05 20:59:39 +02:00
Stefan Sauer
46ea9729df
tracer: split into tracer and tracerutils
...
Keep tracer base class in tracer and move core support into the utils module.
Add a unstable-api guard to the tracer.h so that external modules would need to
acknowledge the status by setting GST_USE_UNSTABLE_API.
2015-10-05 20:59:39 +02:00
Stefan Sauer
7dfc0a8ead
tracers: add a logging helper to remove identical copies from the tracers
2015-10-05 20:59:39 +02:00
Stefan Sauer
2a01088079
tracer: use the same timebase as the logging
2015-10-05 20:59:39 +02:00
Stefan Sauer
ce7ce2d866
tracer: add more hooks and handle it in the plugins
2015-10-05 20:59:39 +02:00
Stefan Sauer
11d6e13d73
tracer: use a macros for the enabled check
...
Avoid a function call and check the variables from the macro.
2015-10-05 20:59:39 +02:00
Stefan Sauer
e08fab7d5f
tracer: use macros for hooks
...
Wrap the hook with a pre and post macro. This looks less intrusive than the
previous version, although it is a little less optimized.
2015-10-05 20:59:39 +02:00
Stefan Sauer
9d3975b5da
tracer: pass the timestamp directly
...
Avoid the structure mashalling (and weird field naming).
2015-10-05 20:59:39 +02:00
Stefan Sauer
c2d5b35332
tracer: pass the instance to the vmethod
2015-10-05 20:59:39 +02:00
Stefan Sauer
764b5833b9
tracer: switch to quarks and add another hook for buffer flow
...
Use pre-defines quarks as this will be called quite often.
2015-10-05 20:59:39 +02:00
Stefan Sauer
68b1473846
tracer: add the hook-id to the invoke signature
...
Tracers that subscribe to multiple hooks can know what hook was used.
2015-10-05 20:59:39 +02:00
Stefan Sauer
4e5d586c7d
tracer: initial prototype for the tracing subsystem
2015-10-05 20:59:39 +02:00