platform/upstream/gstreamer.git
9 years agobasesink: handle empty buffer list more gracefully
Tim-Philipp Müller [Sat, 14 Mar 2015 21:07:01 +0000 (21:07 +0000)]
basesink: handle empty buffer list more gracefully

Don't abort, just ignore it. It's like a buffer
without memories.

9 years agoadapter: minor optimisation for gst_adapter_take_buffer_list()
Tim-Philipp Müller [Sat, 14 Mar 2015 17:39:39 +0000 (17:39 +0000)]
adapter: minor optimisation for gst_adapter_take_buffer_list()

Try to allocate buffer list with a suitable size from the
beginning to avoid having to re-alloc the buffer list array.

9 years agotests: add unit test for gst_adapter_take_buffer_list()
Tim-Philipp Müller [Sat, 14 Mar 2015 17:23:03 +0000 (17:23 +0000)]
tests: add unit test for gst_adapter_take_buffer_list()

9 years agoadapter: add gst_adapter_take_buffer_list()
Tim-Philipp Müller [Sat, 14 Mar 2015 17:20:33 +0000 (17:20 +0000)]
adapter: add gst_adapter_take_buffer_list()

API: gst_adapter_take_buffer_list()

9 years agoAdd new streamiddemux binaries to .gitignore
Tim-Philipp Müller [Sat, 14 Mar 2015 16:05:57 +0000 (16:05 +0000)]
Add new streamiddemux binaries to .gitignore

9 years agocollectpads: avoid multiple calls to gst_buffer_get_size() in macro
Tim-Philipp Müller [Sat, 14 Mar 2015 16:00:47 +0000 (16:00 +0000)]
collectpads: avoid multiple calls to gst_buffer_get_size() in macro

9 years agoadapter: avoid multiple calls to gst_buffer_get_size() in macro
Tim-Philipp Müller [Sat, 14 Mar 2015 15:58:00 +0000 (15:58 +0000)]
adapter: avoid multiple calls to gst_buffer_get_size() in macro

9 years agoelement: properly escape percent sign in documentation
Ramiro Polla [Fri, 13 Mar 2015 18:22:01 +0000 (18:22 +0000)]
element: properly escape percent sign in documentation

9 years agobuffer: Use the correct enum type to fix a compiler warning
Sebastian Dröge [Sat, 14 Mar 2015 13:37:09 +0000 (13:37 +0000)]
buffer: Use the correct enum type to fix a compiler warning

gstbuffer.c:522:58: error: implicit conversion from enumeration type 'GstBufferFlags' to
      different enumeration type 'GstBufferCopyFlags' [-Werror,-Wenum-conversion]
  if (!gst_buffer_copy_into (copy, (GstBuffer *) buffer, flags, 0, -1))
       ~~~~~~~~~~~~~~~~~~~~                              ^~~~~
gstbuffer.c:534:46: error: implicit conversion from enumeration type 'GstBufferCopyFlags' to
      different enumeration type 'GstBufferFlags' [-Werror,-Wenum-conversion]
  return gst_buffer_copy_with_flags (buffer, GST_BUFFER_COPY_ALL);
         ~~~~~~~~~~~~~~~~~~~~~~~~~~          ^~~~~~~~~~~~~~~~~~~
./gstbuffer.h:433:31: note: expanded from macro 'GST_BUFFER_COPY_ALL'
  ...((GstBufferCopyFlags)(GST_BUFFER_COPY_METADATA | GST_BUFFER_COPY_MEMORY))
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

9 years agodefs: update defs
Wim Taymans [Sat, 14 Mar 2015 13:06:09 +0000 (14:06 +0100)]
defs: update defs

9 years agometa: Add `GstNetControlMessageMeta`
William Manley [Thu, 30 Oct 2014 15:39:21 +0000 (15:39 +0000)]
meta: Add `GstNetControlMessageMeta`

GstNetAddress can be used to store ancillary data which was received with
or is to be sent alongside the buffer data.  When used with socket sinks
and sources which understand this meta it allows sending and receiving
ancillary data such as unix credentials (See `GUnixCredentialsMessage`)
and Unix file descriptions (See `GUnixFDMessage`).

This will be useful for implementing protocols which use file-descriptor
passing in payloaders/depayloaders without having to re-implement all the
socket handling code already present in elements such as multisocketsink,
etc.  This, in turn, will be useful for implementing zero-copy video IPC.

This meta uses the platform independent `GSocketControlMessage` API
provided by GLib as a part of GIO.  As a result this new meta does not
require any new dependencies or any conditional compliation for
portablility, although it is unlikely to do anything useful on non-UNIX
platforms.

9 years agoallocation: Allow allocation pool without size
Nicolas Dufresne [Sat, 14 Mar 2015 11:57:33 +0000 (11:57 +0000)]
allocation: Allow allocation pool without size

This allow proposing a number of buffers required even if the size
of buffer is unfixed. This is often the case for encoded formats.

9 years agobufferpool: Don't stop the pool in set_config()
Nicolas Dufresne [Sun, 1 Mar 2015 18:15:40 +0000 (13:15 -0500)]
bufferpool: Don't stop the pool in set_config()

Don't stop the pool in set_config(). Instead, let the controlling
element manage it. Most of the time, when an active pool is being
configured is because the caps didn't change.

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

9 years agobasesink: drain on allocation query
Thiago Santos [Fri, 13 Mar 2015 18:53:11 +0000 (18:53 +0000)]
basesink: drain on allocation query

Allows buffers to be reclaimed when caps is to be renegotiated so
that bufferpools can be stopped. As the allocation query is
serialized all buffers have been already drained from the pipeline,
except this last_sample one.

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

9 years agobasesink: when draining, deep copy the last buffer to unref old memory
Thiago Santos [Fri, 13 Mar 2015 18:35:14 +0000 (18:35 +0000)]
basesink: when draining, deep copy the last buffer to unref old memory

Use gst_buffer_copy_deep() to force the copy of the underlying
memory instead of possibly doing a shallow copy of the buffer
and just referencing the memory

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

9 years agogstbuffer: add gst_buffer_copy_deep
Thiago Santos [Fri, 13 Mar 2015 18:35:01 +0000 (18:35 +0000)]
gstbuffer: add gst_buffer_copy_deep

A variant of gst_buffer_copy that forces the underlying memory
to be copied.

This is added to avoid adding an extra reference to a GstMemory
that might belong to a bufferpool that is trying to be drained.
The use case is when the buffer copying is done to release the
old buffer and all its resources.

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

9 years agobus: Use g_list_free_full() instead of manually unreffing and freeing
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.

9 years agobus: Fix another case where we hold the object lock while unreffing a message
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

9 years agobus: Unreferencing messages outside the lock
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

9 years agoutils: Add gst_bin_sync_children_states()
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

9 years agoprintf: handle unsigned modifier for long long
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

9 years agostreamiddemux: Reset pad counter after removing all pads
Sebastian Dröge [Thu, 12 Mar 2015 14:39:37 +0000 (14:39 +0000)]
streamiddemux: Reset pad counter after removing all pads

9 years agostreamiddemux: Add streamiddemux element
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

9 years agowin32: update
Tim-Philipp Müller [Thu, 12 Mar 2015 13:29:35 +0000 (13:29 +0000)]
win32: update

9 years agotests: add some basic unit tests for our printf stuff
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

9 years agoprintf: add support for %I32
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

9 years agoinfo: move category level threshold check into log function dispatcher
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

9 years agotypefind: Reset segment when deactivating pull mode or not running in pull mode
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

9 years agocheck: Use mkstemp instead of tempnam if possible
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

9 years agobasesink: clean up the need_preroll variable
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

9 years agofunnel: handle GAP event to forwards sticky events into downstream
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

9 years agocheck: duplicate code branches
Luis de Bethencourt [Tue, 10 Mar 2015 16:42:44 +0000 (16:42 +0000)]
check: duplicate code branches

CID #1226446

9 years agoFix double semicolons
Tim-Philipp Müller [Tue, 10 Mar 2015 09:21:22 +0000 (09:21 +0000)]
Fix double semicolons

9 years agowin32: update exports
Mark Nauwelaerts [Sun, 22 Feb 2015 09:12:01 +0000 (10:12 +0100)]
win32: update exports

9 years agoflowcombiner: add a gst_flow_combiner_update_pad_flow() method
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()

9 years agoflowcombiner: add a gst_flow_combiner_reset() method
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()

9 years agobasesrc: Fix typo in debug message
Sebastian Dröge [Fri, 6 Mar 2015 09:59:58 +0000 (10:59 +0100)]
basesrc: Fix typo in debug message

9 years agoinfo: avoid malloc/free if log object is NULL
Tim-Philipp Müller [Thu, 5 Mar 2015 18:30:45 +0000 (18:30 +0000)]
info: avoid malloc/free if log object is NULL

9 years agoinfo: move __FILE__ path shortening into default log handler
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

9 years agoinfo: shorten __FILE__ on all platforms
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

9 years agodocs: clarify min-latency wording in part-latency.txt
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

9 years agowin32/common/gstconfig.h: removed libxml include directive
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

9 years agoqueue2: Signal the sinkpad thread if a flow error happened
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.

9 years agoqueue: Wake up the query function on errors from the loop function
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

9 years agoutils: improve warning when linking elements without common ancestor
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.

9 years agoinput-selector: Drop custom latency query handling
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

9 years agogst-unsinstalled: Add ges-launch manuals path to MANPATH.
Mathieu Duponchelle [Thu, 26 Feb 2015 14:57:20 +0000 (15:57 +0100)]
gst-unsinstalled: Add ges-launch manuals path to MANPATH.

9 years agopad: Don't fail latency query on unlinked pads
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

9 years agobaseparse: Don't emit errors on EOS if we saw GAP events
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

9 years agogstvalue: Make sure GST_FOURCC_ARGS produces printable characters
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

9 years agogstutils: remove incorrect Fixme comment
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.

9 years agogstutils: remove obsolete Fixme comment
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.

9 years agogst-uninstalled: add adaptivedemux paths from -bad
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

9 years agodocs: remove dead link
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

9 years agohelpers: Fix install of completion-helper.
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.

9 years agocompletion-helper: Add missing DESTDIR
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/...

9 years agocompletion-helper: Add filtering by klass and sink caps.
Mathieu Duponchelle [Mon, 23 Feb 2015 20:17:16 +0000 (21:17 +0100)]
completion-helper: Add filtering by klass and sink caps.

9 years agomultiqueue: avoid returning downstream GST_FLOW_EOS from previous segment to current...
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

9 years agoflowcombiner: fix documentation comment typo
Mark Nauwelaerts [Sun, 22 Feb 2015 09:02:25 +0000 (10:02 +0100)]
flowcombiner: fix documentation comment typo

9 years agobaseparse: drain segment upon SEGMENT_DONE to ensure proper event order
Mark Nauwelaerts [Sun, 22 Feb 2015 09:01:33 +0000 (10:01 +0100)]
baseparse: drain segment upon SEGMENT_DONE to ensure proper event order

9 years agobaseparse: clean up some bogus commented code
Mark Nauwelaerts [Sun, 22 Feb 2015 09:01:50 +0000 (10:01 +0100)]
baseparse: clean up some bogus commented code

9 years agocompletion-helper: Append $(EXEEXT) to the name of the moved file.
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)

9 years agoFix distcheck
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.

9 years agoDist new data directory
Tim-Philipp Müller [Mon, 23 Feb 2015 17:16:45 +0000 (17:16 +0000)]
Dist new data directory

Fixes 'make dist'

9 years agobash-completion: Implement in a different way.
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

9 years agoGstDeviceMonitor: keep alphabetical order
Luis de Bethencourt [Mon, 23 Feb 2015 12:08:49 +0000 (12:08 +0000)]
GstDeviceMonitor: keep alphabetical order

9 years agoRevert "element: set pads need-parent flag to false when removing"
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.

9 years agocheck: cast element in ASSERT_SET_STATE.
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

9 years agoinputselector: Use a separate query for upstream pads and let it fail if one upstream...
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

9 years agopad: If the latency query fails for one of the pads, it fails overall
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

9 years agoqueue: Remove unused boolean parameter from internal functions
Sebastian Dröge [Wed, 18 Feb 2015 09:05:19 +0000 (11:05 +0200)]
queue: Remove unused boolean parameter from internal functions

9 years agoqueue: Add unit test for buffer list and time level handling
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

9 years agoqueue: Add support for buffer lists
Sebastian Dröge [Tue, 17 Feb 2015 09:44:40 +0000 (11:44 +0200)]
queue: Add support for buffer lists

9 years agoqueue2: Count the number of buffers in a buffer list for updating the current levels
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.

9 years agomessage: revive async delivery message before bus thread can run unref
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.

9 years agotests: bus: add unit test for async message delivery
Tim-Philipp Müller [Mon, 16 Feb 2015 23:02:40 +0000 (23:02 +0000)]
tests: bus: add unit test for async message delivery

9 years agomessage, bus: fix 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.

9 years agoinfo: nicer buffer offset printing when offsets are not set
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.

9 years agopad: Only initialize GValue to a type once, not on every retry
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'

9 years agogstutils: check uri before using it in gst_pad_create_stream_id_internal
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

9 years agotimedvaluecontrolsource: Do not wrongly send value-removed
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

9 years agogst-uninstalled: Set GST_VALIDATE_PLUGIN_PATH
Thibault Saunier [Wed, 4 Feb 2015 14:06:17 +0000 (15:06 +0100)]
gst-uninstalled: Set GST_VALIDATE_PLUGIN_PATH

9 years agobasesrc: fix documentation and debug message after latency updates
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

9 years agofdsrc: use g_ascii_strtoull() to convert size string in uri
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

9 years agopad: gst_pad_iterate_internal_links() can return NULL if there are none
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

9 years agopad: Return NULL instead of FALSE for pointers
Sebastian Dröge [Thu, 12 Feb 2015 12:03:03 +0000 (14:03 +0200)]
pad: Return NULL instead of FALSE for pointers

9 years agopad: Implement more useful default handling for the LATENCY query
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.

9 years agodesign/part-latency: Minor logic fix
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.

9 years agoImprove and fix LATENCY query handling
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

9 years agodesign/part-latency: Add more details about min/max latency handling
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

9 years agotests: Fix clock regression test
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.

9 years agonetclock: Don't update the clock when it desynch
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

9 years agonetclock: Make the RTT average ignore large values more forcefully.
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

9 years agoclock: Make linear regression x/y base start from maximum observation.
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

9 years agopad: add "offset" property to go with gst_pad_set_offset()
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.

9 years agoplugin: add more detail to logging when not loading a plugin
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.

9 years agogstpad: Fix a typo in a docstring.
Jan Schmidt [Mon, 2 Feb 2015 06:37:44 +0000 (17:37 +1100)]
gstpad: Fix a typo in a docstring.

9 years agobuild: Check that _MSC_VER macro is defined
Nicolas Dufresne [Sun, 1 Feb 2015 19:23:26 +0000 (14:23 -0500)]
build: Check that _MSC_VER macro is defined

9 years agotask: Add thread name support on OS X and iOS
Ilya Konstantinov [Sun, 1 Feb 2015 01:39:03 +0000 (03:39 +0200)]
task: Add thread name support on OS X and iOS

9 years agoclock: Don't use invalid objects for GST_DEBUG_OBJECT()
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.