Wim Taymans
85d5a29b40
bin: reorganize _remove_func to avoid races
...
Make the gst_bin_remove_func more like the add_func. Check if the element we try
to remove from the bin has the bin as the parent and set the parent flag to NULL
immediately, this allows us to avoid concurrent remove operations without using
the UNPARENTING element flag. After we unparented the element from the bin, we
update the bin state and remove the element from the list. Finally we unlink
all the pads.
This avoids a race condition where the element could still claim to have the
bin as the parent while the bin didn't have a pointer to the element anymore.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=647759
2012-06-11 15:41:58 +02:00
Matej Knopp
a362b844f8
gstelement: Start over if subclass removed the next pad too
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=677818
2012-06-11 10:43:34 +02:00
Tim-Philipp Müller
bfe1cf9926
datetime: remove fallback code for old GLibs
2012-06-09 18:05:14 +01:00
Edward Hervey
915ca4685c
gstutils: Faster read macros
...
On platforms that can do unaligned read/write, we can read/write much faster
by just casting.
https://bugzilla.gnome.org/show_bug.cgi?id=599546
2012-06-08 14:58:00 +02:00
Edward Hervey
cdf1cc0cf5
registry: We name the registry after the target cpu
...
And not the host cpu
Conflicts:
gst/gstregistry.c
2012-06-07 10:57:31 +02:00
Wim Taymans
6758e5f00d
element: fix pad cleanup in dispose
...
In the dispose handler we first need to release all the request pads and then
remove the remaining pads. This is because it is possible that releasing the
request pad might also cleanly remove some of the other dynamic pads, like
what rtpsession does.
https://bugzilla.gnome.org/show_bug.cgi?id=677436
2012-06-06 15:33:57 +02:00
Sebastian Dröge
738cf12d96
event: Don't make the TOC event a multi-sticky event
...
Elements are supposed to merge upstream events.
2012-06-06 14:16:01 +02:00
Havard Graff
75853fa79b
Make sure that unlinked pads do not cause a return false on latency events.
...
Context: Latency configuration should not be
messed up because of not-linked pads. In general,
one return FALSE on latency distribution causes
the "overall" pipeline latency configuration to
fail. This shows up as noise in logs (warning).
Conflicts:
gst/gstpad.c
2012-06-06 13:42:32 +02:00
Wim Taymans
c10d39a804
event: add name to sticky_multi events
...
The name of the event is used to store multiple sticky events of a certain type
on a pad.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=676859
2012-06-06 12:52:09 +02:00
Wim Taymans
15d85b9edb
query: improve docs
2012-06-06 09:15:04 +02:00
Wim Taymans
d907544ab1
pad: only serialized events can't pass after EOS
...
Only serialized events can't be sent on pads that are EOS. Otherwise a seek
event would be refused as well.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=677520
2012-06-06 09:14:58 +02:00
Tim-Philipp Müller
1f8e6b4fa5
gst_tag_list_free -> gst_tag_list_unref
2012-06-05 15:05:07 +01:00
Wim Taymans
64b5eeefa3
utils: improve debug
2012-06-05 09:39:41 +02:00
Wim Taymans
b0756827f6
pad: don't pause task on EOS
...
Elements should not rely on core to pause tasks on EOS.
2012-06-05 09:10:05 +02:00
Wim Taymans
bae0c4b0c6
pad: fix event type check
2012-06-05 09:00:01 +02:00
Wim Taymans
66c88c1bb1
pad: fix 'res' may be used uninitialized in this function
2012-06-04 16:19:26 +02:00
Sebastian Dröge
8cc12b05fc
pad: Don't accept any buffers or events after EOS
2012-06-04 13:01:40 +02:00
Sebastian Dröge
5a8c901507
pad: Always return errors for EOS events immediately
...
For non-EOS events things will error out later during data
flow but after EOS events no data flow is happening.
See bug #677340 .
2012-06-04 11:25:47 +02:00
Sebastian Dröge
991ac561e1
pad: Only forward caps events to a pad if it accepts the caps
...
Fixes bug #677335 .
2012-06-04 09:27:35 +02:00
Sebastian Dröge
8e6b5c7acf
Revert "pad: Return FALSE if pushing of sticky events failed"
...
This reverts commit 0f924b922c
.
Sticky events should always return TRUE when pushing and will
only cause failures during data flow later.
2012-06-02 20:06:39 +02:00
Tim-Philipp Müller
9b308b2b5b
pad: fix variable-set-but-not-used compiler warning
2012-06-02 16:18:46 +01:00
Sebastian Dröge
0ca7b85ead
pad: If pushing a sticky event failed, make sure to at least push any pending EOS events
...
Otherwise a pipeline where one sticky event fails to be sent will
never forward EOS events downstream. This can cause pipelines to
wait forever for EOS on errors.
2012-06-02 17:00:48 +02:00
Sebastian Dröge
0f924b922c
pad: Return FALSE if pushing of sticky events failed
...
Instead of just ignoring failure of pushing sticky events and
returning TRUE as if everything is fine.
2012-06-02 16:02:07 +02:00
Tim-Philipp Müller
d1379f1671
taglist: add guards to make sure taglist is writable when modifying it
...
Now that taglists are refcounted we need to check if they're
writable before modifying them.
2012-05-29 08:48:36 +01:00
Tim-Philipp Müller
d007ac4a1a
taglist: avoid unnecessary string copying when registering tags
...
Add gst_tag_register_static() - no need to copy all those
string constants, whether translated or not.
API: gst_tag_register_static()
2012-05-29 08:00:28 +01:00
Tim-Philipp Müller
cd3875857e
gst_tag_list_free() -> gst_tag_list_unref()
2012-05-28 00:08:18 +01:00
Tim-Philipp Müller
a88dcc2ab6
taglist: make GstTagList a GstMiniObject
...
Which adds refcounting support, and other things.
2012-05-28 00:05:16 +01:00
Tim-Philipp Müller
b5ab3fb1dc
caps: log freeing of caps at same log level as creation, i.e. TRACE
2012-05-27 20:31:30 +01:00
Tim-Philipp Müller
61dcbaab63
message, event: update for tag lists not being structures any more
2012-05-26 11:44:03 +01:00
Tim-Philipp Müller
97c2498bbe
taglist: make proper struct not just a GstStructure
2012-05-26 11:44:03 +01:00
Josep Torra
d06c7dc6fd
debugutils: Fix static linking on OS X
...
The linking behaviour of external variables that are not initialized
in the compilation unit where they are defined is undefined. On OS X
this causes a linking failure when statically linking GStreamer.
2012-05-25 10:49:47 +02:00
Edward Hervey
07a888f174
uri: Add some debug statements
2012-05-23 09:39:16 +02:00
Stefan Sauer
37f7fc165d
docs: improve the seeking docs more.
...
Also mention it on _element_seek{,_simple} and be more precise why it happens.
2012-05-21 15:17:08 +02:00
Stefan Sauer
dca0c19d3e
docs: fix a typo and clarify event handling a bit more
...
Tell about async_done messages for some events and review the _event_new_seek
docs.
2012-05-21 14:34:33 +02:00
Wim Taymans
146ab8a702
bin: try harder to avoid state changes in wrong direction
...
When the bin does an upward state change, try to avoid doing a downward state
change on the child and vice versa.
Add some more unit tests for this fix.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=621833
2012-05-21 11:58:28 +02:00
Anton Belka
6f54f36199
toc: Add boxed types for GstToc and GstTocEntry
2012-05-21 08:46:48 +02:00
Tim-Philipp Müller
04f8cd886d
toc: fix type of pad parameter to gst_toc_entry_new_with_pad()
2012-05-20 18:24:38 +01:00
Tim-Philipp Müller
81e50c21cc
toc: use correct GType for tag lists
2012-05-20 18:16:45 +01:00
Tim-Philipp Müller
987286ce2d
toc: avoid unnecessary GValue acrobatics
2012-05-20 18:06:22 +01:00
Tim-Philipp Müller
68da2aeeed
toc: use global quark table
2012-05-20 17:48:55 +01:00
Tim-Philipp Müller
1dd0708d22
toc: fix internal TOC query and event structure names
...
Make them consistent with all the other query and event names.
2012-05-20 17:11:37 +01:00
Tim-Philipp Müller
5b4417ff9e
pluginfeature: make GstPluginFeature structure private
...
Make GstPluginFeature opaque until we have time to
clean it up a little. Only GstElementFactory and
GstTypefindFactory derive from it, and they are
opaque already, and we currently don't support
custom plugin features in the registry anyway.
2012-05-19 17:25:24 +01:00
Tim-Philipp Müller
ab6171373c
pluginfeature: add gst_plugin_feature_get_plugin()
...
Add function to retrieve plugin that provides this feature.
API: gst_plugin_feature_get_plugin()
2012-05-19 17:16:35 +01:00
Tim-Philipp Müller
a9d19a6913
elementfactory: make object struct opaque for now
...
Make GstElementFactory opaque until we have time to
clean it up a little. It's not something anyone
would need to derive from.
2012-05-19 16:17:12 +01:00
Tim-Philipp Müller
1ee520790a
elementfactory: add gst_element_factory_get_metadata_keys()
...
API: gst_element_factory_get_metadata_keys()
2012-05-19 14:52:29 +01:00
Anton Belka
0bdd1224d3
docs: fix gst_structure_to_string() docs
2012-05-17 12:01:51 +02:00
Sebastian Dröge
cacdea6ae6
gst: Rename gst_toc_entry_type_to_string() to gst_toc_entry_type_get_nick()
...
It's more consistent.
2012-05-15 16:38:30 +02:00
Anton Belka
71d1af2b66
toc: API: Add gst_toc_entry_type_to_string()
2012-05-15 16:13:55 +02:00
Sebastian Rasmussen
1c82367a0e
gst: Only include init/deinit of alloc tracing when enabled
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=675806
2012-05-11 13:39:38 +02:00
Raimo Järvi
63234a9dab
gst: Fix compiler warnings on mingw-w64
...
https://bugzilla.gnome.org/show_bug.cgi?id=675525
2012-05-09 09:35:35 +02:00