gst/playback/gstdecodebin.c: Don't return a pad from get_our_ghost_pad unless it...
authorJan Schmidt <thaytan@mad.scientist.com>
Tue, 17 Oct 2006 11:34:32 +0000 (11:34 +0000)
committerJan Schmidt <thaytan@mad.scientist.com>
Tue, 17 Oct 2006 11:34:32 +0000 (11:34 +0000)
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (get_our_ghost_pad),
(remove_element_chain):
Don't return a pad from get_our_ghost_pad unless it is actually the
one we want.
Change a cast in remove_element_chain slightly.

ChangeLog
gst/playback/gstdecodebin.c

index 25dae7d..4e53824 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2006-10-17  Jan Schmidt  <thaytan@mad.scientist.com>
+
+       * gst/playback/gstdecodebin.c: (get_our_ghost_pad),
+       (remove_element_chain):
+       Don't return a pad from get_our_ghost_pad unless it is actually the
+       one we want.
+       Change a cast in remove_element_chain slightly.
+
 2006-10-13  Julien MOUTTE  <julien@moutte.net>
 
        * tests/examples/seek/seek.c: (do_seek), (start_seek),
index efbf236..1756e59 100644 (file)
@@ -974,6 +974,7 @@ get_our_ghost_pad (GstDecodeBin * decode_bin, GstPad * pad)
   /* our ghostpads are the sourcepads */
   pad_it = gst_element_iterate_src_pads (GST_ELEMENT (decode_bin));
   while (!done) {
+    db_pad = NULL;
     switch (gst_iterator_next (pad_it, (gpointer) & db_pad)) {
       case GST_ITERATOR_OK:
         GST_DEBUG_OBJECT (decode_bin, "looking at pad %s:%s",
@@ -1072,10 +1073,10 @@ remove_element_chain (GstDecodeBin * decode_bin, GstPad * pad)
       GstObject *parent = gst_pad_get_parent (peer);
 
       if (parent) {
-        GstElement *grandparent = GST_ELEMENT (gst_object_get_parent (parent));
+        GstObject *grandparent = gst_object_get_parent (parent);
 
-        if (grandparent) {
-          if (grandparent != GST_ELEMENT (decode_bin)) {
+        if (grandparent != NULL) {
+          if (GST_ELEMENT (grandparent) != GST_ELEMENT (decode_bin)) {
             GST_DEBUG_OBJECT (decode_bin, "dead end pad %s:%s parent %s",
                 GST_DEBUG_PAD_NAME (peer), GST_OBJECT_NAME (grandparent));
           } else {