gst/gstelementfactory.c: set the factory in the class struct, so gst_element_get_fact...
authorBenjamin Otte <otte@gnome.org>
Thu, 22 Jul 2004 16:14:56 +0000 (16:14 +0000)
committerBenjamin Otte <otte@gnome.org>
Thu, 22 Jul 2004 16:14:56 +0000 (16:14 +0000)
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)

ChangeLog
gst/gstelementfactory.c
gst/parse/grammar.y

index c126213..d959e79 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
 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>
+
        * gst/gstelement.c: (gst_element_set_state_func):
          make this a static function
 
index d6b0725..7e7a547 100644 (file)
@@ -233,6 +233,7 @@ gst_element_register (GstPlugin * plugin, const gchar * name, guint rank,
   factory->padtemplates = g_list_copy (klass->padtemplates);
   g_list_foreach (factory->padtemplates, (GFunc) gst_object_ref, NULL);
   factory->numpadtemplates = klass->numpadtemplates;
+  klass->elementfactory = factory;
 
   /* special stuff for URI handling */
   if (g_type_is_a (type, GST_TYPE_URI_HANDLER)) {
index ec85730..9c8a6b5 100644 (file)
@@ -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");
       /* FIXME: it would be nice if we can figure out why it failed
          (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));
     }
   } else {