Sebastian Dröge [Fri, 13 Mar 2015 15:31:30 +0000 (15:31 +0000)]
bus: Use g_list_free_full() instead of manually unreffing and freeing
Also unref the messages, not the GList nodes.
Sebastian Dröge [Fri, 13 Mar 2015 13:42:46 +0000 (13:42 +0000)]
bus: Fix another case where we hold the object lock while unreffing a message
Vivia Nikolaidou [Fri, 13 Mar 2015 13:28:42 +0000 (15:28 +0200)]
bus: Unreferencing messages outside the lock
Shouldn't take the lock while unreferencing messages, because that may cause
more messages to be sent, which will try to take the lock and cause the app to
hang.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=728777
Vivia Nikolaidou [Mon, 23 Feb 2015 18:27:32 +0000 (20:27 +0200)]
utils: Add gst_bin_sync_children_states()
gst_bin_sync_children_states() will iterate over all the elements of a bin and
sync their states with the state of the bin. This is useful when adding many
elements to a bin and would otherwise have to call
gst_element_sync_state_with_parent() on each and every one of them.
https://bugzilla.gnome.org/show_bug.cgi?id=745042
Aurélien Zanelli [Tue, 3 Feb 2015 15:12:32 +0000 (16:12 +0100)]
printf: handle unsigned modifier for long long
Otherwise, an unsigned integer will be displayed as a signed one if we
use internal print, ie HAVE_LONG_LONG_FORMAT is not defined.
https://bugzilla.gnome.org/show_bug.cgi?id=746096
Sebastian Dröge [Thu, 12 Mar 2015 14:39:37 +0000 (14:39 +0000)]
streamiddemux: Reset pad counter after removing all pads
HoonHee Lee [Tue, 4 Mar 2014 10:40:05 +0000 (19:40 +0900)]
streamiddemux: Add streamiddemux element
Demultiplex a stream to multiple source pads based on the stream ids from the
stream-start events. This basically reverses the behaviour of funnel.
https://bugzilla.gnome.org/show_bug.cgi?id=707605
Tim-Philipp Müller [Thu, 12 Mar 2015 13:29:35 +0000 (13:29 +0000)]
win32: update
Tim-Philipp Müller [Thu, 12 Mar 2015 13:26:59 +0000 (13:26 +0000)]
tests: add some basic unit tests for our printf stuff
To test new %I32 support.
https://bugzilla.gnome.org/show_bug.cgi?id=744281
Matej Knopp [Tue, 10 Feb 2015 16:40:48 +0000 (17:40 +0100)]
printf: add support for %I32
https://bugzilla.gnome.org/show_bug.cgi?id=744281
Tim-Philipp Müller [Thu, 12 Mar 2015 13:14:52 +0000 (13:14 +0000)]
info: move category level threshold check into log function dispatcher
Minor optimisation: check category log level earlier in the
log function dispatcher and not only in the default log
function.
https://bugzilla.gnome.org/show_bug.cgi?id=745213
Sebastian Dröge [Thu, 12 Mar 2015 12:59:57 +0000 (12:59 +0000)]
typefind: Reset segment when deactivating pull mode or not running in pull mode
We use the segment format to detect if we run the streaming thread or not.
Without resetting we might believe we do so, although we only did in the past
and are now running in e.g. push mode.
https://bugzilla.gnome.org/show_bug.cgi?id=745073
Michał Dębski [Sun, 8 Mar 2015 19:42:38 +0000 (20:42 +0100)]
check: Use mkstemp instead of tempnam if possible
Using tempnam() is deprecated, this gives warning and fails the build
with -Werror.
https://bugzilla.gnome.org/show_bug.cgi?id=745858
Wim Taymans [Wed, 11 Mar 2015 15:36:29 +0000 (16:36 +0100)]
basesink: clean up the need_preroll variable
Based on patch from Song Bing <b06498@freescale.com>
Don't just set the need_preroll flag to TRUE in all cases. When we
are already prerolled it needs to be set to FALSE and when we go to
READY we should not touch it. We should only set it to TRUE in other
cases, like what the code above does.
See https://bugzilla.gnome.org/show_bug.cgi?id=736655
hoonhee.lee [Fri, 5 Dec 2014 05:16:52 +0000 (14:16 +0900)]
funnel: handle GAP event to forwards sticky events into downstream
If no data is coming and funnel receive GAP event, need to forwards sticky events
into downstream if it needs.
https://bugzilla.gnome.org/show_bug.cgi?id=738202
Luis de Bethencourt [Tue, 10 Mar 2015 16:42:44 +0000 (16:42 +0000)]
check: duplicate code branches
CID #1226446
Tim-Philipp Müller [Tue, 10 Mar 2015 09:21:22 +0000 (09:21 +0000)]
Fix double semicolons
Mark Nauwelaerts [Sun, 22 Feb 2015 09:12:01 +0000 (10:12 +0100)]
win32: update exports
Mark Nauwelaerts [Sat, 21 Feb 2015 19:13:04 +0000 (20:13 +0100)]
flowcombiner: add a gst_flow_combiner_update_pad_flow() method
https://bugzilla.gnome.org/show_bug.cgi?id=744572
API: gst_flow_combiner_update_pad_flow()
Mark Nauwelaerts [Sun, 15 Feb 2015 19:52:10 +0000 (20:52 +0100)]
flowcombiner: add a gst_flow_combiner_reset() method
https://bugzilla.gnome.org/show_bug.cgi?id=744572
API: gst_flow_combiner_reset()
Sebastian Dröge [Fri, 6 Mar 2015 09:59:58 +0000 (10:59 +0100)]
basesrc: Fix typo in debug message
Tim-Philipp Müller [Thu, 5 Mar 2015 18:30:45 +0000 (18:30 +0000)]
info: avoid malloc/free if log object is NULL
Tim-Philipp Müller [Thu, 5 Mar 2015 17:54:04 +0000 (17:54 +0000)]
info: move __FILE__ path shortening into default log handler
Instead of always shortening the __FILE__ path, even if the
log message is not actually printed, which might happen if
the log level is activated but the category is not, only
shorten the path if we're actually going to output it and
if it looks like it needs shortening. Log handlers had no
guarantee that they would get a name instead of a path
anyway on any architecture, so it shouldn't be a problem.
https://bugzilla.gnome.org/show_bug.cgi?id=745213
Peter Urbanec [Thu, 26 Feb 2015 14:16:58 +0000 (01:16 +1100)]
info: shorten __FILE__ on all platforms
This is useful not only for MSVC, but also with gcc/Linux
when doing cross-compilation builds and out-of-tree builds.
https://bugzilla.gnome.org/show_bug.cgi?id=745213
Vincent Penquerc'h [Wed, 4 Mar 2015 11:02:41 +0000 (11:02 +0000)]
docs: clarify min-latency wording in part-latency.txt
https://bugzilla.gnome.org/show_bug.cgi?id=744338
Marcin Kolny [Thu, 26 Feb 2015 13:43:25 +0000 (14:43 +0100)]
win32/common/gstconfig.h: removed libxml include directive
This is a leftover from 0.10 and not needed anymore.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=745210
Sebastian Dröge [Tue, 3 Mar 2015 11:53:13 +0000 (12:53 +0100)]
queue2: Signal the sinkpad thread if a flow error happened
It might still be waiting for a query to be handled, or the queue to become
empty again for the next item. Also if downstream returns FLUSHING, flush the
queue like we do in queue and multiqueue.
Sebastian Dröge [Tue, 3 Mar 2015 11:48:34 +0000 (12:48 +0100)]
queue: Wake up the query function on errors from the loop function
Otherwise we might wait forever for serialized queries to be handled as the
loop function is stopped and as such we will never ever dequeue the query and
handle it.
https://bugzilla.gnome.org/show_bug.cgi?id=745319
Tim-Philipp Müller [Mon, 2 Mar 2015 20:31:58 +0000 (20:31 +0000)]
utils: improve warning when linking elements without common ancestor
This comes up quite a lot and it's a common mistake, so let's
try to improve the warning message a little.
Arun Raghavan [Thu, 26 Feb 2015 19:03:27 +0000 (00:33 +0530)]
input-selector: Drop custom latency query handling
The default latency query handler now implements this logic
Mathieu Duponchelle [Thu, 26 Feb 2015 14:57:20 +0000 (15:57 +0100)]
gst-unsinstalled: Add ges-launch manuals path to MANPATH.
Arun Raghavan [Thu, 26 Feb 2015 07:38:48 +0000 (13:08 +0530)]
pad: Don't fail latency query on unlinked pads
A single unlinked pad can make the latency query fail across the
pipeline, which is probably not desirable. Instead, we return a default
anything goes value.
Perhaps we should also be emitting a gst_message_new_latency() when a
PLAYING element has one of its pads linked.
https://bugzilla.gnome.org/show_bug.cgi?id=745197
Edward Hervey [Wed, 22 Oct 2014 14:43:43 +0000 (16:43 +0200)]
baseparse: Don't emit errors on EOS if we saw GAP events
If we saw GAP events (meaning the streams is advancing) before we get
EOS, we should not post an ERROR, since it is not fatal.
https://bugzilla.gnome.org/show_bug.cgi?id=745143
Edward Hervey [Wed, 25 Feb 2015 07:26:19 +0000 (08:26 +0100)]
gstvalue: Make sure GST_FOURCC_ARGS produces printable characters
Some systems will crash if we use non-printable characters in print/debug
statements.
Make sure that GST_FOURCC_ARGS never does that
https://bugzilla.gnome.org/show_bug.cgi?id=745144
Luis de Bethencourt [Wed, 25 Feb 2015 16:11:06 +0000 (16:11 +0000)]
gstutils: remove incorrect Fixme comment
If the checks were changed to using g_return_if_fail() the GST_DEBUG lines
about the specific failure would be lost.
Luis de Bethencourt [Wed, 25 Feb 2015 16:02:39 +0000 (16:02 +0000)]
gstutils: remove obsolete Fixme comment
gst_pad_link_filtered() is very long gone and current
gst_element_link_pads_filtered() doesn't apply to this Fixme comment.
Matthieu Bouron [Tue, 24 Feb 2015 20:58:00 +0000 (21:58 +0100)]
gst-uninstalled: add adaptivedemux paths from -bad
https://bugzilla.gnome.org/show_bug.cgi?id=745122
Luis de Bethencourt [Tue, 24 Feb 2015 18:14:47 +0000 (18:14 +0000)]
docs: remove dead link
Remove dead link to wiki page for SubmittingPatches
https://bugzilla.gnome.org/show_bug.cgi?id=730311
Mathieu Duponchelle [Tue, 24 Feb 2015 13:07:54 +0000 (14:07 +0100)]
helpers: Fix install of completion-helper.
By applying the supplied transformation to the program name,
for example --program-prefix.
Nicolas Dufresne [Mon, 23 Feb 2015 21:39:43 +0000 (16:39 -0500)]
completion-helper: Add missing DESTDIR
Otherwise doing "make install DESTDIR" will try to write to
/usr/share/...
Mathieu Duponchelle [Mon, 23 Feb 2015 20:17:16 +0000 (21:17 +0100)]
completion-helper: Add filtering by klass and sink caps.
Mark Nauwelaerts [Sat, 21 Feb 2015 16:13:26 +0000 (17:13 +0100)]
multiqueue: avoid returning downstream GST_FLOW_EOS from previous segment to current upstream segment
Mark Nauwelaerts [Sun, 22 Feb 2015 09:02:25 +0000 (10:02 +0100)]
flowcombiner: fix documentation comment typo
Mark Nauwelaerts [Sun, 22 Feb 2015 09:01:33 +0000 (10:01 +0100)]
baseparse: drain segment upon SEGMENT_DONE to ensure proper event order
Mark Nauwelaerts [Sun, 22 Feb 2015 09:01:50 +0000 (10:01 +0100)]
baseparse: clean up some bogus commented code
Mathieu Duponchelle [Mon, 23 Feb 2015 18:10:08 +0000 (19:10 +0100)]
completion-helper: Append $(EXEEXT) to the name of the moved file.
Fixes the build on Windows
(https://ci.gstreamer.net/job/cerbero-cross-mingw32/1742/console)
Tim-Philipp Müller [Mon, 23 Feb 2015 17:23:33 +0000 (17:23 +0000)]
Fix distcheck
Disable bash completion during distchecking otherwise
it may try to install into a system path and fail.
Tim-Philipp Müller [Mon, 23 Feb 2015 17:16:45 +0000 (17:16 +0000)]
Dist new data directory
Fixes 'make dist'
Mathieu Duponchelle [Fri, 20 Feb 2015 21:04:22 +0000 (22:04 +0100)]
bash-completion: Implement in a different way.
+ Gets installed
+ Uses a helper tool, gst-completion-helper, installed in
bash-completions/helpers.
+ Adds a common script that other tools can source.
https://bugzilla.gnome.org/show_bug.cgi?id=744877
Luis de Bethencourt [Mon, 23 Feb 2015 12:08:49 +0000 (12:08 +0000)]
GstDeviceMonitor: keep alphabetical order
Olivier Crête [Fri, 20 Feb 2015 21:22:23 +0000 (16:22 -0500)]
Revert "element: set pads need-parent flag to false when removing"
This reverts commit
1911554cff2c4a11772b541a8215a80c728b1097.
This breaks the functionality of GST_PAD_FLAG_NEED_PARENT, the reason for this
flag is that if a pad is removed from a running element, you don't want
functions (such as chain or event) to be called on the pad without a parent set.
This can happen if you remove a request or sometimes pad from a running element.
I don't see the code that caused this in tsdemux, but if it needs to unset
the flag on remove, it should do it itself and then make sure that the parent
exists in any pad function.
Mathieu Duponchelle [Thu, 19 Feb 2015 11:17:15 +0000 (12:17 +0100)]
check: cast element in ASSERT_SET_STATE.
https://bugzilla.gnome.org/show_bug.cgi?id=744777
Sebastian Dröge [Wed, 18 Feb 2015 23:16:52 +0000 (01:16 +0200)]
inputselector: Use a separate query for upstream pads and let it fail if one upstream query fails
Sebastian Dröge [Wed, 18 Feb 2015 23:12:49 +0000 (01:12 +0200)]
pad: If the latency query fails for one of the pads, it fails overall
Sebastian Dröge [Wed, 18 Feb 2015 09:05:19 +0000 (11:05 +0200)]
queue: Remove unused boolean parameter from internal functions
Sebastian Dröge [Tue, 17 Feb 2015 10:11:43 +0000 (12:11 +0200)]
queue: Add unit test for buffer list and time level handling
Sebastian Dröge [Tue, 17 Feb 2015 09:44:40 +0000 (11:44 +0200)]
queue: Add support for buffer lists
Sebastian Dröge [Tue, 17 Feb 2015 09:41:50 +0000 (11:41 +0200)]
queue2: Count the number of buffers in a buffer list for updating the current levels
instead of just assuming one buffer.
Tim-Philipp Müller [Tue, 17 Feb 2015 20:47:23 +0000 (20:47 +0000)]
message: revive async delivery message before bus thread can run unref
Revive message in dispose handler before we signal the bus thread,
otherwise the bus thread might be woken up and unref the message
before we had a chance to revive it yet.
Tim-Philipp Müller [Mon, 16 Feb 2015 23:02:40 +0000 (23:02 +0000)]
tests: bus: add unit test for async message delivery
Tim-Philipp Müller [Mon, 16 Feb 2015 22:39:42 +0000 (22:39 +0000)]
message, bus: fix async message delivery
Async message delivery (where the posting thread gets blocked
until the message has been processed and/or freed) was pretty
much completely broken.
For one, don't use GMutex implementation details to check
whether a mutex has been initialized or not, esp. not
implementation details that don't hold true any more with
newer GLib versions where atomic ops and futexes are used
(spotted by Josep Torras). This led to async message
delivery no longer blocking with newer GLib versions on
Linux.
Secondly, after async delivery don't free mutex/GCond
embedded inside the just-freed message structure.
Use a new (private) mini object flag to signal GstMessage
that the message being freed is part of an async delivery
on the bus so that the dispose handler can keep the message
alive and the bus can free it once it's done cleaning up
stuff.
Tim-Philipp Müller [Mon, 16 Feb 2015 19:24:44 +0000 (19:24 +0000)]
info: nicer buffer offset printing when offsets are not set
Print unset offsets as 'none' instead of humongous numbers,
for better readability.
Sebastian Dröge [Mon, 16 Feb 2015 09:35:41 +0000 (11:35 +0200)]
pad: Only initialize GValue to a type once, not on every retry
Otherwise we'll get warnings like this:
cannot initialize GValue with type 'gboolean', the value has already been initialized as 'gboolean'
Matthieu Bouron [Sat, 14 Feb 2015 11:15:03 +0000 (12:15 +0100)]
gstutils: check uri before using it in gst_pad_create_stream_id_internal
If an element implements wrongly the URI query and set the uri to NULL and if
the element calls gst_pad_create_stream_id at some point, it will lead to crash
as the uri is not supposed to be NULL in the gst_pad_create_stream_id_internal
function.
https://bugzilla.gnome.org/show_bug.cgi?id=744520
Thibault Saunier [Fri, 13 Feb 2015 18:43:24 +0000 (19:43 +0100)]
timedvaluecontrolsource: Do not wrongly send value-removed
And avoid freeing something we do not own
Thibault Saunier [Wed, 4 Feb 2015 14:06:17 +0000 (15:06 +0100)]
gst-uninstalled: Set GST_VALIDATE_PLUGIN_PATH
Thiago Santos [Thu, 12 Feb 2015 16:34:49 +0000 (13:34 -0300)]
basesrc: fix documentation and debug message after latency updates
Changes docs and message according to latency handling fix
Frédéric Wang [Thu, 12 Feb 2015 14:50:15 +0000 (14:50 +0000)]
fdsrc: use g_ascii_strtoull() to convert size string in uri
sscanf() doesn't handle G_GUINT64_FORMAT well on mingw64 it
appears, leading to compiler warnings.
https://bugzilla.gnome.org/show_bug.cgi?id=744034
Sebastian Dröge [Thu, 12 Feb 2015 12:03:15 +0000 (14:03 +0200)]
pad: gst_pad_iterate_internal_links() can return NULL if there are none
Sebastian Dröge [Thu, 12 Feb 2015 12:03:03 +0000 (14:03 +0200)]
pad: Return NULL instead of FALSE for pointers
Sebastian Dröge [Thu, 12 Feb 2015 11:55:36 +0000 (13:55 +0200)]
pad: Implement more useful default handling for the LATENCY query
Before we just took the values from the first pad that succeded the query,
now we accumulate the results of every sinkpad properly and return that
result.
Sebastian Dröge [Thu, 12 Feb 2015 09:26:26 +0000 (11:26 +0200)]
design/part-latency: Minor logic fix
The maximum latency will be the element's minimum latency or bigger,
not bigger than the element's minimum latency or bigger.
Sebastian Dröge [Wed, 11 Feb 2015 12:41:56 +0000 (13:41 +0100)]
Improve and fix LATENCY query handling
This now follows the design docs everywhere.
https://bugzilla.gnome.org/show_bug.cgi?id=744106
Sebastian Dröge [Wed, 11 Feb 2015 11:20:39 +0000 (12:20 +0100)]
design/part-latency: Add more details about min/max latency handling
These docs missed many details that were not obvious and because of that
handled in a few different, incompatible ways in different elements and base
classes.
https://bugzilla.gnome.org/show_bug.cgi?id=744106
Jan Schmidt [Fri, 6 Feb 2015 18:16:23 +0000 (05:16 +1100)]
tests: Fix clock regression test
Fix up the values the test is checking for now that
the clock regression returns parameters starting from
the end of the regression range.
Jan Schmidt [Fri, 6 Feb 2015 17:22:22 +0000 (04:22 +1100)]
netclock: Don't update the clock when it desynch
Add a hold off when the clock calibration suddenly loses synch,
as it may be a glitch, but also make sure we update if it stays
desynched for more than a few seconds
Jan Schmidt [Thu, 5 Feb 2015 19:07:43 +0000 (06:07 +1100)]
netclock: Make the RTT average ignore large values more forcefully.
Smooth larger RTTs a little harder, so excessively large values
perturb the average a bit less, and therefore get filtered out
more strongly
Jan Schmidt [Thu, 5 Feb 2015 11:55:39 +0000 (22:55 +1100)]
clock: Make linear regression x/y base start from maximum observation.
Project the results of the linear regression to the end of the
regression range, so they're more directly comparable to results
going forward
Tim-Philipp Müller [Thu, 5 Feb 2015 13:49:47 +0000 (13:49 +0000)]
pad: add "offset" property to go with gst_pad_set_offset()
So we can set the offset via gst-launch.
Stefan Sauer [Mon, 2 Feb 2015 07:22:47 +0000 (08:22 +0100)]
plugin: add more detail to logging when not loading a plugin
Improve the log messages and add e.g the version number we checked.
Jan Schmidt [Mon, 2 Feb 2015 06:37:44 +0000 (17:37 +1100)]
gstpad: Fix a typo in a docstring.
Nicolas Dufresne [Sun, 1 Feb 2015 19:23:26 +0000 (14:23 -0500)]
build: Check that _MSC_VER macro is defined
Ilya Konstantinov [Sun, 1 Feb 2015 01:39:03 +0000 (03:39 +0200)]
task: Add thread name support on OS X and iOS
Sebastian Dröge [Thu, 29 Jan 2015 15:37:07 +0000 (16:37 +0100)]
clock: Don't use invalid objects for GST_DEBUG_OBJECT()
Not sure what "clock" actually is here, it must be something defined by one of
the headers that are included.
Sebastian Dröge [Thu, 29 Jan 2015 11:10:18 +0000 (12:10 +0100)]
buffer: Document that gst_buffer_copy_region() accepts -1 as size to copy until the end
It's just a wrapper around gst_buffer_copy_into() after all.
Jan Schmidt [Tue, 9 Dec 2014 05:28:56 +0000 (16:28 +1100)]
segment: Add new skip flags for clarifying trick mode playback.
Add GST_SEEK_FLAG_TRICKMODE_KEY_UNITS and
GST_SEEK_FLAG_TRICKMODE_NO_AUDIO, and rename GST_SEEK_FLAG_SKIP
to GST_SEEK_FLAG_TRICKMODE (with backwards compat define).
Do the same for the corresponding SEGMENT flags.
https://bugzilla.gnome.org/show_bug.cgi?id=735666
Stefan Sauer [Fri, 23 Jan 2015 07:59:27 +0000 (08:59 +0100)]
check: fix another typo in the docs
Sebastian Dröge [Thu, 22 Jan 2015 21:10:06 +0000 (23:10 +0200)]
uri: Fix indention
David Waring [Wed, 21 Jan 2015 14:10:02 +0000 (14:10 +0000)]
uri: Fix new URI parsing tests based on GNet's
https://bugzilla.gnome.org/show_bug.cgi?id=743195
David Waring [Wed, 21 Jan 2015 14:09:45 +0000 (14:09 +0000)]
uri: Fix parsing issues
Make host IPs in square brackets store only the IP, i.e. strip the brackets.
Strip leading whitespace characters in URIs.
Fail parsing when host part does not match any valid formats from RFC3986.
https://bugzilla.gnome.org/show_bug.cgi?id=743195
Sebastian Dröge [Mon, 19 Jan 2015 18:15:32 +0000 (19:15 +0100)]
uri: Add parsing unit test based on GNet's
Plus some new URIs to parse.
https://git.gnome.org/browse/archive/gnet/plain/tests/check/gnet/gneturi.c
https://bugzilla.gnome.org/show_bug.cgi?id=743195
Heinrich Fink [Thu, 22 Jan 2015 10:29:18 +0000 (11:29 +0100)]
check: Fix doc of GST_CHECKS and GST_CHECKS_IGNORE
https://bugzilla.gnome.org/show_bug.cgi?id=743335
Sebastian Dröge [Wed, 21 Jan 2015 17:07:09 +0000 (18:07 +0100)]
check: Add _fail_unless() compatibility function around _ck_assert_failed()
We exported this in < 1.5 and it was automatically used by many macros
from the header. Keep it exported for now.
Edward Hervey [Wed, 21 Jan 2015 13:12:22 +0000 (14:12 +0100)]
gstpad: Inline apply_pad_offset()
Avoid doing a function call for something which will mostly be unused
Edward Hervey [Wed, 21 Jan 2015 13:10:06 +0000 (14:10 +0100)]
gstpad: Fix debug message
Edward Hervey [Wed, 21 Jan 2015 10:45:41 +0000 (11:45 +0100)]
gstpad: Fix PROBE_NO_DATA macro
The problem was that the macro was always used with 'ret' as the defaultval
argument.
This would result in the macro eventually expanding to
if (G_UNLIKELY (ret != ret && ret != GST_FLOW_OK))
... ret != ret will always fail, and therefore we'd never call the
following line.
Instead of that, store the previous value locally for comparision
Jan Schmidt [Wed, 21 Jan 2015 11:44:59 +0000 (22:44 +1100)]
netclock: Fix docs typo. Clock bus messages are GST_MESSAGE_ELEMENT
Jan Schmidt [Thu, 15 Jan 2015 11:32:28 +0000 (22:32 +1100)]
netclock: Implement rate limits for polling and fix up skew limits
Add the minimum-update-interval property to the clock, with a default
of 50ms and don't send polling requests faster than that. That helps to
ensure we spread the initial observations out a little - startup takes
a little longer, but tracking is more stable.
Move the discont skew limiting code inside an if statement, so that
it's only done when the linear regression succeeds and the clock
parameters might actually change.
Jan Schmidt [Wed, 14 Jan 2015 23:05:32 +0000 (10:05 +1100)]
clock: Improve slaving regression.
Add domain checks for the input values, and a variable precision
calculation that loops if necessary to ensure we never overflow
accumulators and then silently produce garbage results.
Make the (non-public) linear regression function available for
unit testing by putting it in a separate source file the test
can include. Add a unit test that the new regression function
produces sensible results for several inputs taken from real-world
captures.
Jan Schmidt [Sat, 10 Jan 2015 10:42:00 +0000 (21:42 +1100)]
netclock: Add simple network clock server and client examples