Nicolas Dufresne
e1be065293
tracers: log: Fix post query trace
...
The post tracer hooks have a GstQuery argument which was truncated from
the trace. As the post hook is the one that contains the useful data,
this bug was hiding the important information from that trace.
2018-11-06 15:41:01 -05:00
Matthew Waters
874ad5faca
meson: generate pkg-config files for our plugins
2018-11-05 15:18:41 +00:00
Nirbheek Chauhan
38ec95460f
meson: Don't add static printf library to executables
...
They should only need to link to libgstreamer.
2018-07-25 16:02:06 +05:30
Nirbheek Chauhan
4fb02fc85b
meson: Update option names to omit disable_ and with- prefixes
...
Also yield common options to the outer project (gst-build in our case)
so that they don't have to be set manually.
2018-05-05 20:30:43 +05:30
luz.paz
4a402c1c7d
Fix typos in comments and docs
...
Found via `codespell`
https://bugzilla.gnome.org/show_bug.cgi?id=795610
2018-05-01 11:18:03 +01:00
Matthew Waters
7fad93d035
tracers: latency: allow for non parented pads to send latency probes
...
Such a setup is used in rtspsrc for its TCP connection
https://bugzilla.gnome.org/show_bug.cgi?id=793478
2018-02-16 13:14:40 +00:00
Matthew Waters
a0400a0d28
docs: include tracers in the documentation
...
Requires exposing the tracer GType from the GstTracerFactory in order
to link the plugin with the tracer in the documentation.
https://bugzilla.gnome.org/show_bug.cgi?id=791253
2017-12-14 14:46:46 +11:00
Tim-Philipp Müller
e04c6694f1
tracers: log: no need to link to our internal printf implementation
...
The call to __gst_vasprintf() was removed in commit 1a3e218b8
.
2017-11-26 11:14:01 +00:00
Guillaume Desmottes
4670036691
latency tracer: add timestamp to tracer records
...
Include the timestamp of the recorded log as in the 'stats' tracer.
This can be useful, for example, to plot a graph showing the latency
over time.
https://bugzilla.gnome.org/show_bug.cgi?id=781315
2017-11-04 13:51:00 -04:00
Mathieu Duponchelle
f911fe4314
gstleaks.c: always log leaks listing
...
https://bugzilla.gnome.org/show_bug.cgi?id=789556
2017-11-02 14:53:48 +01:00
Nicolas Dufresne
41e35c334b
latency-tracer: Exclude synchronization time
...
The goal of this tracer is to measure the processing latency between a
src and a sink. In push mode, the time was read after the chain function
have returned. As the amount of time we wait to get synched is reverse
to the amount of latency the source introduced, the result was quite
surprising.
This patch moves the latency calculation in the pre-push hook. When
there is no processing in a a pipeline (e.g. fakesrc ! fakesink), the
latency will now be 0 as it's supposed to. For pull mode, the code was
already correct. When GstBaseSink operate in pull mode, the processing
time is done durring the pull, so pull-post is the right hook. The
synchronization will happen after the pull has ended. Note that
GstBaseSink rarely operate in pull mode.
https://bugzilla.gnome.org/show_bug.cgi?id=788431
2017-10-30 15:33:15 -04:00
Thibault Saunier
bd73551cc0
leaks: Handle subclasses in filters even for unhandled/lazy loaded types
...
Using typename in the set of unhandled types instead of the quark so
that we also handle subclasses as with other filters.
2017-05-20 15:42:16 +02:00
Nicolas Dufresne
d143af2c77
Remove plugin specific static build option
...
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 13:29:38 -04:00
Stefan Sauer
a5246f91af
gstrusage: explicitly register to hooks
...
We were attaching to any probe point to take rusage samples. The new refcount
hooks are called way too frequently though to make this still feasible.
2016-12-21 22:19:51 +01:00
Nirbheek Chauhan
97f39cae63
meson: Derive defines from header/function names
...
This is what Autoconf already does for us, so just do this. Avoids
people making typos while adding header or function checks. Because we
use a config.h.meson, such typos won't even be noticed.
Also, starting from Meson 0.36.0, the XCode 8 workaround that we use for
clock_gettime is no longer needed.
2016-12-21 23:51:36 +05:30
Stefan Sauer
11cc260448
latency: the latency is not an aggregated value
...
The logged latencies are individual meassurements.
2016-12-20 21:07:14 +01:00
Thibault Saunier
29f0a79880
leaks: Allow user to set the flags to use to retrieve stack traces
...
https://bugzilla.gnome.org/show_bug.cgi?id=775541
2016-12-20 15:29:10 -03:00
Thibault Saunier
30133909ce
leaks: Allow tracing Gst(Mini)Object reffing operations
...
It makes it much simpler to later debug refcount issues.
https://bugzilla.gnome.org/show_bug.cgi?id=775541
2016-12-20 15:29:10 -03:00
Thibault Saunier
32b17a8f3d
leaks: Allow passing a GstStructure to configure the tracer
...
But keep understanding the simple synthax with a comma separated
list of filters
https://bugzilla.gnome.org/show_bug.cgi?id=775541
2016-12-20 15:29:10 -03:00
Stefan Sauer
1bfd04a5fe
tracers/stats: log optional fields instead of GST_CLOCK_TIME_NONE
...
Simplify the traces and avoid trace analyzer to know that ((1<<64) - 1) means
we had no value.
2016-12-16 15:55:21 +01:00
Thibault Saunier
33616d47be
info: Add a 'flags' parametter to gst_debug_get_stack_trace
...
This is an API break but that API has not been released yet.
We are passing a flag rather than a simple boolean as we can imagine
to implement more features in the future for example to retrieve a
stack trace for all the threads, etc..
Retrieving source file and line numbers is pretty
expensive while getting a stack trace, this new argument
allows the user to decide to retrieve a backtrace
without those infos instead which is much faster.
For example running $ GST_LEAKS_TRACER_STACK_TRACE=1 GST_DEBUG=GST_TRACER:7 \
GST_TRACERS=leaks time gst-launch-1.0 videotestsrc num-buffers=1 ! fakesink:
* With simple stack traces:
0.04s user 0.02s system 99% cpu 0.060 total
* With full stack traces:
0.66s user 0.23s system 96% cpu 0.926 total
https://bugzilla.gnome.org/show_bug.cgi?id=775423
2016-12-12 15:06:20 -03:00
Thibault Saunier
16bd0e7bac
meson: Fix build
2016-12-09 19:31:51 -03:00
Thibault Saunier
bd5d43e8f9
meson: Support building with Gst debug disabled
2016-12-09 17:57:10 -03:00
Stefan Sauer
a25453c2c6
tracers/log: log more detail
...
Log the objects like we would in GST_TRACE_OBJECT. Add the hook function into
the fucntion field.
2016-12-08 22:03:19 +01:00
Stefan Sauer
8d819a51b8
tracer/log: fix hook prototype
...
s/GstElement/GstPad/
2016-12-08 22:02:17 +01:00
Stefan Sauer
cfb6c7d4f5
tracer/latency: clear qdata
...
When reading the qdata, clear it to avoid it being read and unreffed again.
Fixes #774332
2016-12-07 21:53:49 +01:00
Stefan Sauer
788c0d220a
tracers/log: log messages in message category
2016-12-04 12:15:54 +01:00
Thibault Saunier
85179a674f
tracers: leaks: Use the new gst_debug_get_stack_trace
...
And remove the local implementation of it.
https://bugzilla.gnome.org/show_bug.cgi?id=772555
2016-11-04 14:22:05 -03:00
Thibault Saunier
a8d4857555
gst: Use libunwind/libdw to generate backtraces if avalaible
...
Making the gst_debug_print_trace function more generally useful.
API:
+ gst_debug_get_trace
https://bugzilla.gnome.org/show_bug.cgi?id=772555
2016-11-04 14:22:05 -03:00
Thibault Saunier
2c6dd70217
stats: Fix warning
2016-10-14 17:30:01 +02:00
Vincent Penquerc'h
18d5d118ab
tracers: fix structure leak
...
https://bugzilla.gnome.org/show_bug.cgi?id=772851
2016-10-13 13:06:40 +01:00
Stefan Sauer
ede686c39b
tracer/rusage: fix format string args
...
The format string contains a process id, but we did not provice one. This
caused us to log garbage since all args got shifted.
2016-10-08 13:22:23 +02:00
Tim-Philipp Müller
9791669ac3
meson: tracers: signal availability of libunwind and backtrace() to code
...
Not setting cdata here on purpose because of .. complications.
2016-09-27 18:24:02 +01:00
Thibault Saunier
c4aed66eff
meson: Build tracers
2016-09-26 18:27:00 -03:00
Guillaume Desmottes
714ea37282
tracers: leaks: update type filter later for unknown types
...
This allow us to filter using an object type which is implemented
by a plugin like, say, GstGtkGLSink.
https://bugzilla.gnome.org/show_bug.cgi?id=768989
2016-07-20 14:14:48 +01:00
Guillaume Desmottes
59885c2a92
leaks: check return values of libunwind calls
2016-07-11 12:44:19 +01:00
Guillaume Desmottes
9ba53ff1fc
leaks: warn if object is destroyed while the tracer is disposing
...
This should not happen and generally means some thread is still running.
https://bugzilla.gnome.org/show_bug.cgi?id=768578
2016-07-08 17:35:30 +01:00
Guillaume Desmottes
1ed4140d00
leaks tracer: use G_OS_UNIX to check for signal support
...
Checking for signal.h is not good enough as it's present in Windows.
Those signals are UNIX specific anyway.
https://bugzilla.gnome.org/show_bug.cgi?id=767857
2016-07-08 12:38:46 +03:00
Guillaume Desmottes
17c37efa83
leaks tracer: add creation stack trace support
...
This allow us to provide the trace of leaked objects making it easier
to debug.
https://bugzilla.gnome.org/show_bug.cgi?id=767862
2016-07-08 12:07:53 +03:00
Guillaume Desmottes
3bb5c1e73a
leaks tracer: add checkpoint support using SIGUSR2
...
https://bugzilla.gnome.org/show_bug.cgi?id=767857
2016-07-08 11:23:43 +03:00
Guillaume Desmottes
53d2e8c977
leaks tracer: log alive objects when receiving SIGUSR1
...
We don't want to automatically catch signals so use an env variable to
enable this feature.
https://bugzilla.gnome.org/show_bug.cgi?id=767857
2016-07-08 11:23:38 +03:00
Tim-Philipp Müller
6446a1a45c
tracers: leaks: some micro-optimisations
...
- we know number of filter items is not going to change,
but compiler doesn't
- only do GST_IS_TRACER check for GObjects, not mini objects
- use non-type check cast macros in performance critical paths
2016-06-03 14:03:25 +01:00
Guillaume Desmottes
0bb7fa9855
tracers: add leaks tracer
...
https://bugzilla.gnome.org/show_bug.cgi?id=765052
2016-06-03 00:36:46 +01:00
Guillaume Desmottes
e0757e1d80
rusage: properly free the queue memory
...
The queue is allocated as part of the tracer struct so we should not
use g_queue_free() to free it.
https://bugzilla.gnome.org/show_bug.cgi?id=764985
2016-04-13 12:40:41 +03:00
Stefan Sauer
ec75b68984
tracerrecord: don't leak the spec structures
...
Change the gst_tracer_record_new() api to take the parameters the make the
spec structure directly. This allows us to own the top-level structure and
also collect the args so that we can take ownership of the sub-structures.
https://bugzilla.gnome.org/show_bug.cgi?id=760821
2016-01-22 10:07:26 +01:00
Stefan Sauer
f69382c5f9
tracer/gststats: fix mismatch between '.class' and tracer args
...
Clean up from the recent changes. The logging descriptiors did not match what we logged.
2016-01-20 09:14:12 +01:00
Tim-Philipp Müller
8641d7c911
tracers: fix thread-id casts to 64-bit ints on 32-bit systems
...
https://bugzilla.gnome.org/show_bug.cgi?id=760762
2016-01-18 11:28:28 +00:00
Stefan Sauer
84554af301
tracer/stats: use the right log template
...
When porting we used the wrong record (copy and paste).
2016-01-16 21:23:10 +01:00
Stefan Sauer
af91d23204
tracer: use the new flags to create the optional field in the format string
...
This spares us explicitly listing the field in the spec. and thus hide this
implementation detail.
2016-01-16 19:21:00 +01:00
Stefan Sauer
8cd76a918a
tracer: add a GstTracerValueFlags and replace strings
...
This allows us to document the flags and makes the logs a bit smaller.
2016-01-16 18:52:32 +01:00