Sebastian Dröge [Sat, 21 Mar 2015 14:19:43 +0000 (15:19 +0100)]
check: Catch SIGTERM and SIGINT in the test runner and kill all currently running tests
Otherwise e.g. ctrl+c in the test runner exits the test runner, while the test
itself is still running in the background, uses CPU and memory and potentially
never exits (e.g. if the test ran into a deadlock or infinite loop).
The reason why we have to manually kill the actual tests is that after
forking they will be moved to their own process group, and as such are
not receiving any signals sent to the test runner anymore. This is supposed
to be done to make it easier to kill a test, which it only really does if
the test itself is forking off new processes.
This fix is not complete though. SIGKILL can't be caught at all, and error
signals like SIGSEGV, SIGFPE are currently not caught. The latter will only
happen if there is a bug in the test runner itself, and as such seem less
important.
Sebastian Dröge [Thu, 19 Mar 2015 12:51:38 +0000 (13:51 +0100)]
valve: Don't drop non-serialized queries when the valve is dropping
Otherwise we end up dropping e.g. CAPS queries, and then upstream just
negotiates to whatever format it wants to. Once the valve is not-dropping
anymore this can easily result in negotiation failing completely.
https://bugzilla.gnome.org/show_bug.cgi?id=746448
Wim Taymans [Fri, 20 Mar 2015 08:00:47 +0000 (09:00 +0100)]
segment: remove the bounds check from _to_running_time_full()
Do not do any checks for the start/stop in the new
gst_segment_to_running_time_full() method, we can let this be done by
the more capable gst_segment_clip() method. This allows us to remove the
enum of results and only return the sign of the calculated running-time.
We need to put the old clipping checks in the old
gst_segment_to_running_time() still because they work slightly
differently than the _clip methods.
See https://bugzilla.gnome.org/show_bug.cgi?id=740575
Wim Taymans [Thu, 19 Mar 2015 16:36:36 +0000 (17:36 +0100)]
segment: add option to disable clipping
Add a clip argument to gst_segment_to_running_time_full() to disable
the checks against the segment boundaries. This makes it possible to
generate an extrapolated running-time for timestamps outside of the
segment.
See https://bugzilla.gnome.org/show_bug.cgi?id=740575
Tim-Philipp Müller [Wed, 18 Mar 2015 16:27:36 +0000 (16:27 +0000)]
gst: ref/unref new enum type in gst_init/deinit()
Mathieu Duponchelle [Wed, 18 Mar 2015 13:16:48 +0000 (14:16 +0100)]
tools: remove outdated completion script
+ Remove the associated test
https://bugzilla.gnome.org/show_bug.cgi?id=744877#c21
Wim Taymans [Wed, 18 Mar 2015 10:31:51 +0000 (11:31 +0100)]
segment: add helper to get negative running-time
Add a helper method to get a running-time with a little more features
such as detecting if the value was before or after the segment and
negative running-time.
API: gst_segment_to_running_time_full()
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=740575
Wim Taymans [Wed, 18 Mar 2015 09:53:30 +0000 (10:53 +0100)]
segment: fix offset handling with non 0 start
The position in the segment is relative to the start but the offset
isn't, so subtract the start from the position when setting the offset.
Add unit test for this as well.
Sebastian Dröge [Wed, 18 Mar 2015 08:36:35 +0000 (09:36 +0100)]
funnel: Add support for buffer lists
Olivier Crête [Fri, 29 Nov 2013 21:28:41 +0000 (16:28 -0500)]
baseparse: remove duplicate code
These are already freed by gst_base_parse_clear_queues()
https://bugzilla.gnome.org/show_bug.cgi?id=679768
Sebastian Dröge [Tue, 17 Mar 2015 14:41:38 +0000 (15:41 +0100)]
pluginloader: Fix indention
Vincent Penquerc'h [Fri, 13 Mar 2015 11:08:25 +0000 (11:08 +0000)]
baseparse: reset skip on segments and discontinuities
Large scale skip is an optimization, and thus it is safer to
stop skipping than to continue. Clear skip on segments and
discontinuities, as these are points where it is possible that
the original idea of "bytes to skip" changes.
Sebastian Dröge [Sun, 15 Mar 2015 14:19:17 +0000 (14:19 +0000)]
multiqueue: Don't grow queue infinitely if only one pad is linked
This was introduced by
https://bugzilla.gnome.org/show_bug.cgi?id=719893
https://bugzilla.gnome.org/show_bug.cgi?id=722891
but it doesn't make any sense at all and causes huge memory leaks.
https://bugzilla.gnome.org/show_bug.cgi?id=744253
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.
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.
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()
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()
Tim-Philipp Müller [Sat, 14 Mar 2015 16:05:57 +0000 (16:05 +0000)]
Add new streamiddemux binaries to .gitignore
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
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
Ramiro Polla [Fri, 13 Mar 2015 18:22:01 +0000 (18:22 +0000)]
element: properly escape percent sign in documentation
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))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Wim Taymans [Sat, 14 Mar 2015 13:06:09 +0000 (14:06 +0100)]
defs: update defs
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.
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.
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
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
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
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
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.