Sebastian Dröge [Wed, 2 Oct 2013 11:03:54 +0000 (13:03 +0200)]
caps: Add a testcase for subset checks on lists with duplicated items
https://bugzilla.gnome.org/show_bug.cgi?id=709253
Thibault Saunier [Wed, 9 Oct 2013 18:36:48 +0000 (15:36 -0300)]
collectpads: Call the collected function while it returns FLOW_OK
This allows us to make sure the elements is EOS and does not have
remaining buffers to be drained.
https://bugzilla.gnome.org/show_bug.cgi?id=709637
Tim-Philipp Müller [Sat, 5 Oct 2013 09:08:30 +0000 (10:08 +0100)]
docs: fix function name in qos design docs
Tim-Philipp Müller [Wed, 2 Oct 2013 11:30:54 +0000 (12:30 +0100)]
tests: use tcase_skip_broken_test() to skip broken multiqueue test
So that we get a warning in the output that reminds us that
something needs to be fixed.
Edward Hervey [Wed, 2 Oct 2013 09:24:02 +0000 (11:24 +0200)]
check: Disable multiqueue test_output_order check
The check itself is racy.
(CK_FORK=no GST_CHECK=test_output_order make elements/multiqueue.forever).
The problem is indeed the test and not the actual element behaviour.
The objects to push are being pulled out of the single internal queues in the
right order and at the right time...
But between:
* the moment the global multiqueue lock is released (which was used to detect
if we should pop and push downstream the next buffer)
* and the moment it is received by the source pad (which does the check)
=> another single queue (like the unlinked pad) might pop and push a buffer
downstream
What should we do ? Putting a bigger margin of error (say 5 buffers) doesn't
help, it'll eventually fail.
I can't see how we can detect this reliably.
https://bugzilla.gnome.org/show_bug.cgi?id=708661
Thiago Santos [Wed, 25 Sep 2013 22:06:55 +0000 (19:06 -0300)]
value: fix caps serialization when there are caps inside caps
Wrap caps strings so that it can handle serialization and deserialization
of caps inside caps. Otherwise the values from the internal caps are parsed
as if they were from the upper one
https://bugzilla.gnome.org/show_bug.cgi?id=708772
Edward Hervey [Sat, 28 Sep 2013 06:40:42 +0000 (08:40 +0200)]
pluginloader: Check errors on the proper fd
Most likely a copy-paste error from the block before.
If we're going to check for error/closed on the write fd... do it
on the write fd
Brendan Long [Thu, 26 Sep 2013 20:09:02 +0000 (14:09 -0600)]
docs: fix spelling of "generic" in GstBaseSrc's documentation.
https://bugzilla.gnome.org/show_bug.cgi?id=708870
Wim Taymans [Thu, 26 Sep 2013 09:32:50 +0000 (11:32 +0200)]
pad: only check event order when something changed
Check the event order in dataflow only when something changed instead
of for each buffer.
Tim-Philipp Müller [Tue, 24 Sep 2013 17:28:05 +0000 (18:28 +0100)]
Automatic update of common submodule
From 6b03ba7 to 865aa20
Sebastian Dröge [Tue, 24 Sep 2013 13:05:16 +0000 (15:05 +0200)]
configure: Actually use 1.3.0.1 as version to make configure happy
Sebastian Dröge [Tue, 24 Sep 2013 13:00:17 +0000 (15:00 +0200)]
Back to development
Sebastian Dröge [Tue, 24 Sep 2013 12:07:02 +0000 (14:07 +0200)]
Release 1.2.0
Sebastian Dröge [Tue, 24 Sep 2013 12:06:28 +0000 (14:06 +0200)]
Update .po files
Sebastian Dröge [Tue, 24 Sep 2013 11:10:36 +0000 (13:10 +0200)]
context: Add test for the context caching in GstBin
https://bugzilla.gnome.org/show_bug.cgi?id=708668
Sebastian Dröge [Tue, 24 Sep 2013 10:47:52 +0000 (12:47 +0200)]
Revert "Potential GstContext regression"
This reverts commit
e658379534eb4a90b654d90f1d0bdf86f37c6e31.
This test commit should've never been pushed. Oops.
Sebastian Dröge [Tue, 24 Sep 2013 10:46:52 +0000 (12:46 +0200)]
bin: Make sure to cache context types that we did not store yet
https://bugzilla.gnome.org/show_bug.cgi?id=708668
Alex Ashley [Tue, 24 Sep 2013 09:29:06 +0000 (10:29 +0100)]
Potential GstContext regression
Since the refactoring of GstContext (commits
qc9fa2771b508e9aaeecc700e66e958190476f,
a7f5dc8b8af837f01782d1572379948ff62daab7,
690326f906dc82e41ea58b81cdb2e3e88b754,
d367dc1b0d4ecb37f4d27267e03d7bf0c6c06a6, and
82d158aed3f2e8545e1e7d35085085ff58f18) I am no longer able to get
a shared context for an element that is used twice in a pipeline.
I used the documentation and eglglessink as my reference for
implementing the GstContext logic.
As the code was tied to a hardware decoder, I have ported the
GstContext code to fakesink to show the problem. Using the old
API a single ExampleMgr instance is created, but using the new
API each element is creating its own instance.
Sebastian Dröge [Tue, 24 Sep 2013 08:42:06 +0000 (10:42 +0200)]
collectpads: Make sure that the object lock is always taken when accessing the private pad list
https://bugzilla.gnome.org/show_bug.cgi?id=708636
Mathieu Duponchelle [Tue, 17 Sep 2013 21:23:34 +0000 (23:23 +0200)]
collectpads: Use private pad list in set_flushing_unlocked
pads->data is the public list. It is dynamically rebuilt at each call to
check_collected, in check_pads to be specific. When you add a pad and
collectpads have been started, it is not added to the public list.
Thus there exists a possible race where :
1) You would add a pad to collectpads while running.
2) You set collectpads to flushing before check_collected has been called again
-> the pad is not set to flushing
3) the pad starts pushing data as downstream might not be prepared, in the case
of adder it then returns FLOW_FLUSHING.
4) elements like demuxers, when they get a FLOW_FLUSHING, stop their tasks,
never to be seen again.
https://bugzilla.gnome.org/show_bug.cgi?id=708636
Wim Taymans [Mon, 23 Sep 2013 09:47:14 +0000 (11:47 +0200)]
tests: handle unscheduled entries correctly
Make the testclock return GST_CLOCK_UNSCHEDULED when an unscheduled entry is
used for gst_clock_wait() or gst_clock_wait_async().
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=708605
Edward Hervey [Sun, 22 Sep 2013 09:09:36 +0000 (11:09 +0200)]
gst-uninstalled: Allow specifying the checkout directory by env variable
For some rare cases, one might not be able to use the hardcoded $HOME/gst
location yet would still want to use the gst-uninstalled script as-is (which
has the benefit of being constantly updated).
For these cases, the checkout directory can be specified with the
GST_UNINSTALLED_ROOT environment variable.
Ex:
export GST_UNINSTALLED_ROOT=$HOME/somewhere/with/checkouts
And then just call gst-uninstalled directly:
$GST_UNINSTALLED_ROOT/gstreamer/gst-uninstalled
Edward Hervey [Fri, 20 Sep 2013 14:16:26 +0000 (16:16 +0200)]
Automatic update of common submodule
From b613661 to 6b03ba7
Tim-Philipp Müller [Thu, 19 Sep 2013 17:42:31 +0000 (18:42 +0100)]
Automatic update of common submodule
From 74a6857 to b613661
Tim-Philipp Müller [Thu, 19 Sep 2013 16:34:27 +0000 (17:34 +0100)]
Automatic update of common submodule
From 12af105 to 74a6857
Tim-Philipp Müller [Thu, 19 Sep 2013 16:12:14 +0000 (17:12 +0100)]
check: testclock: fix function guards
Should be g_return_*() not g_assert(), even if it's for tests only.
Tim-Philipp Müller [Thu, 19 Sep 2013 15:43:18 +0000 (16:43 +0100)]
check: testclock: don't put code with side-effects in g_assert()
Fixes unit test failures when -DG_DISABLE_ASSERT is used.
https://bugzilla.gnome.org/show_bug.cgi?id=706551
Edward Hervey [Thu, 19 Sep 2013 10:07:56 +0000 (12:07 +0200)]
gstcontext: Fix return values some more
Return value is a boolean not a pointer
Sebastian Dröge [Thu, 19 Sep 2013 09:49:26 +0000 (11:49 +0200)]
context: Fix return values for gst_context_has_context_type() in assertions
Sebastian Dröge [Thu, 19 Sep 2013 09:34:51 +0000 (11:34 +0200)]
Back to development
Sebastian Dröge [Thu, 19 Sep 2013 08:48:24 +0000 (10:48 +0200)]
Release 1.1.90
Sebastian Dröge [Thu, 19 Sep 2013 08:05:51 +0000 (10:05 +0200)]
Update .po files
Sebastian Dröge [Thu, 19 Sep 2013 07:49:40 +0000 (09:49 +0200)]
context: Add convenience function gst_context_has_context_type()
Sebastian Dröge [Thu, 19 Sep 2013 07:42:15 +0000 (09:42 +0200)]
po: Update translations
Sebastian Dröge [Wed, 18 Sep 2013 21:07:31 +0000 (23:07 +0200)]
message: Implement getting the name of the context message types
Sebastian Dröge [Tue, 17 Sep 2013 19:36:22 +0000 (21:36 +0200)]
context: Fix unit test for GstContext changes
Sebastian Dröge [Tue, 17 Sep 2013 12:34:47 +0000 (14:34 +0200)]
gst-launch: Update for GstContext changes
Sebastian Dröge [Tue, 17 Sep 2013 12:29:06 +0000 (14:29 +0200)]
context: Update docs
Sebastian Dröge [Tue, 17 Sep 2013 12:25:10 +0000 (14:25 +0200)]
bin: Implement context caching and propagation again
Sebastian Dröge [Tue, 17 Sep 2013 11:50:08 +0000 (13:50 +0200)]
message/query: Simplify CONTEXT messages/queries to only contain a single type
Sebastian Dröge [Tue, 17 Sep 2013 11:33:33 +0000 (13:33 +0200)]
context: Update documentation
Sebastian Dröge [Tue, 17 Sep 2013 11:28:42 +0000 (13:28 +0200)]
context: Change GstContext to contain only a single context
It was unintuitive that GstContext was actually a list of different
contexts. GstContext now is only a type string and a structure to
contain the actual context.
Sebastian Dröge [Tue, 17 Sep 2013 11:12:28 +0000 (13:12 +0200)]
element: Remove GstContext caching
Sebastian Dröge [Tue, 17 Sep 2013 11:10:53 +0000 (13:10 +0200)]
context: Add persistent qualifier for a context
Non-persistent contexts are removed when elements go back
to NULL state, persistent contexts are not. Applications
most likely want to set persistent contexts.
Sebastian Dröge [Tue, 17 Sep 2013 11:10:16 +0000 (13:10 +0200)]
query: Make CONTEXT query upstream and downstream
Sebastian Dröge [Tue, 17 Sep 2013 11:09:34 +0000 (13:09 +0200)]
event: Remove CONTEXT downstream event
This is going to be implemented with an upstream query instead
for consistency and simplicity.
Jonas Holmberg [Fri, 13 Sep 2013 12:41:45 +0000 (14:41 +0200)]
gst: Stop all unused threads in GThreadPool in gst_deinit()
Since the default number of max unused threads in GThreadPool has been
changed from 0 to 2 it needs to be set to 0 to stop all threads or
valgrind will report them as memory leaks.
Rico Tzschichholz [Tue, 10 Sep 2013 15:39:30 +0000 (16:39 +0100)]
controlbindings: fix pspec relaxation for control source properties
The change should have been from PARAM_CONSTRUCT_ONLY to
PARAM_CONSTRUCT, otherwise bindings are affected, since
they look for the CONSTRUCT flag.
See
ec55363d
Sebastian Dröge [Tue, 10 Sep 2013 08:15:03 +0000 (10:15 +0200)]
queue2: Only update current level if we already downloaded a range
Otherwise queue->level is NULL and dereferencing that is not a good
idea in general.
https://bugzilla.gnome.org/show_bug.cgi?id=707648
Sebastian Dröge [Mon, 9 Sep 2013 13:40:25 +0000 (15:40 +0200)]
meta: Deprecate GST_META_TAG_MEMORY
The GQuarks are not exported by any public API
Mathieu Duponchelle [Wed, 21 Aug 2013 22:02:28 +0000 (00:02 +0200)]
meta: Add a #define for memory metadata
Mathieu Duponchelle [Wed, 21 Aug 2013 22:01:44 +0000 (00:01 +0200)]
basetransform: implement a default transform_meta.
If a metadata has no dependency as shown by the tags, copy it.
Mathieu Duponchelle [Thu, 22 Aug 2013 19:32:36 +0000 (21:32 +0200)]
meta: API: Add gst_meta_api_type_get_tags() to get all meta tags.
Sebastian Dröge [Mon, 9 Sep 2013 12:21:56 +0000 (14:21 +0200)]
tests/capsfilter: Fix memory leak and compare caps directly instead of strcmp()
Sebastian Rasmussen [Fri, 6 Sep 2013 21:03:54 +0000 (23:03 +0200)]
tests/capsfilter: Test caps-related queries and property
Gustavo Noronha Silva [Fri, 6 Sep 2013 18:09:46 +0000 (15:09 -0300)]
Update the buffering state before stalling for more data
In some cases the wait for more data was happening without updating
the buffering state, meaning the API user would not be able to notice
it should pause the pipeline and update UI to indicate that is the
case, the video would likely stutter instead.
https://bugzilla.gnome.org/show_bug.cgi?id=707648
Thiago Santos [Wed, 4 Sep 2013 18:28:10 +0000 (15:28 -0300)]
basesrc: preserve seqnum on segments after seeks
The seqnum of the segment after a seek should be the same of
the seek event. Downstream elements might rely on seqnums to
identify events related to a seek.
This is particularly important when a demuxer maps a TIME seek
into a BYTES seek for upstream and it needs to identify the
corresponding segment event and map it back into TIME to push
downstream, possibly using the values from the original seek
event.
https://bugzilla.gnome.org/show_bug.cgi?id=707530
Zaheer Abbas Merali [Thu, 5 Sep 2013 12:14:42 +0000 (14:14 +0200)]
collectpads: Don't unref NULL GstCollectData
If a pad is removed while a collectpads element (say adder) is in a chain
function waiting to be collected, there is a possibility that an unref happens
on a NULL pointer.
https://bugzilla.gnome.org/show_bug.cgi?id=707536
Christian Fredrik Kalager Schaller [Wed, 4 Sep 2013 15:11:20 +0000 (17:11 +0200)]
Remove PyXML from spec file, it is not longer needed
Sebastian Dröge [Wed, 4 Sep 2013 12:40:57 +0000 (14:40 +0200)]
typefind: Add missing break after handling the GAP event
Thanks to Edward Hervey for noticing.
Tim-Philipp Müller [Wed, 4 Sep 2013 08:18:55 +0000 (09:18 +0100)]
tools: move gst-plot-timeline.py into scripts directory
So it's not in PATH in an uninstalled setup (thwarting
gst-play autocompletion).
Matej Knopp [Tue, 3 Sep 2013 21:59:05 +0000 (23:59 +0200)]
multiqueue: Don't reduce single queue visible size below its current level
If the multiqueue has automatically grown chances are good that
we will cause the pipeline to starve if the maximum level is reduced
below that automatically grown size.
https://bugzilla.gnome.org/show_bug.cgi?id=707156
Sebastian Dröge [Mon, 2 Sep 2013 11:53:51 +0000 (13:53 +0200)]
outputselector: Don't adjust segment->start to the current time when switching pads
This does not make any sense at all and breaks timestamp->running_time
calculations in unpredictable ways.
https://bugzilla.gnome.org/show_bug.cgi?id=707130
Mathieu Duponchelle [Thu, 29 Aug 2013 21:18:31 +0000 (23:18 +0200)]
capsfilter: Delete link directly in pending_events.
When removing a segment event.
https://bugzilla.gnome.org/show_bug.cgi?id=707088
Tim-Philipp Müller [Thu, 29 Aug 2013 10:07:38 +0000 (11:07 +0100)]
basesink: demote log message, don't spam INFO level when handling buffer lists
Sebastian Dröge [Wed, 28 Aug 2013 11:26:28 +0000 (13:26 +0200)]
Back to development
Sebastian Dröge [Wed, 28 Aug 2013 10:36:16 +0000 (12:36 +0200)]
Release 1.1.4
Sebastian Dröge [Wed, 28 Aug 2013 10:36:01 +0000 (12:36 +0200)]
Update .po files
Sebastian Dröge [Wed, 28 Aug 2013 10:30:00 +0000 (12:30 +0200)]
po: update translations
Alessandro Decina [Tue, 27 Aug 2013 07:31:22 +0000 (09:31 +0200)]
filesink: please gcc (avoid a warn_unused_result warning)
Alessandro Decina [Tue, 27 Aug 2013 05:51:35 +0000 (07:51 +0200)]
filesink: flush (discard data) on FLUSH_STOP
Reset the write position to 0 and truncate the file on FLUSH_STOP.
Alessandro Decina [Tue, 27 Aug 2013 05:05:11 +0000 (07:05 +0200)]
tests: filesink: small refactoring
Tim-Philipp Müller [Mon, 26 Aug 2013 12:19:10 +0000 (13:19 +0100)]
tools: gst-launch: don't print properties being reset when shutting down
It's just noise.
Edward Hervey [Thu, 22 Aug 2013 17:01:32 +0000 (19:01 +0200)]
basetransform: Don't push out identical caps
This avoids triggering plenty of extra code/methods/overhead downstream when
we can just quickly check whenever we want to set caps whether they are
identical or not
https://bugzilla.gnome.org/show_bug.cgi?id=706600
Tim-Philipp Müller [Wed, 21 Aug 2013 11:21:43 +0000 (12:21 +0100)]
docs: flesh out gst_sample_get_buffer() a little
https://bugzilla.gnome.org/show_bug.cgi?id=706478
Kerrick Staley [Wed, 21 Aug 2013 06:59:29 +0000 (23:59 -0700)]
parse: make grammar.y work with Bison 3
YYLEX_PARAM is no longer supported in Bison 3.
https://bugzilla.gnome.org/show_bug.cgi?id=706462
Wonchul Lee [Tue, 20 Aug 2013 08:15:41 +0000 (17:15 +0900)]
sample: Add gst_sample_copy()
https://bugzilla.gnome.org/show_bug.cgi?id=706454
Olivier Crête [Mon, 19 Aug 2013 18:55:22 +0000 (14:55 -0400)]
buffer: Fix gst_buffer_memcmp() where the buffer is smaller than size
Also add unit tests for gst_buffer_memcmp
https://bugzilla.gnome.org/show_bug.cgi?id=706162
Tim-Philipp Müller [Tue, 20 Aug 2013 16:06:49 +0000 (17:06 +0100)]
docs: flesh out gst_element_query_{duration,position} docs a bit
Matthieu Bouron [Wed, 14 Aug 2013 15:18:59 +0000 (16:18 +0100)]
taglist: handle publisher and interpreted-by tags
https://bugzilla.gnome.org/show_bug.cgi?id=705999
Sebastian Dröge [Tue, 20 Aug 2013 11:58:24 +0000 (13:58 +0200)]
pluginloader: Don't call memcpy() with NULL src and 0 length
Sebastian Dröge [Tue, 20 Aug 2013 08:16:41 +0000 (10:16 +0200)]
queue: Properly unlock the sinkpad streaming thread when deactivating the pad
https://bugzilla.gnome.org/show_bug.cgi?id=705835
Sebastian Dröge [Tue, 20 Aug 2013 08:16:05 +0000 (10:16 +0200)]
queue2: Properly unlock the sinkpad streaming thread when deactivating the pad
https://bugzilla.gnome.org/show_bug.cgi?id=706360
Sebastian Dröge [Mon, 19 Aug 2013 14:38:50 +0000 (16:38 +0200)]
multiqueue: Clean up after the streaming thread has stopped
https://bugzilla.gnome.org/show_bug.cgi?id=705835
Sebastian Dröge [Mon, 19 Aug 2013 14:38:40 +0000 (16:38 +0200)]
queue2: Clean up after the streaming thread has stopped
https://bugzilla.gnome.org/show_bug.cgi?id=705835
Sebastian Dröge [Mon, 19 Aug 2013 14:38:16 +0000 (16:38 +0200)]
queue: Clean up after the streaming thread has stopped
https://bugzilla.gnome.org/show_bug.cgi?id=705835
Brendan Long [Mon, 1 Jul 2013 20:04:46 +0000 (14:04 -0600)]
parse: Add GST_FLAG_NO_SINGLE_ELEMENT_BINS
This makes gst_parse_bin_from_description() return an element instead of
a bin if there's only one element. Also changed gstparse.c to use this,
so gst-launch won't create superfluous bins.
https://bugzilla.gnome.org/show_bug.cgi?id=703405
Arnaud Vrac [Fri, 16 Aug 2013 18:36:53 +0000 (20:36 +0200)]
query: return NULL when parsing uri redirection that was not set
https://bugzilla.gnome.org/show_bug.cgi?id=706160
Sebastian Dröge [Sun, 18 Aug 2013 09:48:40 +0000 (11:48 +0200)]
buffer: Update since marker for gst_buffer_extract_dup() to 1.0.10
Tim-Philipp Müller [Fri, 16 Aug 2013 15:45:41 +0000 (16:45 +0100)]
queue2: don't crash on EOS if queue is empty
Fixes spurious crash in test_simple_shutdown_while_running
unit test.
Tim-Philipp Müller [Fri, 16 Aug 2013 15:28:12 +0000 (16:28 +0100)]
queue2: don't change global buffering state from within query handler
When a buffering query is handled it uses the get_buffering_percent()
function to get some statitics. Unfortunately this function also
calculates whether the queue should be buffering and adapts the
global queue2 state in case of state transitions from/to buffering
(including whether a buffering message was posted on the bus!).
This means that there is a race which can cause buffering messages
to never posted if the global state changes happen as a result of aa
query instead of resulting from bytes flowing in/out.
Spotted by Sjoerd Simons.
Change to only query state in get_buffering_percent() and update
state only in update_buffering().
https://bugzilla.gnome.org/show_bug.cgi?id=705332
Wim Taymans [Fri, 16 Aug 2013 10:54:38 +0000 (12:54 +0200)]
queue2: update buffering when changing capacity
When the capacity of the queue changes, make sure we post an updated buffering
message because we might suddenly have completed the buffering stage.
Jonas Holmberg [Thu, 15 Aug 2013 13:35:08 +0000 (15:35 +0200)]
Free thread pools in gst_deinit()
Jonas Holmberg [Fri, 16 Aug 2013 09:03:30 +0000 (11:03 +0200)]
check: Call gst_deinit() at exit of all processes
Tim-Philipp Müller [Wed, 14 Aug 2013 20:41:23 +0000 (21:41 +0100)]
clock: simplify internal gst_clock_return_get_name() helper
Wim Taymans [Wed, 14 Aug 2013 15:44:48 +0000 (17:44 +0200)]
basesrc: improve flush-start handling
Use custom code to implement flush-stop, we can't reuse the set_flushing code
because we can't touch the live_playing flag and we need to signal the
streaming thread.
Wim Taymans [Wed, 14 Aug 2013 15:14:15 +0000 (17:14 +0200)]
basesrc: stop flushing in flush-stop
Wim Taymans [Wed, 14 Aug 2013 14:58:41 +0000 (16:58 +0200)]
basesrc: handle flush better
Unlock the streaming thread when flushing so that we can
insert the flush-stop correctly.
Edward Hervey [Wed, 14 Aug 2013 13:46:57 +0000 (15:46 +0200)]
.gitignore: ignore .dirstamp
Edward Hervey [Wed, 14 Aug 2013 05:21:06 +0000 (07:21 +0200)]
check: Don't use nodist headers on gir scanner
Just creates noise and bogus symbols