mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 04:36:20 +00:00
gst/gstelementfactory.c: set the factory in the class struct, so gst_element_get_factory actually works
Original commit message from CVS: * gst/gstelementfactory.c: (gst_element_register): set the factory in the class struct, so gst_element_get_factory actually works * gst/parse/grammar.y: set element to playing when it gets unlocked as we can't rely on the bin state - all elements in the bin state might still be locked in NULL)
This commit is contained in:
parent
66786dc6f9
commit
9574c7851f
3 changed files with 12 additions and 1 deletions
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
||||||
|
2004-07-22 Benjamin Otte <otte@gnome.org>
|
||||||
|
|
||||||
|
* gst/gstelementfactory.c: (gst_element_register):
|
||||||
|
set the factory in the class struct, so gst_element_get_factory
|
||||||
|
actually works
|
||||||
|
* gst/parse/grammar.y:
|
||||||
|
set element to playing when it gets unlocked as we can't rely on the
|
||||||
|
bin state - all elements in the bin state might still be locked in
|
||||||
|
NULL)
|
||||||
|
|
||||||
2004-07-22 Benjamin Otte <otte@gnome.org>
|
2004-07-22 Benjamin Otte <otte@gnome.org>
|
||||||
|
|
||||||
* gst/gstelement.c: (gst_element_set_state_func):
|
* gst/gstelement.c: (gst_element_set_state_func):
|
||||||
|
|
|
@ -233,6 +233,7 @@ gst_element_register (GstPlugin * plugin, const gchar * name, guint rank,
|
||||||
factory->padtemplates = g_list_copy (klass->padtemplates);
|
factory->padtemplates = g_list_copy (klass->padtemplates);
|
||||||
g_list_foreach (factory->padtemplates, (GFunc) gst_object_ref, NULL);
|
g_list_foreach (factory->padtemplates, (GFunc) gst_object_ref, NULL);
|
||||||
factory->numpadtemplates = klass->numpadtemplates;
|
factory->numpadtemplates = klass->numpadtemplates;
|
||||||
|
klass->elementfactory = factory;
|
||||||
|
|
||||||
/* special stuff for URI handling */
|
/* special stuff for URI handling */
|
||||||
if (g_type_is_a (type, GST_TYPE_URI_HANDLER)) {
|
if (g_type_is_a (type, GST_TYPE_URI_HANDLER)) {
|
||||||
|
|
|
@ -316,7 +316,7 @@ gst_parse_element_lock (GstElement *element, gboolean lock)
|
||||||
GST_CAT_DEBUG (GST_CAT_PIPELINE, "trying to sync state of element with parent");
|
GST_CAT_DEBUG (GST_CAT_PIPELINE, "trying to sync state of element with parent");
|
||||||
/* FIXME: it would be nice if we can figure out why it failed
|
/* FIXME: it would be nice if we can figure out why it failed
|
||||||
(e.g. caps nego) and give an error about that instead. */
|
(e.g. caps nego) and give an error about that instead. */
|
||||||
if (!gst_element_sync_state_with_parent (element))
|
if (gst_element_set_state (element, GST_STATE_PLAYING) == GST_STATE_FAILURE)
|
||||||
GST_ELEMENT_ERROR (element, CORE, STATE_CHANGE, (NULL), (NULL));
|
GST_ELEMENT_ERROR (element, CORE, STATE_CHANGE, (NULL), (NULL));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue