Edward Hervey [Tue, 27 Oct 2015 07:48:07 +0000 (08:48 +0100)]
queue/queue2: Use GST_BUFFER_DTS_OR_PTS
The input of queue/queue2 might have DTS set, in which cas we want
to take that into account (instead of the PTS) to calculate position
and queue levels.
https://bugzilla.gnome.org/show_bug.cgi?id=756507
Edward Hervey [Tue, 13 Oct 2015 15:20:26 +0000 (17:20 +0200)]
multiqueue: Use buffer DTS if present, else PTS
In order to accurately determine the amount (in time) of data
travelling in queues, we should use an increasing value.
If buffers are encoded and potentially reordered, we should be
using their DTS (increasing) and not PTS (reordered)
https://bugzilla.gnome.org/show_bug.cgi?id=756507
Edward Hervey [Tue, 27 Oct 2015 07:33:41 +0000 (08:33 +0100)]
collectpads: Use GST_BUFFER_DTS_OR_PTS
Simplifies code a bit
Edward Hervey [Mon, 26 Oct 2015 06:59:54 +0000 (07:59 +0100)]
buffer: Add a GST_BUFFER_DTS_OR_PTS macro
API: GST_BUFFER_DTS_OR_PTS
Many scenarios/elements require dealing with streams of buffers that
might have DTS set (i.e. encoded data, potentially reordered)
To simplify getting the increasing "timestamp" of those buffers, create
a macro that will return the DTS if valid, and if not the PTS
Guillaume Desmottes [Tue, 6 Oct 2015 10:21:04 +0000 (12:21 +0200)]
doc: add GST_{PTR,SEGMENT}_FORMAT
Very useful formats in debug output so best to have them in the
generated doc.
https://bugzilla.gnome.org/show_bug.cgi?id=756115
Sebastian Dröge [Mon, 26 Oct 2015 08:53:35 +0000 (10:53 +0200)]
segment: Return -1 if gst_segment_to_stream_time_full() considers the position not inside the segment
Fixes GstPipeline unit test.
https://bugzilla.gnome.org/show_bug.cgi?id=756564
Florin Apostol [Sat, 24 Oct 2015 15:52:44 +0000 (16:52 +0100)]
uri: fix behaviour for merging uris ending in .. without following /
https://bugzilla.gnome.org/show_bug.cgi?id=757065
Florin Apostol [Sat, 24 Oct 2015 15:43:59 +0000 (16:43 +0100)]
uri: tests: added unit test for streams ending in .. without following /
https://bugzilla.gnome.org/show_bug.cgi?id=757065
Thibault Saunier [Thu, 27 Aug 2015 10:43:28 +0000 (12:43 +0200)]
debug: Dump pad properties values
Currently we only show element properties values, we should also show
pad properties values
https://bugzilla.gnome.org/show_bug.cgi?id=754166
Sebastian Dröge [Fri, 23 Oct 2015 17:04:42 +0000 (20:04 +0300)]
segment: Remove leftover debug g_print()
Vivia Nikolaidou [Thu, 15 Oct 2015 11:49:37 +0000 (14:49 +0300)]
segment: Add _full variants of all stream/running_time from/to segment position functions
See formula clarifications in design docs for calculation details.
https://bugzilla.gnome.org/show_bug.cgi?id=756564
Vivia Nikolaidou [Fri, 25 Sep 2015 22:29:07 +0000 (01:29 +0300)]
gst-uninstalled: Added env var for uninstalled PTP helper
https://bugzilla.gnome.org/show_bug.cgi?id=755651
Guillaume Desmottes [Thu, 22 Oct 2015 10:00:42 +0000 (12:00 +0200)]
basesink: rename argument of PREROLL_{COND,LOCK} macros
They take a GstBaseSink instance as argument at not a GstPad. Rename the
argument to 'obj' which is not miss leading and in line with
GST_BASE_SINK_PAD(obj).
https://bugzilla.gnome.org/show_bug.cgi?id=756954
Mathieu Duponchelle [Thu, 22 Oct 2015 08:05:14 +0000 (10:05 +0200)]
gstcontrolsource: Add missing (out) annotation
Tim-Philipp Müller [Wed, 21 Oct 2015 13:34:47 +0000 (14:34 +0100)]
Automatic update of common submodule
From b99800a to b319909
Sebastian Dröge [Wed, 21 Oct 2015 11:49:49 +0000 (14:49 +0300)]
pad: Fix docs/annotation of gst_pad_probe_info_get_buffer_list()
It's not get_bufferlist(). Because of that it was ignored by the docs and
G-I, leading to crashes because of broken ownership transfer.
https://bugzilla.gnome.org/show_bug.cgi?id=756898
Sebastian Dröge [Tue, 20 Oct 2015 14:29:42 +0000 (17:29 +0300)]
Use new GST_ENABLE_EXTRA_CHECKS #define
https://bugzilla.gnome.org/show_bug.cgi?id=756870
Sebastian Dröge [Wed, 21 Oct 2015 11:25:40 +0000 (14:25 +0300)]
Automatic update of common submodule
From 9aed1d7 to b99800a
Luis de Bethencourt [Tue, 20 Oct 2015 12:46:24 +0000 (13:46 +0100)]
stats: always free log
We always want to free the open file log if fopen() succeeded. Independently
of if fgets() succeeds or fails.
CID 1326055
https://bugzilla.gnome.org/show_bug.cgi?id=756864
Vivia Nikolaidou [Mon, 19 Oct 2015 13:50:51 +0000 (16:50 +0300)]
segment: Correct stream_time calc for negative applied rate
Updated gst_segment_position_from_stream_time and gst_segment_to_stream_time to reflect correct calculations for the case when the applied rate is negative.
Pasting from design docs:
===============================
Stream time is calculated using the buffer times and the preceding SEGMENT
event as follows:
stream_time = (B.timestamp - S.start) * ABS (S.applied_rate) + S.time
For negative rates, B.timestamp will go backwards from S.stop to S.start,
making the stream time go backwards.
===============================
Therefore, the calculation for applied_rate < 0 should be:
stream_time = (S.stop - B.timestamp) * ABS (S.applied_rate) + S.time
and the reverse:
B.timestamp = S.stop - (stream_time - S.time) / ABS (S.applied_rate)
https://bugzilla.gnome.org/show_bug.cgi?id=756810
Stefan Sauer [Mon, 19 Oct 2015 19:39:19 +0000 (21:39 +0200)]
tracer: rename the envvar to GST_TRACER_PLUGINS
The subsystem reused the GST_TRACE var that is allready in use by the alloc tracer.
Fixes #756760
Edward Hervey [Thu, 15 Oct 2015 14:32:42 +0000 (16:32 +0200)]
multiqueue: Improve incoming SEGMENT handling
Previously this code was just blindly setting the cached flow return
of downstream to GST_FLOW_OK when we get a SEGMENT.
The problem is that this can not be done blindly. If downstream was
not linked, the corresponding sinqlequeue source pad thread might be
waiting for the next ID to be woken up upon.
By blindly setting the cached return value to GST_FLOW_OK, and if that
stream was the only one that was NOT_LINKED, then the next time we
check (from any other thread) to see if we need to wake up a source pad
thread ... we won't even try, because none of the cached flow return
are equal to GST_FLOW_NOT_LINKED.
This would result in that thread never being woken up
https://bugzilla.gnome.org/show_bug.cgi?id=756645
Ting-Wei Lan [Sat, 26 Sep 2015 10:16:07 +0000 (18:16 +0800)]
gstutils: Fix build with clang -Werror=cast-align
https://bugzilla.gnome.org/show_bug.cgi?id=755657
Sebastian Dröge [Sat, 17 Oct 2015 19:13:08 +0000 (22:13 +0300)]
bin: Make sure to free all cached messages when going to NULL
An ASYNC READY->PAUSED might have failed without the bin code noticing during
the state change, in which case we will never get PAUSED->READY and would leak
messages.
https://bugzilla.gnome.org/show_bug.cgi?id=756611
Tim-Philipp Müller [Fri, 16 Oct 2015 14:59:49 +0000 (15:59 +0100)]
docs: mention xdot utility to view .dot files directly
Tim-Philipp Müller [Fri, 16 Oct 2015 11:00:50 +0000 (12:00 +0100)]
alloctrace: show details of events and messages leaked
So it's clearer what leaked.
Tim-Philipp Müller [Fri, 16 Oct 2015 10:54:18 +0000 (11:54 +0100)]
docs: manual: improve advanced metadata example a bit
Accept both filename and a URI as argument, and print
the error from the error message if there's an error.
https://bugzilla.gnome.org/show_bug.cgi?id=756630
Thiago Santos [Thu, 15 Oct 2015 22:05:21 +0000 (19:05 -0300)]
memory: fix typo in documentation
It should be 1.2 unless this is a flag from the future
Edward Hervey [Tue, 15 Sep 2015 16:08:18 +0000 (18:08 +0200)]
multiqueue: Accept STREAM_START after EOS
In the same way core now allows STREAM_START to remove the flushing
state from pads, we need to do the same thing in multiqueue
Sebastian Dröge [Wed, 14 Oct 2015 08:03:22 +0000 (11:03 +0300)]
segment: Convert function to macro in unit test to get proper line numbers on failures
https://bugzilla.gnome.org/show_bug.cgi?id=748316
Edward Hervey [Mon, 12 Oct 2015 15:29:26 +0000 (17:29 +0200)]
baseparse: Update internal position even if not linked
Our current position has nothing to do with being linked or not.
Avoids having stray segment updates fired every 2s
Florin Apostol [Wed, 7 Oct 2015 21:55:44 +0000 (22:55 +0100)]
pad: fix memory leak when sending events to an EOS pad
https://bugzilla.gnome.org/show_bug.cgi?id=756208
Sebastian Dröge [Wed, 7 Oct 2015 11:01:16 +0000 (12:01 +0100)]
tracers: Only link against libgstprintf.la if the debugging system is enabled
It does not exist otherwise and linking will fail.
Sebastian Dröge [Wed, 7 Oct 2015 10:25:52 +0000 (11:25 +0100)]
gst-ptp-helper: #include <sys/socket.h> to fix net/if.h include on OSX 10.6
In file included from gst-ptp-helper.c:40:0:
/usr/include/net/if.h:265:19: error: field 'ifru_addr' has incomplete type
struct sockaddr ifru_addr;
https://bugzilla.gnome.org/show_bug.cgi?id=756136
Stefan Sauer [Wed, 7 Oct 2015 10:22:34 +0000 (12:22 +0200)]
Revert "tracers: Only build getrusage() tracer if RUSAGE_THREAD is available"
This reverts commit
8ddbf76626a48420306869db1d171f854cc25310.
Stefan Sauer [Wed, 7 Oct 2015 10:21:56 +0000 (12:21 +0200)]
tracers/rusage: ifdef the RUSAGE_THREAD usage
Some versions of andoid don't seem to have it.
Sebastian Dröge [Wed, 7 Oct 2015 10:11:30 +0000 (11:11 +0100)]
tracers: Only build getrusage() tracer if RUSAGE_THREAD is available
Stefan Sauer [Tue, 6 Oct 2015 19:46:55 +0000 (21:46 +0200)]
win32: remove gst_tracer_quark_id_get_type
Revert addition from
777bbeea605051ae3d2fa7e02ad8589001e78ce0.
Stefan Sauer [Tue, 6 Oct 2015 16:52:38 +0000 (18:52 +0200)]
tracer: move prototype to the right header
Fixes the build when the tracing subsystem is disabled.
Stefan Sauer [Tue, 6 Oct 2015 16:49:46 +0000 (18:49 +0200)]
tracer: mark GstTracerQuarkId as non GEnum
This reverts
72ca02b1de4066eeae35c891e275386770117778 and marks the enum
accordingly.
Stefan Sauer [Tue, 6 Oct 2015 16:46:24 +0000 (18:46 +0200)]
tracers: disable the log tracer if debug logging is disabled
Stefan Sauer [Tue, 6 Oct 2015 16:45:41 +0000 (18:45 +0200)]
makefile.am: Remove obsolete Android build cruft
This is not needed any longer.
Stefan Sauer [Tue, 6 Oct 2015 12:01:03 +0000 (14:01 +0200)]
tracer: fix the build with debug (tracer) disabled
Sync the macro definitions. The dummy defines has argument mismatches.
Stefan Sauer [Tue, 6 Oct 2015 09:39:33 +0000 (11:39 +0200)]
tracer: fix the build with debug (tracer) disabled
Remove commas at the end of the macros.
Thiago Santos [Tue, 1 Sep 2015 19:39:30 +0000 (16:39 -0300)]
tracers: stats: add message structure to output
The name of the message is not enough. For example, state-change
is not enough to know the transition.
https://bugzilla.gnome.org/show_bug.cgi?id=754496
Thiago Santos [Mon, 5 Oct 2015 22:05:58 +0000 (19:05 -0300)]
gst: adding tracer quark id to gst init and deinit
Fixes issues at make check
Thiago Santos [Mon, 5 Oct 2015 21:50:48 +0000 (18:50 -0300)]
win32: libgstreamer: add tracer functions
Stefan Sauer [Mon, 5 Oct 2015 19:29:49 +0000 (21:29 +0200)]
tests: fix the tag test
The previous change (see bgo #756069) was causing us to free the same pointer
multiple times. If we actually get a sample back, the test fails, no need to
free anything in that case.
Marcin Kolny [Wed, 3 Jun 2015 23:50:34 +0000 (01:50 +0200)]
tracer: add missing hooks
Add following hooks: element-new, element-add-pad, element-remove-pad,
bin-add-pre, bin-add-post, bin-remove-pre, bin-remove-post, pad-link-pre,
pad-link-post, pad-unlink-pre, pad-unlink-post.
https://bugzilla.gnome.org/show_bug.cgi?id=733187
Thiago Santos [Fri, 13 Mar 2015 18:31:40 +0000 (18:31 +0000)]
tracer: gststats: add thread-id to log line
Thiago Santos [Fri, 13 Mar 2015 13:10:42 +0000 (13:10 +0000)]
tracer: add pad query hooks
Mathieu Duponchelle [Thu, 15 Jan 2015 05:32:48 +0000 (06:32 +0100)]
tracer: strdup the passed parameters.
Mathieu Duponchelle [Tue, 13 Jan 2015 21:11:34 +0000 (22:11 +0100)]
tracer: Use GST_TIME_ARGS when printing with GST_TIME_FORMAT.
Stefan Sauer [Thu, 16 Oct 2014 08:42:05 +0000 (10:42 +0200)]
tracing: update docs
Stefan Sauer [Thu, 2 Oct 2014 17:52:03 +0000 (19:52 +0200)]
stats: TIMESTAMP -> PTS
Stefan Sauer [Mon, 22 Sep 2014 07:55:56 +0000 (09:55 +0200)]
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.
Stefan Sauer [Thu, 18 Sep 2014 06:28:48 +0000 (08:28 +0200)]
stats: fix cpu stats printing
Only print them if we have them. Also scale them by 10.0 as the are in
per-mille now.
Stefan Sauer [Thu, 18 Sep 2014 06:26:19 +0000 (08:26 +0200)]
tracers: eliminate var_args
Register tracer hooks as GCallback. Use macros for hook dispatch and cast the
hook functions back to the appropriate type.
Stefan Sauer [Wed, 17 Sep 2014 07:41:46 +0000 (09:41 +0200)]
stats: don't warn on ".class" log lines
Stefan Sauer [Wed, 17 Sep 2014 06:38:02 +0000 (08:38 +0200)]
tracers: code cleanups
Move static variables to instance variables. Add finalize methods. Remove code
that is commented out. Cleanup locking code.
Stefan Sauer [Mon, 15 Sep 2014 20:27:11 +0000 (22:27 +0200)]
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.
Stefan Sauer [Mon, 15 Sep 2014 11:15:17 +0000 (13:15 +0200)]
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.
Stefan Sauer [Fri, 12 Sep 2014 16:43:52 +0000 (18:43 +0200)]
tracer: drop the HookId hid from the invoke method
The MessageId is more detailed and anyway needed to interpret the varargs.
Stefan Sauer [Fri, 12 Sep 2014 09:17:41 +0000 (11:17 +0200)]
stats: fixup doc name and remove commented code
Stefan Sauer [Fri, 12 Sep 2014 06:40:01 +0000 (08:40 +0200)]
tracers: add metadata for the logged values
Stefan Sauer [Thu, 11 Sep 2014 11:02:51 +0000 (13:02 +0200)]
rusage: improve cpu load meassurements
Get the number of cpus and scale process cpu-load accordingly. Switch the
cpuload to be per-mille to get smoother graphs. Add a bit more logging and use
the _OBJECT variant.
Stefan Sauer [Thu, 11 Sep 2014 11:00:59 +0000 (13:00 +0200)]
tracer: remove commented code
Stefan Sauer [Wed, 10 Sep 2014 06:33:38 +0000 (08:33 +0200)]
design: update tracer design
Update the tracer event classes section. Add a performance section.
Stefan Sauer [Wed, 10 Sep 2014 06:32:18 +0000 (08:32 +0200)]
tracer: use GST_PTR_FORMAT to log the structure
This way we only expand the structure when we're logging. This allows us to
meassure the pure tracing seperately from the logging.
Also add some comments on further improvements.
Stefan Sauer [Wed, 10 Sep 2014 05:55:33 +0000 (07:55 +0200)]
rusage: implement windowing of cpuload
Add a local help to the rusage plugin that supports windowing of values. We want
to generalize this for use in other plugins.
Stefan Sauer [Thu, 4 Sep 2014 08:11:52 +0000 (10:11 +0200)]
rusage: announce the data format
Rusage will now announce what is meassures and how it is logged. Use the new format in stats.
Cleanup the the code and naming.
Stefan Sauer [Mon, 28 Jul 2014 20:08:49 +0000 (22:08 +0200)]
stats: improve cpu load meassurements
Rename variables for clarity. Handle the initial disparity between debug time
and the time already spent in the proc and main thread.
Stefan Sauer [Fri, 18 Jul 2014 06:09:32 +0000 (08:09 +0200)]
design: update tracer design
Stefan Sauer [Mon, 28 Jul 2014 06:49:38 +0000 (08:49 +0200)]
quarks: revert the quark changes, we not using them anymore
Stefan Sauer [Fri, 18 Jul 2014 05:49:38 +0000 (07:49 +0200)]
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.
Stefan Sauer [Wed, 16 Jul 2014 16:48:52 +0000 (18:48 +0200)]
docs: add gtk-doc blobs
Stefan Sauer [Thu, 20 Feb 2014 10:15:20 +0000 (11:15 +0100)]
latency: take stop time when buffer is handled
Now we meassure time from 'before buffer transfer on src' to when the 'buffer is processed on sink'.
Stefan Sauer [Tue, 15 Jul 2014 07:49:23 +0000 (09:49 +0200)]
tracers: add a logging helper to remove identical copies from the tracers
Stefan Sauer [Tue, 18 Feb 2014 15:15:44 +0000 (16:15 +0100)]
tracers: tweak the get_real_pad_parent()
By using the we ended up on the actual element, not the parent.
Stefan Sauer [Tue, 18 Feb 2014 10:06:10 +0000 (11:06 +0100)]
tracers: add a new latency tracer
Add a new tracer with pushes extra events to meassure src-to-sink processing latency.
Stefan Sauer [Mon, 17 Feb 2014 17:30:24 +0000 (18:30 +0100)]
design: update design docs
Add new tracer idea.
Stefan Sauer [Fri, 22 Nov 2013 18:10:04 +0000 (19:10 +0100)]
gst-stats: use the rusage stats
Add cpuload info from rusage traces.
Stefan Sauer [Wed, 20 Nov 2013 07:22:58 +0000 (08:22 +0100)]
rusage: add a new rusage tracer
The tracer hooks up to all probes and logs resource usage figures.
Stefan Sauer [Tue, 15 Jul 2014 08:20:22 +0000 (10:20 +0200)]
gst-stats: filter complete thread section if we have no pads
Stefan Sauer [Tue, 19 Nov 2013 07:04:38 +0000 (08:04 +0100)]
stats: improve the handling of parentage
Log new object after we did the check for parents.
Stefan Sauer [Sun, 17 Nov 2013 10:37:14 +0000 (11:37 +0100)]
stats: print thread key for stats and filter empty pad-sections
Stefan Sauer [Sun, 17 Nov 2013 10:15:36 +0000 (11:15 +0100)]
stats: update buffer flags
Remove some buffer flags that were leftovers from 0.10 and handle new 1.0 buffer
flags.
Stefan Sauer [Mon, 4 Nov 2013 19:11:09 +0000 (20:11 +0100)]
stats: add a stats frontend
Parse the log and collect data from tracer messages.
Stefan Sauer [Fri, 15 Nov 2013 08:36:21 +0000 (09:36 +0100)]
tracer: use the same timebase as the logging
Stefan Sauer [Wed, 16 Jul 2014 07:22:37 +0000 (09:22 +0200)]
design: update design
Stefan Sauer [Wed, 16 Jul 2014 07:41:48 +0000 (09:41 +0200)]
log: add query log category
Stefan Sauer [Sat, 2 Nov 2013 17:24:56 +0000 (18:24 +0100)]
tracer: parse parameters
Stefan Sauer [Wed, 16 Jul 2014 07:22:14 +0000 (09:22 +0200)]
tracer: add more hooks and handle it in the plugins
Stefan Sauer [Wed, 30 Oct 2013 07:19:41 +0000 (08:19 +0100)]
stats: handle buffer lists
Stefan Sauer [Wed, 30 Oct 2013 07:04:27 +0000 (08:04 +0100)]
log: make the log tracer more verbose again
Define log formats per message type and print details.
Stefan Sauer [Mon, 28 Oct 2013 20:59:19 +0000 (21:59 +0100)]
tracer: use a macros for the enabled check
Avoid a function call and check the variables from the macro.
Stefan Sauer [Mon, 28 Oct 2013 20:39:52 +0000 (21:39 +0100)]
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.
Stefan Sauer [Mon, 28 Oct 2013 20:28:18 +0000 (21:28 +0100)]
tracer: pass the timestamp directly
Avoid the structure mashalling (and weird field naming).
Stefan Sauer [Mon, 28 Oct 2013 07:08:20 +0000 (08:08 +0100)]
stats: add a tracer that collects pipeline statistics
This is more or less equiv to the the statistics in gst-tracelib.
Stefan Sauer [Mon, 28 Oct 2013 07:07:52 +0000 (08:07 +0100)]
log: add cast macro