Commit graph

15191 commits

Author SHA1 Message Date
Sebastian Dröge 74d2a1964b Update .po files 2013-09-24 14:06:28 +02:00
Sebastian Dröge 8f0c9c7055 context: Add test for the context caching in GstBin
https://bugzilla.gnome.org/show_bug.cgi?id=708668
2013-09-24 13:11:47 +02:00
Sebastian Dröge 02a4830096 Revert "Potential GstContext regression"
This reverts commit e658379534.

This test commit should've never been pushed. Oops.
2013-09-24 12:47:52 +02:00
Sebastian Dröge ccfca8f66f bin: Make sure to cache context types that we did not store yet
https://bugzilla.gnome.org/show_bug.cgi?id=708668
2013-09-24 12:46:52 +02:00
Alex Ashley e658379534 Potential GstContext regression
Since the refactoring of GstContext (commits
qc9fa2771b508e9aaeecc700e66e958190476f,
a7f5dc8b8a,
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.
2013-09-24 12:28:55 +02:00
Sebastian Dröge 20f1c96c89 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
2013-09-24 10:44:34 +02:00
Mathieu Duponchelle c79e5bbcad 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
2013-09-24 10:44:34 +02:00
Wim Taymans cba26c9ed9 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
2013-09-23 11:47:14 +02:00
Edward Hervey 3e4b4eb59b 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
2013-09-22 15:44:55 +02:00
Edward Hervey 6db013ff7c Automatic update of common submodule
From b613661 to 6b03ba7
2013-09-20 16:16:26 +02:00
Tim-Philipp Müller 0ae1551dd2 Automatic update of common submodule
From 74a6857 to b613661
2013-09-19 18:42:31 +01:00
Tim-Philipp Müller 000b1a6e04 Automatic update of common submodule
From 12af105 to 74a6857
2013-09-19 17:34:27 +01:00
Tim-Philipp Müller 0e66790134 check: testclock: fix function guards
Should be g_return_*() not g_assert(), even if it's for tests only.
2013-09-19 17:12:14 +01:00
Tim-Philipp Müller cc4ba028ff 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
2013-09-19 16:43:18 +01:00
Edward Hervey c4539db3c1 gstcontext: Fix return values some more
Return value is a boolean not a pointer
2013-09-19 12:07:56 +02:00
Sebastian Dröge 291991dac2 context: Fix return values for gst_context_has_context_type() in assertions 2013-09-19 11:49:26 +02:00
Sebastian Dröge e6acc1462f Back to development 2013-09-19 11:34:51 +02:00
Sebastian Dröge 7d76c2d538 Release 1.1.90 2013-09-19 10:48:24 +02:00
Sebastian Dröge 75ae5c9f00 Update .po files 2013-09-19 10:05:51 +02:00
Sebastian Dröge f09b122453 context: Add convenience function gst_context_has_context_type() 2013-09-19 09:49:40 +02:00
Sebastian Dröge 0ecdc31efb po: Update translations 2013-09-19 09:42:15 +02:00
Sebastian Dröge 8c09649de2 message: Implement getting the name of the context message types 2013-09-18 23:07:31 +02:00
Sebastian Dröge 921ab73340 context: Fix unit test for GstContext changes 2013-09-18 21:42:42 +02:00
Sebastian Dröge aacedb9da4 gst-launch: Update for GstContext changes 2013-09-18 21:42:42 +02:00
Sebastian Dröge 29ccafb83b context: Update docs 2013-09-18 21:42:42 +02:00
Sebastian Dröge 640a05ff60 bin: Implement context caching and propagation again 2013-09-18 21:42:42 +02:00
Sebastian Dröge 51982d158a message/query: Simplify CONTEXT messages/queries to only contain a single type 2013-09-17 13:50:08 +02:00
Sebastian Dröge 2ae9809ae8 context: Update documentation 2013-09-17 13:36:49 +02:00
Sebastian Dröge 4d367dc1b0 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.
2013-09-17 13:28:42 +02:00
Sebastian Dröge 014690326f element: Remove GstContext caching 2013-09-17 13:16:40 +02:00
Sebastian Dröge e3ce799217 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.
2013-09-17 13:10:53 +02:00
Sebastian Dröge a7f5dc8b8a query: Make CONTEXT query upstream and downstream 2013-09-17 13:10:16 +02:00
Sebastian Dröge 113c9fa277 event: Remove CONTEXT downstream event
This is going to be implemented with an upstream query instead
for consistency and simplicity.
2013-09-17 13:09:34 +02:00
Jonas Holmberg 8501fbd216 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.
2013-09-13 14:42:55 +02:00
Rico Tzschichholz f1971fe1e9 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
2013-09-10 16:41:30 +01:00
Sebastian Dröge b25b9ad6bd 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
2013-09-10 10:15:03 +02:00
Sebastian Dröge dae27ba3d3 meta: Deprecate GST_META_TAG_MEMORY
The GQuarks are not exported by any public API
2013-09-09 15:40:42 +02:00
Mathieu Duponchelle ff05a4698e meta: Add a #define for memory metadata 2013-09-09 15:33:54 +02:00
Mathieu Duponchelle 8d24c4e451 basetransform: implement a default transform_meta.
If a metadata has no dependency as shown by the tags, copy it.
2013-09-09 15:32:18 +02:00
Mathieu Duponchelle 4c7dbde791 meta: API: Add gst_meta_api_type_get_tags() to get all meta tags. 2013-09-09 15:32:18 +02:00
Sebastian Dröge 26e27417d7 tests/capsfilter: Fix memory leak and compare caps directly instead of strcmp() 2013-09-09 14:21:56 +02:00
Sebastian Rasmussen 7854e392dd tests/capsfilter: Test caps-related queries and property 2013-09-09 14:18:39 +02:00
Gustavo Noronha Silva 4cb596ddd6 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
2013-09-09 14:15:09 +02:00
Thiago Santos 3dc8ee97e5 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
2013-09-05 15:40:04 -03:00
Zaheer Abbas Merali d1d99af229 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
2013-09-05 14:15:30 +02:00
Christian Fredrik Kalager Schaller 26c481e592 Remove PyXML from spec file, it is not longer needed 2013-09-04 17:11:20 +02:00
Sebastian Dröge 631421b8af typefind: Add missing break after handling the GAP event
Thanks to Edward Hervey for noticing.
2013-09-04 14:42:38 +02:00
Tim-Philipp Müller 954776ab38 tools: move gst-plot-timeline.py into scripts directory
So it's not in PATH in an uninstalled setup (thwarting
gst-play autocompletion).
2013-09-04 10:43:16 +01:00
Matej Knopp 7f657358a8 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
2013-09-04 10:52:13 +02:00
Sebastian Dröge 8ba5fb0b28 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
2013-09-02 13:55:08 +02:00