gst/selector/gstinputselector.c: Gracefully handle the cases when we dont' have otherpad.
authorEdward Hervey <bilboed@bilboed.com>
Wed, 15 Oct 2008 17:45:37 +0000 (17:45 +0000)
committerEdward Hervey <bilboed@bilboed.com>
Wed, 15 Oct 2008 17:45:37 +0000 (17:45 +0000)
Original commit message from CVS:
* gst/selector/gstinputselector.c: (gst_input_selector_event),
(gst_input_selector_query):
Gracefully handle the cases when we dont' have otherpad.
Fixes #556430

ChangeLog
gst/selector/gstinputselector.c

index cc84e4c..16969a1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-10-15  Edward Hervey  <edward.hervey@collabora.co.uk>
+
+       * gst/selector/gstinputselector.c: (gst_input_selector_event),
+       (gst_input_selector_query):
+       Gracefully handle the cases when we dont' have otherpad.
+       Fixes #556430
+
 2008-10-14  Edward Hervey  <edward.hervey@collabora.co.uk>
 
        * gst/aiffparse/aiffparse.c: (plugin_init):
index 45f2af9..c175a5e 100644 (file)
@@ -1017,15 +1017,16 @@ gst_input_selector_get_linked_pad (GstPad * pad, gboolean strict)
 static gboolean
 gst_input_selector_event (GstPad * pad, GstEvent * event)
 {
-  gboolean res;
+  gboolean res = FALSE;
   GstPad *otherpad;
 
   otherpad = gst_input_selector_get_linked_pad (pad, TRUE);
 
-  res = gst_pad_push_event (otherpad, event);
-
-  gst_object_unref (otherpad);
+  if (otherpad) {
+    res = gst_pad_push_event (otherpad, event);
 
+    gst_object_unref (otherpad);
+  }
   return res;
 }
 
@@ -1034,7 +1035,7 @@ gst_input_selector_event (GstPad * pad, GstEvent * event)
 static gboolean
 gst_input_selector_query (GstPad * pad, GstQuery * query)
 {
-  gboolean res;
+  gboolean res = TRUE;
   GstInputSelector *sel;
   GstPad *otherpad;
 
@@ -1101,10 +1102,12 @@ gst_input_selector_query (GstPad * pad, GstQuery * query)
       break;
     }
     default:
-      res = gst_pad_peer_query (otherpad, query);
+      if (otherpad)
+        res = gst_pad_peer_query (otherpad, query);
       break;
   }
-  gst_object_unref (otherpad);
+  if (otherpad)
+    gst_object_unref (otherpad);
   gst_object_unref (sel);
 
   return res;