gst/playback/gststreaminfo.c: On mute of an unlinked stream, check for pad availabili...
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>
Mon, 29 Nov 2004 17:01:34 +0000 (17:01 +0000)
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>
Mon, 29 Nov 2004 17:01:34 +0000 (17:01 +0000)
Original commit message from CVS:
* gst/playback/gststreaminfo.c: (stream_info_mute_pad):
On mute of an unlinked stream, check for pad availability so
we don't crash on unlinked pad.

ChangeLog
gst/playback/gststreaminfo.c

index a3ec0f4ad852ffb9fb61d736f4f2256d98357413..33720086f51182de58b013c1fc12b5d2aefd0763 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2004-11-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
+
+       * gst/playback/gststreaminfo.c: (stream_info_mute_pad):
+         On mute of an unlinked stream, check for pad availability so
+         we don't crash on unlinked pad.
+
 2004-11-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
 
        * gst/avi/gstavidemux.c: (gst_avi_demux_stream_index),
index 62cdfccccb156c4ed12a6e112715985c802a7f05..80362b1d03637b8b8444a46810b3f5925e15428c 100644 (file)
@@ -212,18 +212,18 @@ stream_info_mute_pad (GstStreamInfo * stream_info, GstPad * pad, gboolean mute)
       int_links; int_links = g_list_next (int_links)) {
     GstPad *pad = GST_PAD (int_links->data);
     GstPad *peer = gst_pad_get_peer (pad);
-    GstElement *peer_elem = gst_pad_get_parent (peer);
+    GstElement *peer_elem = peer ? gst_pad_get_parent (peer) : NULL;
 
     GST_DEBUG_OBJECT (stream_info, "%s internal pad %s:%s",
         debug_str, GST_DEBUG_PAD_NAME (pad));
 
     gst_pad_set_active (pad, activate);
 
-    if (peer_elem->numsrcpads == 1) {
+    if (peer_elem && peer_elem->numsrcpads == 1) {
       GST_DEBUG_OBJECT (stream_info, "recursing element %s on pad %s:%s",
           gst_element_get_name (peer_elem), GST_DEBUG_PAD_NAME (peer));
       stream_info_mute_pad (stream_info, peer, mute);
-    } else {
+    } else if (peer) {
       GST_DEBUG_OBJECT (stream_info, "%s final pad %s:%s",
           debug_str, GST_DEBUG_PAD_NAME (peer));
       gst_pad_set_active (peer, activate);