gst/gstelement.c: whoops, store the signal id correctly
authorBenjamin Otte <otte@gnome.org>
Thu, 13 May 2004 15:07:56 +0000 (15:07 +0000)
committerBenjamin Otte <otte@gnome.org>
Thu, 13 May 2004 15:07:56 +0000 (15:07 +0000)
Original commit message from CVS:
* gst/gstelement.c: (gst_element_class_init):
whoops, store the signal id correctly
* gst/schedulers/gstbasicscheduler.c:
(gst_basic_scheduler_chain_wrapper):
detect infinfinfinfinfinf^Cinite loops in chain wrapper when the
chain function isn't linked

ChangeLog
gst/gstelement.c
gst/schedulers/gstbasicscheduler.c

index 8948ed7..b74685d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2004-05-13  Benjamin Otte  <in7y118@public.uni-hamburg.de>
+
+       * gst/gstelement.c: (gst_element_class_init):
+         whoops, store the signal id correctly
+       * gst/schedulers/gstbasicscheduler.c:
+       (gst_basic_scheduler_chain_wrapper):
+         detect infinfinfinfinfinf^Cinite loops in chain wrapper when the
+         chain function isn't linked
+
 2004-05-13  Jan Schmidt  <thaytan@mad.scientist.com>
        * configure.ac:
        Add $GST_PKG_CFLAGS back into GST_INT_CFLAGS so I have large file
index b7dd1fd..63fedc0 100644 (file)
@@ -148,7 +148,7 @@ gst_element_class_init (GstElementClass * klass)
       G_STRUCT_OFFSET (GstElementClass, found_tag), NULL, NULL,
       gst_marshal_VOID__OBJECT_BOXED, G_TYPE_NONE, 2, GST_TYPE_ELEMENT,
       GST_TYPE_TAG_LIST);
-  gst_element_signals[FOUND_TAG] =
+  gst_element_signals[NO_MORE_PADS] =
       g_signal_new ("no-more-pads", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstElementClass, no_more_pads), NULL,
       NULL, gst_marshal_VOID__VOID, G_TYPE_NONE, 0);
index 5943ef0..fb3a757 100644 (file)
@@ -373,6 +373,11 @@ gst_basic_scheduler_chain_wrapper (int argc, char **argv)
         pads = g_list_next (pads);
       }
     } while (pads != NULL);
+    if (already_iterated == NULL) {
+      GST_DEBUG_OBJECT (SCHED (element), "nothing to iterate for element %s",
+          GST_ELEMENT_NAME (element));
+      break;
+    }
     g_slist_free (already_iterated);
     already_iterated = NULL;
   } while (!GST_ELEMENT_IS_COTHREAD_STOPPING (element));