encodebin: muxer sink pad is not always a request pad
authorAlban Browaeys <prahal@yahoo.com>
Sat, 29 Sep 2012 22:31:21 +0000 (00:31 +0200)
committerTim-Philipp Müller <tim@centricular.net>
Sun, 30 Sep 2012 14:08:17 +0000 (15:08 +0100)
GstId3Mux sink pad is an always (static) pad. Thus releasing it
as if a request pad triggers:
(sound-juicer:11826): GStreamer-CRITICAL **:
gst_element_release_request_pad: assertion `GST_PAD_PAD_TEMPLATE (pad)
== NULL || GST_PAD_TEMPLATE_PRESENCE (GST_PAD_PAD_TEMPLATE (pad)) ==
GST_PAD_REQUEST' failed

https://bugzilla.gnome.org/show_bug.cgi?id=685110

gst/encoding/gstencodebin.c

index db45f57..a811b5d 100644 (file)
@@ -1793,7 +1793,9 @@ stream_group_free (GstEncodeBin * ebin, StreamGroup * sgroup)
 
     /* Remove muxer request sink pad */
     gst_pad_unlink (tmppad, pad);
-    gst_element_release_request_pad (ebin->muxer, pad);
+    if (GST_PAD_TEMPLATE_PRESENCE (GST_PAD_PAD_TEMPLATE (pad)) ==
+        GST_PAD_REQUEST)
+      gst_element_release_request_pad (ebin->muxer, pad);
     gst_object_unref (tmppad);
     gst_object_unref (pad);
   }