Tim-Philipp Müller [Tue, 16 Jul 2013 13:44:03 +0000 (14:44 +0100)]
timeprovider: g-i: allow None as address for gst_net_time_provider_new()
Sebastian Dröge [Tue, 16 Jul 2013 13:34:57 +0000 (15:34 +0200)]
element: Return an empty GstContext if none was set yet
Sebastian Dröge [Tue, 16 Jul 2013 13:16:16 +0000 (15:16 +0200)]
query: Add gst_query_has_context_type()
Sebastian Dröge [Tue, 16 Jul 2013 09:36:50 +0000 (11:36 +0200)]
multiqueue: only block serialized query when it's safe
We must be certain that we don't cause a deadlock when blocking the serialized
queries. One such deadlock can happen when we are buffering and downstream is
blocked in preroll and a serialized query arrives. Downstream will not unblock
(and allow our query to execute) until we complete buffering and buffering will
not complete until we can answer the query..
https://bugzilla.gnome.org/show_bug.cgi?id=702840
Sebastian Dröge [Mon, 15 Jul 2013 09:36:18 +0000 (11:36 +0200)]
pad: A newly activated pad should be marked as needing reconfiguration
Sebastian Dröge [Mon, 15 Jul 2013 09:32:54 +0000 (11:32 +0200)]
Revert "pad: Don't consider flushing pads as needing reconfiguration"
This reverts commit
948a9d2f2b728f5fb60be45d47a818cebeb60c7d.
This is racy and trying to reconfigure and fail is still better
than not trying to reconfigure at all.
https://bugzilla.gnome.org/show_bug.cgi?id=704100
Sebastian Dröge [Mon, 15 Jul 2013 09:32:10 +0000 (11:32 +0200)]
basesrc: Leave the loop function faster if we're flushing
Especially don't even try to send stream-start event or try
to negotiate.
https://bugzilla.gnome.org/show_bug.cgi?id=704100
Sebastian Dröge [Fri, 12 Jul 2013 08:08:26 +0000 (10:08 +0200)]
inputselector: Deactivate and remove pad without the inputselector lock
Otherwise we might get deadlocks caused by lock order inversion:
During the chain function the stream lock is first locked and then the
inputselector lock. During pad release we first locked the inputselector
lock and then deactivating the pad would lock the stream lock.
There's no reason why the inputselector lock should be required while
deactivating and removing the pad, it's only needed before.
https://bugzilla.gnome.org/show_bug.cgi?id=704002
Sebastian Dröge [Thu, 11 Jul 2013 14:57:06 +0000 (16:57 +0200)]
Back to development
Sebastian Dröge [Thu, 11 Jul 2013 13:12:39 +0000 (15:12 +0200)]
Release 1.1.2
Sebastian Dröge [Thu, 11 Jul 2013 13:11:27 +0000 (15:11 +0200)]
Update .po files
Sebastian Dröge [Wed, 10 Jul 2013 13:52:10 +0000 (15:52 +0200)]
bin: Always forward clock-lost message if we're not a top-level bin
This makes sure that no bin misses the clock-lost messages, independent
of the state, and could return an old, non-working clock from
gst_bin_provide_clock_func().
https://bugzilla.gnome.org/show_bug.cgi?id=701997
Sebastian Dröge [Wed, 10 Jul 2013 12:30:31 +0000 (14:30 +0200)]
inputselector: Keep previous active sinkpad around until we're done with it
Otherwise we'll send a new segment event downstream for each buffer.
Tim-Philipp Müller [Mon, 8 Jul 2013 14:26:38 +0000 (15:26 +0100)]
allocator: fix type of gst_memory_alignment to match declaration
Fixes compiler warnings such as
gstallocator.c:61:8: error: conflicting types for 'gst_memory_alignment'
../gst/gstallocator.h:52:18: note: previous declaration of 'gst_memory_alignment' was here
Piotr Drąg [Fri, 5 Jul 2013 19:36:27 +0000 (21:36 +0200)]
po: update POTFILES.in
https://bugzilla.gnome.org/show_bug.cgi?id=703682
Thibault Saunier [Fri, 5 Jul 2013 00:39:26 +0000 (20:39 -0400)]
basesrc: Do not lock a mutex that does not exist
The GST_LIVE_LOCK is on GstBaseSrc, not on its source pad.
Wim Taymans [Wed, 3 Jul 2013 19:23:44 +0000 (21:23 +0200)]
baseparse: reset PTS after seek
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702778
Nicolas Dufresne [Wed, 3 Jul 2013 17:03:49 +0000 (13:03 -0400)]
Add few missing allow-none annotation
Tim-Philipp Müller [Wed, 3 Jul 2013 08:27:13 +0000 (09:27 +0100)]
gst-uninstalled: add new -bad mpegts lib
And remove signalprocessor/video libs from -bad which have gone
away or were merged into -base.
Olivier Crête [Tue, 2 Jul 2013 00:35:21 +0000 (20:35 -0400)]
funnel: Re-push all sticky events when buffers come from a different pad
Don't special case segment/caps, just push all sticky events when they are
received on the currently active pad or when the active pad changes.
Olivier Crête [Tue, 2 Jul 2013 00:21:10 +0000 (20:21 -0400)]
funnel: Use default pad function for upstream event/queries
The default functions in 1.x already do the right thing
Olivier Crête [Tue, 2 Jul 2013 00:18:58 +0000 (20:18 -0400)]
tests: Remove funnel pad_alloc test
Olivier Crête [Tue, 2 Jul 2013 00:07:03 +0000 (20:07 -0400)]
check: Change stream_id parameter name to match GtkDoc
Jonas Holmberg [Mon, 1 Jul 2013 09:10:00 +0000 (11:10 +0200)]
check: Added gst_check_setup_events_with_stream_id()
Added a new function gst_check_setup_events_with_stream_id(), since
gst_check_setup_events() does not work with multiple pads.
https://bugzilla.gnome.org/show_bug.cgi?id=703377
Sebastian Dröge [Sun, 30 Jun 2013 16:39:03 +0000 (18:39 +0200)]
pad: Don't consider flushing pads as needing reconfiguration
Renegotiation and reconfiguration will fail because all queries
and events won't be accepted by the pad if it's flushing. In the
best case this just causes unneeded work and spurious warnings in
the debug logs, in the worst case it causes elements to fail completely.
Wim Taymans [Mon, 24 Jun 2013 21:25:51 +0000 (23:25 +0200)]
queue2: only block serialized query when it's safe
We must be certain that we don't cause a deadlock when blocking the serialized
queries. One such deadlock can happen when we are buffering and downstream is
blocked in preroll and a serialized query arrives. Downstream will not unblock
(and allow our query to execute) until we complete buffering and buffering will
not complete until we can answer the query..
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702840
Sjoerd Simons [Wed, 19 Jun 2013 10:30:47 +0000 (12:30 +0200)]
pad: Add a filter to the caps_query done by acceptcaps
Use the caps that the pad is asked to accept as filter for the query
https://bugzilla.gnome.org/show_bug.cgi?id=702632
Sjoerd Simons [Wed, 19 Jun 2013 10:19:02 +0000 (12:19 +0200)]
basetransform: optimize default acceptcaps implementation
Pass the fixed caps we're asked to accept as a filter for the caps
query, so we don't get a fully-expanded set of caps back (which we don't
need and can take a lot of time for intersection).
This reduces the time for camerabin to produce a second frame on a
logitech C910 camera from around 52 seconds to a bit less then 16
seconds on my system.
https://bugzilla.gnome.org/show_bug.cgi?id=702632
Edward Hervey [Wed, 19 Jun 2013 07:19:53 +0000 (09:19 +0200)]
taglist: Avoid combinatorial explosion when merging tags
When appending/prepending tags, avoid re-creating (and copying) lists if we already
have one and instead just append/prepend the GValue to the list.
https://bugzilla.gnome.org/show_bug.cgi?id=702545
Sebastian Dröge [Wed, 19 Jun 2013 08:53:21 +0000 (10:53 +0200)]
queue: Don't hold the queue mutex while doing serialized queries downstream
https://bugzilla.gnome.org/show_bug.cgi?id=702520
Sebastian Dröge [Wed, 19 Jun 2013 08:45:45 +0000 (10:45 +0200)]
buffer: Add unit test for map_range()
https://bugzilla.gnome.org/show_bug.cgi?id=702617
Paul HENRYS [Wed, 19 Jun 2013 06:36:22 +0000 (08:36 +0200)]
buffer: Fix wrong size/index handling when merging memory
https://bugzilla.gnome.org/show_bug.cgi?id=702617
Stefan Sauer [Tue, 18 Jun 2013 09:39:55 +0000 (11:39 +0200)]
docs: add missing file for doc-link check
Wim Taymans [Mon, 17 Jun 2013 09:12:51 +0000 (11:12 +0200)]
tests: add stress test for buffers and pools
Wim Taymans [Mon, 17 Jun 2013 08:25:20 +0000 (10:25 +0200)]
basesink: call state change in all cases
When we asynchronously go from READY to PLAYING, also call the
state change function so that subclasses can update their state for PLAYING.
Because the PREROLL lock is not recursive, we can't make this without
races and we must assume for now that the subclass can handle concurrent calls
to PAUSED->PLAYING and PLAYING->PAUSED. We can make this assumption because not
many elements actually do something in those state changes and the ones that
did would be broken even more without this change.
https://bugzilla.gnome.org/show_bug.cgi?id=702282
Stefan Sauer [Sun, 16 Jun 2013 13:07:35 +0000 (15:07 +0200)]
docs: fix some external links
Stefan Sauer [Sun, 16 Jun 2013 12:45:08 +0000 (14:45 +0200)]
docs: check for broken links in docs
The check is done using curl (if available). It lists the curl exit code + http
status code (for those > 399) together with the use of the url in the code. The
check is not fatal.
Stefan Sauer [Sun, 16 Jun 2013 11:05:21 +0000 (13:05 +0200)]
docs: change https to http urls
Thank you browser for needlessly changing to https for static doc pages.
Stefan Sauer [Sun, 16 Jun 2013 09:41:52 +0000 (11:41 +0200)]
docs: update links to developer.gnome.org
The URL layout has changed. Fix the links and comment out one paragraph where
the doc is gone.
Fixes #702135
Sebastian Dröge [Fri, 14 Jun 2013 11:05:38 +0000 (13:05 +0200)]
structure: Add gst_structure_new_from_string()
Convenience API for bindings, gst_structure_from_string() returns
a tuple (structure, end_ptr) in bindings and is unintuitive to use
because of that.
Hans de Goede [Thu, 13 Jun 2013 06:36:23 +0000 (08:36 +0200)]
gst: Don't intercept --help in gst_init()
Before this patch gst_init would intercept --help, causing for example
cheese's --help to look like this:
[hans@shalem cheese]$ cheese --help
Usage:
cheese [OPTION...] - GStreamer initialization
Help Options:
-h, --help Show help options
--help-all Show all help options
--help-gst Show GStreamer Options
gst_init is the only gfoo_init function which does this.
https://bugzilla.gnome.org/show_bug.cgi?id=702089
Tim-Philipp Müller [Wed, 12 Jun 2013 08:45:56 +0000 (09:45 +0100)]
gst-uninstalled: add uridownloader lib in -bad to search paths
Even if it might not be around for long.
Sebastian Dröge [Tue, 11 Jun 2013 08:25:02 +0000 (10:25 +0200)]
gst-launch: Remove unref that should not be there
We keep a reference to the context around all the time.
https://bugzilla.gnome.org/show_bug.cgi?id=701985
Sebastian Dröge [Sun, 9 Jun 2013 15:20:22 +0000 (17:20 +0200)]
gst-launch: Improve GstContext handling
https://bugzilla.gnome.org/show_bug.cgi?id=700967
Kim Lam [Fri, 7 Jun 2013 11:07:37 +0000 (13:07 +0200)]
win32: Don't include gstcollectpads.c twice
https://bugzilla.gnome.org/show_bug.cgi?id=701603
Brendan Long [Fri, 31 May 2013 15:39:55 +0000 (09:39 -0600)]
input-selector: send notify::active signal for input-selector pads.
https://bugzilla.gnome.org/show_bug.cgi?id=701319
Sebastian Dröge [Thu, 6 Jun 2013 14:46:12 +0000 (16:46 +0200)]
basesrc: Only force-update the duration for dynamic sources when doing the DURATION query
Doing it after every single create() is not very efficient and not necessary.
Especially on network file systems fstat() is not cached and causes network
traffic, making the source possibly unusable slow.
https://bugzilla.gnome.org/show_bug.cgi?id=652037
Sebastian Dröge [Wed, 5 Jun 2013 16:36:40 +0000 (18:36 +0200)]
Back to development
Sebastian Dröge [Wed, 5 Jun 2013 15:58:51 +0000 (17:58 +0200)]
Release 1.1.1
Sebastian Dröge [Wed, 5 Jun 2013 14:06:35 +0000 (16:06 +0200)]
Update .po files
Sebastian Dröge [Wed, 5 Jun 2013 13:14:14 +0000 (15:14 +0200)]
Automatic update of common submodule
From 098c0d7 to 01a7a46
Edward Hervey [Wed, 5 Jun 2013 09:02:50 +0000 (11:02 +0200)]
gstvalue: Add _append_and_take_value() public variants
API: gst_value_array_append_and_take_value
API: gst_value_list_append_and_take_value
We were already using this internally, this makes it public for code
which frequently appends values which are expensive to copy (like
structures, arrays, caps, ...).
Avoids copies of the values for users. The passed GValue will also
be 0-memset'ed for re-use.
New users can replace this kind of code:
gst_value_*_append_value(mycontainer, &myvalue);
g_value_unset(&myvalue);
by:
gst_value_*_append_and_take_value(mycontainer, &myvalue);
https://bugzilla.gnome.org/show_bug.cgi?id=701632
Edward Hervey [Wed, 29 May 2013 15:20:34 +0000 (17:20 +0200)]
gstbuffer: Use internal function for buffer_new_wrapped
Shaves ~10% instruction calls from the total cost
https://bugzilla.gnome.org/show_bug.cgi?id=701633
Brendan Long [Fri, 31 May 2013 04:57:49 +0000 (22:57 -0600)]
input-selector: return FALSE for "active" property if selector is NULL
https://bugzilla.gnome.org/show_bug.cgi?id=701323
Andrzej Bieniek [Sat, 1 Jun 2013 13:00:22 +0000 (14:00 +0100)]
manual: update elements to match the rest of "Boost priority of a thread" section
Andrzej Bieniek [Sat, 1 Jun 2013 12:55:50 +0000 (13:55 +0100)]
manual: fix comment in effectswitch example
Andrzej Bieniek [Sat, 1 Jun 2013 12:49:18 +0000 (13:49 +0100)]
manual: fix a typo in "Inserting data with appsrc" section
Andrzej Bieniek [Sat, 1 Jun 2013 12:22:22 +0000 (13:22 +0100)]
pwg: fix a few typos
Andrzej Bieniek [Fri, 31 May 2013 22:37:07 +0000 (23:37 +0100)]
docs: remove double "the"
Krzysztof Konopko [Tue, 28 May 2013 22:34:54 +0000 (23:34 +0100)]
scripts: improve git-update.sh status message
By default when the script is about to exit (normally or due to an error),
it checks whether $ERROR_LOG file exists. If the log file exists, the
script prints a "Failures: " message prefix and dumps the log file to the
output.
Apparently the log file is always created and if the update/build is
successful, the script finishes with a bit misleading "Failures: " message.
An improvement provided with this change lets the log file to be created as
needed, i.e. if there's an error message to be printed. If the file
doesn't exists, the script prints a "Update done" message which clearly
indicates success.
https://bugzilla.gnome.org/show_bug.cgi?id=701177
Wim Taymans [Thu, 30 May 2013 05:03:40 +0000 (07:03 +0200)]
check: fix position unit test
Wim Taymans [Thu, 30 May 2013 04:51:24 +0000 (06:51 +0200)]
basesink: improve position reporting without clock
When no base time or when sync is disabled, use the same logic as
in paused to report position. The logic in PLAYING assumes we use the
clock.
Sebastian Dröge [Wed, 29 May 2013 09:36:38 +0000 (11:36 +0200)]
pad: Fix memory leak in the unit test
Sebastian Dröge [Tue, 28 May 2013 10:44:19 +0000 (12:44 +0200)]
elementfactory: Add support for checking subtitle/metadata factory types
Sebastian Dröge [Tue, 28 May 2013 10:41:27 +0000 (12:41 +0200)]
elementfactory: Add support for checking only the media type of a factory
And while at it also add Metadata and Subtitle media types.
Sebastian Dröge [Mon, 27 May 2013 14:38:18 +0000 (16:38 +0200)]
(multi)queue: Don't access query items during flushing
Sebastian Dröge [Mon, 27 May 2013 14:22:00 +0000 (16:22 +0200)]
multiqueue: Don't do serialized queries when we're flushing
Just immediately fail the query, otherwise we would wait forever
for the query to be answered.
Sebastian Dröge [Mon, 27 May 2013 14:08:39 +0000 (16:08 +0200)]
queue2: First set query result, then signal GCond
Sebastian Dröge [Mon, 27 May 2013 13:59:07 +0000 (15:59 +0200)]
queue: Fix handling of serialized queries
During FLUSH_START the query needs to be unblocked already, otherwise
it can lead to deadlocks if the FLUSH_START is the result of something
done from the streaming thread of the srcpad (the queue will never be
emptied!).
Sebastian Dröge [Mon, 27 May 2013 13:41:14 +0000 (15:41 +0200)]
queue2: Unblock any waiting serialize queries on FLUSH_START
Fixes some deadlocks during flushing.
And store queue items differently to not accidentially read
already unreffed queries when flushing. Queries are owned by
upstream and not us.
Sebastian Dröge [Mon, 27 May 2013 11:01:43 +0000 (13:01 +0200)]
queue/queue2/multiqueue: When flushing, make sure to not lose any sticky events
https://bugzilla.gnome.org/show_bug.cgi?id=688824
Sebastian Dröge [Mon, 27 May 2013 10:40:50 +0000 (12:40 +0200)]
pad: Store sticky events even if the pad is flushing
But do this only for events that are not dropped by flushing,
i.e. do it only for everything except SEGMENT and EOS.
Without this we might drop a CAPS event if flushing happens
at an unfortunate time and nobody is resending the CAPS event.
https://bugzilla.gnome.org/show_bug.cgi?id=700806
Nicolas Dufresne [Sun, 26 May 2013 02:03:53 +0000 (22:03 -0400)]
valve: Don't read sticky flag from unrefed event
Tim-Philipp Müller [Fri, 24 May 2013 22:28:04 +0000 (23:28 +0100)]
tee: fix property description for now-unused "alloc-pad" property
Should probably proxy ALLOCATION queries on that though, if set.
But what else? CAPS and ACCEPT_CAPS too?
Tim-Philipp Müller [Fri, 24 May 2013 22:01:09 +0000 (23:01 +0100)]
basetransform: remove 0.10-ism from docs
gst_buffer_pad_alloc() never existed, and gst_pad_alloc_buffer()
doesn't exist any more either, so don't mention it in the docs.
https://bugzilla.gnome.org/show_bug.cgi?id=694714
Sebastian Dröge [Fri, 24 May 2013 17:22:22 +0000 (19:22 +0200)]
queue2: Add support for serialized queries if using a memory queue
Sebastian Dröge [Fri, 24 May 2013 16:47:24 +0000 (18:47 +0200)]
queue: Set the last serialized query result to FALSE when flushing
Sebastian Dröge [Fri, 24 May 2013 16:42:55 +0000 (18:42 +0200)]
multiqueue: Initialize all GstMultiQueueItem fields in both code paths
Sebastian Dröge [Fri, 24 May 2013 16:38:40 +0000 (18:38 +0200)]
multiqueue: Don't access the query after signalling the waiting thread
It might've free'd the query already.
Sebastian Dröge [Fri, 24 May 2013 16:30:44 +0000 (18:30 +0200)]
multiqueue: Make sure to always signal any possible pending serialized queries
And don't unref them when flushing the queue, they're owned by the caller!
https://bugzilla.gnome.org/show_bug.cgi?id=700342
Sebastian Dröge [Fri, 24 May 2013 12:37:19 +0000 (14:37 +0200)]
basetransform: Return GST_FLOW_ERROR if the allocator did not allow to allocate a buffer
Olivier Crête [Fri, 24 May 2013 07:24:10 +0000 (16:24 +0900)]
docs: Remove mention of gconf* elements
Instead recommend pulsesrc/sink for audio, there is nothing GNOME
specific for video.
Sebastian Dröge [Wed, 15 May 2013 11:22:04 +0000 (13:22 +0200)]
typefind: Handle the force-caps property more similar to all typefinding code flow
This makes sure that events happen in order and simplifies the code a bit.
Sebastian Dröge [Wed, 15 May 2013 09:21:46 +0000 (11:21 +0200)]
check: Fix event handling in gst_check_element_push_buffer_list()
Sebastian Dröge [Wed, 15 May 2013 08:51:01 +0000 (10:51 +0200)]
Automatic update of common submodule
From 5edcd85 to 098c0d7
Sebastian Dröge [Fri, 10 May 2013 14:03:34 +0000 (16:03 +0200)]
pad: Only check if we get buffers before stream-start/segment if compiling without G_DISABLE_ASSERT
In releases this is set usually.
Nicolas Dufresne [Thu, 9 May 2013 21:17:14 +0000 (17:17 -0400)]
check: Add helper that sends initial events
https://bugzilla.gnome.org/show_bug.cgi?id=700033
Sebastian Dröge [Thu, 9 May 2013 15:22:16 +0000 (17:22 +0200)]
pad: Fix uninitialized variable compiler warning
Sebastian Dröge [Thu, 9 May 2013 15:21:13 +0000 (17:21 +0200)]
pad: Make sure pending, older sticky events are sent downstream in dynamic linking scenarios
If a pad block was triggered from sending a sticky event downstream, it
could happen that the pad block is relinking pads, which then requires
to resend previous sticky events.
Sebastian Dröge [Thu, 9 May 2013 11:32:07 +0000 (13:32 +0200)]
tests: Fix event order warnings and dataflow before stream-start/segment event
Sebastian Dröge [Thu, 9 May 2013 11:31:38 +0000 (13:31 +0200)]
basetransform: Properly port unit test to actually use caps and check results
Sebastian Dröge [Thu, 9 May 2013 10:50:20 +0000 (12:50 +0200)]
queue: Store sticky events on the srcpad if we're dropping them because of leaking
Sebastian Dröge [Thu, 9 May 2013 10:27:12 +0000 (12:27 +0200)]
outputselector: Always forward sticky events to all pads
Sebastian Dröge [Thu, 9 May 2013 10:15:48 +0000 (12:15 +0200)]
inputselector: Forward all sticky events, including stream-start
Sebastian Dröge [Thu, 9 May 2013 09:05:50 +0000 (11:05 +0200)]
pad: Warn if data flow happens before stream-start or segment event
Sebastian Dröge [Thu, 9 May 2013 08:59:41 +0000 (10:59 +0200)]
pad: Only let gst_pad_sticky_events_foreach() iterate over existing events
Sebastian Dröge [Thu, 9 May 2013 08:29:11 +0000 (10:29 +0200)]
pad: If we push sticky events because of another sticky event, only push those that come before the new event
https://bugzilla.gnome.org/show_bug.cgi?id=699937
Sebastian Dröge [Thu, 9 May 2013 07:50:41 +0000 (09:50 +0200)]
capsfilter: Add more debug output and forward caps events immediately too
Sebastian Dröge [Thu, 9 May 2013 07:42:33 +0000 (09:42 +0200)]
pad: No sticky events must arrive after EOS
Sebastian Dröge [Thu, 9 May 2013 07:38:35 +0000 (09:38 +0200)]
capsfilter: Fix typo in last commit