platform/upstream/gstreamer.git
9 years agoqueue2: Add the avg-in-rate property.
Duncan Palmer [Mon, 23 Feb 2015 03:16:19 +0000 (13:16 +1000)]
queue2: Add the avg-in-rate property.

https://bugzilla.gnome.org/show_bug.cgi?id=733959

9 years agoqueue2: add overrun signal
Philippe Normand [Wed, 4 Nov 2015 11:02:51 +0000 (12:02 +0100)]
queue2: add overrun signal

Notifies that the queue2 is full, same as queue does

https://bugzilla.gnome.org/show_bug.cgi?id=733959

9 years agopad: tests for accept-caps handling with proxy pads
Thiago Santos [Wed, 30 Sep 2015 00:14:19 +0000 (21:14 -0300)]
pad: tests for accept-caps handling with proxy pads

Adds 3 new tests for testing accept-caps behavior with
proxy-caps pads.

1) A scenario where there is no proxy. The caps should be compared to the
template caps of the pad

2) A scenario where there is a compatible pad. The caps should be compared
to the proxied pad caps (and also with the template)

3) A scenario where there is an incompatible proxy pad. No caps should be
possible at all.

https://bugzilla.gnome.org/show_bug.cgi?id=754112

9 years agopad: check template caps for proxy pads in accept-caps
Thiago Santos [Thu, 5 Nov 2015 19:15:22 +0000 (16:15 -0300)]
pad: check template caps for proxy pads in accept-caps

Validate that the proxy pad indeed accepts the caps by also
comparing with the pad template caps, otherwise when the pad
had no internally linked pads it would always return true.

https://bugzilla.gnome.org/show_bug.cgi?id=754112

9 years agoFix build with -Werror=maybe-uninitialized
Thibault Saunier [Fri, 6 Nov 2015 11:58:42 +0000 (12:58 +0100)]
Fix build with -Werror=maybe-uninitialized

9 years agopreset: Add a GST_PRESET_PATH env variable for presets to be usable uninstalled
Thibault Saunier [Fri, 6 Nov 2015 11:05:18 +0000 (12:05 +0100)]
preset: Add a GST_PRESET_PATH env variable for presets to be usable uninstalled

And start setting the various uninstalled presets paths.

9 years agofilesink: continue element cleanup even if fclose fails
Anton Bondarenko [Thu, 5 Nov 2015 07:56:43 +0000 (08:56 +0100)]
filesink: continue element cleanup even if fclose fails

Sometimes filesink cleanup during stop may fail due to fclose error.
In this case object left partial cleanup with no file opened
but still holding old file descriptor.

It's not possible to change location property in a such state,
so next start will cause old file overwrite if 'append' does not set.

According to man page and POSIX standard about fclose behavior(extract):
------------------------------------------------------------------------
The fclose() function shall cause the stream pointed to by stream
to be flushed and the associated file to be closed.
...
Whether or not the call succeeds, the stream shall be disassociated
from the file and any buffer set by the setbuf() or setvbuf()
function shall be disassociated from the stream.
...
The fclose() function shall perform the equivalent of a close()
on the file descriptor that is associated with the stream
pointed to by stream.

After the call to fclose(), any use of stream results
in undefined behavior.
------------------------------------------------------------------------

So file is in 'closed' state no matter if fclose succeed or not.
And cleanup could be continued.

https://bugzilla.gnome.org/show_bug.cgi?id=757596

9 years agopad: Mark sticky events as sent on not-linked
Jan Schmidt [Sat, 31 Oct 2015 13:04:27 +0000 (00:04 +1100)]
pad: Mark sticky events as sent on not-linked

Instead of re-sending sticky events over and over to a not-linked
pad, mark them as sent the first time. If the not-linked came from
downstream, it already received the events. If the pad is actually
not-linked, the sticky events will be rescheduled when the
pad is linked anyway.

9 years agoghostpad: Allow deactivation with no peer.
Jan Schmidt [Thu, 29 Oct 2015 07:53:29 +0000 (18:53 +1100)]
ghostpad: Allow deactivation with no peer.

Allow deactivation in pull-mode, since that implies we
had a peer, activated in pull mode, then the peer disa-peer-ed ;)

9 years agoelement: emit tracer's element-new hook from 'constructed'
Thiago Santos [Wed, 28 Oct 2015 20:31:07 +0000 (17:31 -0300)]
element: emit tracer's element-new hook from 'constructed'

It allows to properly emitting it for all newly created elements

https://bugzilla.gnome.org/show_bug.cgi?id=757045

9 years agostats: log the element-new hook properly
Thiago Santos [Wed, 28 Oct 2015 09:03:39 +0000 (06:03 -0300)]
stats: log the element-new hook properly

To be able to get the time the elements were created instead of
just logging them without a time

9 years agopad: Unblock blocking pad probes when receiving FLUSH_START in send_event() too
Sebastian Dröge [Wed, 28 Oct 2015 16:04:46 +0000 (18:04 +0200)]
pad: Unblock blocking pad probes when receiving FLUSH_START in send_event() too

Without this, flushing might not unblock the streaming thread and cause deadlocks.

https://bugzilla.gnome.org/show_bug.cgi?id=757257

9 years agopad: Document the order in which pad probes are called
Sebastian Dröge [Wed, 28 Oct 2015 11:04:25 +0000 (13:04 +0200)]
pad: Document the order in which pad probes are called

https://bugzilla.gnome.org/show_bug.cgi?id=757197

9 years agopad: Append hooks instead of prepending to call them in the order they were added
Sebastian Dröge [Tue, 27 Oct 2015 16:05:05 +0000 (18:05 +0200)]
pad: Append hooks instead of prepending to call them in the order they were added

https://bugzilla.gnome.org/show_bug.cgi?id=757197

9 years agonetaddressmeta: gst_buffer_get_net_address_meta() as function
Stian Selnes [Mon, 26 Oct 2015 11:50:12 +0000 (12:50 +0100)]
netaddressmeta: gst_buffer_get_net_address_meta() as function

Implement gst_buffer_get_net_address_meta() as a function instead
of a macro in order to get gobject-introspection to work.

https://bugzilla.gnome.org/show_bug.cgi?id=702921

9 years agobuffer: flesh out docs for gst_buffer_make_writable() a little
Nirbheek Chauhan [Mon, 26 Oct 2015 12:37:11 +0000 (18:07 +0530)]
buffer: flesh out docs for gst_buffer_make_writable() a little

There is a similar explanation in gst_caps_make_writable, but the existing
documentation can be misleading since it does not define what 'is already
writable' means.

Also note when this function is meant to be used.

9 years agocaps: clarify docs for a few functions that they don't update things in-place
Nirbheek Chauhan [Mon, 26 Oct 2015 12:05:34 +0000 (17:35 +0530)]
caps: clarify docs for a few functions that they don't update things in-place

It is not necessarily clear from the existing introspection tags and
documentation alone.

9 years agoqueue/queue2: Use GST_BUFFER_DTS_OR_PTS
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

9 years agomultiqueue: Use buffer DTS if present, else PTS
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

9 years agocollectpads: Use GST_BUFFER_DTS_OR_PTS
Edward Hervey [Tue, 27 Oct 2015 07:33:41 +0000 (08:33 +0100)]
collectpads: Use GST_BUFFER_DTS_OR_PTS

Simplifies code a bit

9 years agobuffer: Add a GST_BUFFER_DTS_OR_PTS macro
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

9 years agodoc: add GST_{PTR,SEGMENT}_FORMAT
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

9 years agosegment: Return -1 if gst_segment_to_stream_time_full() considers the position not...
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

9 years agouri: fix behaviour for merging uris ending in .. without following /
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

9 years agouri: tests: added unit test for streams ending in .. without following /
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

9 years agodebug: Dump pad properties values
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

9 years agosegment: Remove leftover debug g_print()
Sebastian Dröge [Fri, 23 Oct 2015 17:04:42 +0000 (20:04 +0300)]
segment: Remove leftover debug g_print()

9 years agosegment: Add _full variants of all stream/running_time from/to segment position functions
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

9 years agogst-uninstalled: Added env var for uninstalled PTP helper
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

9 years agobasesink: rename argument of PREROLL_{COND,LOCK} macros
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

9 years agogstcontrolsource: Add missing (out) annotation
Mathieu Duponchelle [Thu, 22 Oct 2015 08:05:14 +0000 (10:05 +0200)]
gstcontrolsource: Add missing (out) annotation

9 years agoAutomatic update of common submodule
Tim-Philipp Müller [Wed, 21 Oct 2015 13:34:47 +0000 (14:34 +0100)]
Automatic update of common submodule

From b99800a to b319909

9 years agopad: Fix docs/annotation of gst_pad_probe_info_get_buffer_list()
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

9 years agoUse new GST_ENABLE_EXTRA_CHECKS #define
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

9 years agoAutomatic update of common submodule
Sebastian Dröge [Wed, 21 Oct 2015 11:25:40 +0000 (14:25 +0300)]
Automatic update of common submodule

From 9aed1d7 to b99800a

9 years agostats: always free log
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

9 years agosegment: Correct stream_time calc for negative applied rate
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

9 years agotracer: rename the envvar to GST_TRACER_PLUGINS
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

9 years agomultiqueue: Improve incoming SEGMENT handling
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

9 years agogstutils: Fix build with clang -Werror=cast-align
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

9 years agobin: Make sure to free all cached messages when going to NULL
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

9 years agodocs: mention xdot utility to view .dot files directly
Tim-Philipp Müller [Fri, 16 Oct 2015 14:59:49 +0000 (15:59 +0100)]
docs: mention xdot utility to view .dot files directly

9 years agoalloctrace: show details of events and messages leaked
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.

9 years agodocs: manual: improve advanced metadata example a bit
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

9 years agomemory: fix typo in documentation
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

9 years agomultiqueue: Accept STREAM_START after EOS
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

9 years agosegment: Convert function to macro in unit test to get proper line numbers on failures
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

9 years agobaseparse: Update internal position even if not linked
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

9 years agopad: fix memory leak when sending events to an EOS pad
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

9 years agotracers: Only link against libgstprintf.la if the debugging system is enabled
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.

9 years agogst-ptp-helper: #include <sys/socket.h> to fix net/if.h include on OSX 10.6
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

9 years agoRevert "tracers: Only build getrusage() tracer if RUSAGE_THREAD is available"
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.

9 years agotracers/rusage: ifdef the RUSAGE_THREAD usage
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.

9 years agotracers: Only build getrusage() tracer if RUSAGE_THREAD is available
Sebastian Dröge [Wed, 7 Oct 2015 10:11:30 +0000 (11:11 +0100)]
tracers: Only build getrusage() tracer if RUSAGE_THREAD is available

9 years agowin32: remove gst_tracer_quark_id_get_type
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.

9 years agotracer: move prototype to the right header
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.

9 years agotracer: mark GstTracerQuarkId as non GEnum
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.

9 years agotracers: disable the log tracer if debug logging is disabled
Stefan Sauer [Tue, 6 Oct 2015 16:46:24 +0000 (18:46 +0200)]
tracers: disable the log tracer if debug logging is disabled

9 years agomakefile.am: Remove obsolete Android build cruft
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.

9 years agotracer: fix the build with debug (tracer) disabled
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.

9 years agotracer: fix the build with debug (tracer) disabled
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.

9 years agotracers: stats: add message structure to output
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

9 years agogst: adding tracer quark id to gst init and deinit
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

9 years agowin32: libgstreamer: add tracer functions
Thiago Santos [Mon, 5 Oct 2015 21:50:48 +0000 (18:50 -0300)]
win32: libgstreamer: add tracer functions

9 years agotests: fix the tag test
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.

9 years agotracer: add missing hooks
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

9 years agotracer: gststats: add thread-id to log line
Thiago Santos [Fri, 13 Mar 2015 18:31:40 +0000 (18:31 +0000)]
tracer: gststats: add thread-id to log line

9 years agotracer: add pad query hooks
Thiago Santos [Fri, 13 Mar 2015 13:10:42 +0000 (13:10 +0000)]
tracer: add pad query hooks

9 years agotracer: strdup the passed parameters.
Mathieu Duponchelle [Thu, 15 Jan 2015 05:32:48 +0000 (06:32 +0100)]
tracer: strdup the passed parameters.

9 years agotracer: Use GST_TIME_ARGS when printing with GST_TIME_FORMAT.
Mathieu Duponchelle [Tue, 13 Jan 2015 21:11:34 +0000 (22:11 +0100)]
tracer: Use GST_TIME_ARGS when printing with GST_TIME_FORMAT.

9 years agotracing: update docs
Stefan Sauer [Thu, 16 Oct 2014 08:42:05 +0000 (10:42 +0200)]
tracing: update docs

9 years agostats: TIMESTAMP -> PTS
Stefan Sauer [Thu, 2 Oct 2014 17:52:03 +0000 (19:52 +0200)]
stats: TIMESTAMP -> PTS

9 years agotracing: rename the global api to gst_tracing
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.

9 years agostats: fix cpu stats printing
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.

9 years agotracers: eliminate var_args
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.

9 years agostats: don't warn on ".class" log lines
Stefan Sauer [Wed, 17 Sep 2014 07:41:46 +0000 (09:41 +0200)]
stats: don't warn on ".class" log lines

9 years agotracers: code cleanups
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.

9 years agotracer: use GQuark or strings for the hook id
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.

9 years agotracer: simplify hook api
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.

9 years agotracer: drop the HookId hid from the invoke method
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.

9 years agostats: fixup doc name and remove commented code
Stefan Sauer [Fri, 12 Sep 2014 09:17:41 +0000 (11:17 +0200)]
stats: fixup doc name and remove commented code

9 years agotracers: add metadata for the logged values
Stefan Sauer [Fri, 12 Sep 2014 06:40:01 +0000 (08:40 +0200)]
tracers: add metadata for the logged values

9 years agorusage: improve cpu load meassurements
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.

9 years agotracer: remove commented code
Stefan Sauer [Thu, 11 Sep 2014 11:00:59 +0000 (13:00 +0200)]
tracer: remove commented code

9 years agodesign: update tracer design
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.

9 years agotracer: use GST_PTR_FORMAT to log the structure
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.

9 years agorusage: implement windowing of cpuload
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.

9 years agorusage: announce the data format
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.

9 years agostats: improve cpu load meassurements
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.

9 years agodesign: update tracer design
Stefan Sauer [Fri, 18 Jul 2014 06:09:32 +0000 (08:09 +0200)]
design: update tracer design

9 years agoquarks: revert the quark changes, we not using them anymore
Stefan Sauer [Mon, 28 Jul 2014 06:49:38 +0000 (08:49 +0200)]
quarks: revert the quark changes, we not using them anymore

9 years agotracer: split into tracer and tracerutils
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.

9 years agodocs: add gtk-doc blobs
Stefan Sauer [Wed, 16 Jul 2014 16:48:52 +0000 (18:48 +0200)]
docs: add gtk-doc blobs

9 years agolatency: take stop time when buffer is handled
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'.

9 years agotracers: add a logging helper to remove identical copies from the tracers
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

9 years agotracers: tweak the get_real_pad_parent()
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.

9 years agotracers: add a new latency tracer
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.

9 years agodesign: update design docs
Stefan Sauer [Mon, 17 Feb 2014 17:30:24 +0000 (18:30 +0100)]
design: update design docs

Add new tracer idea.

9 years agogst-stats: use the rusage stats
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.

9 years agorusage: add a new rusage tracer
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.