aggregator: Request pad templates which are not request pad
authorOlivier Crête <olivier.crete@collabora.com>
Fri, 18 Nov 2016 19:44:16 +0000 (14:44 -0500)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 2 Dec 2017 15:10:27 +0000 (15:10 +0000)
https://bugzilla.gnome.org/show_bug.cgi?id=782920

libs/gst/base/gstaggregator.c

index 28bdde0..ec4be92 100644 (file)
@@ -1606,6 +1606,9 @@ gst_aggregator_default_create_new_pad (GstAggregator * self,
   if (templ->direction != GST_PAD_SINK)
     goto not_sink;
 
+  if (templ->presence != GST_PAD_REQUEST)
+    goto not_request;
+
   GST_OBJECT_LOCK (self);
   if (req_name == NULL || strlen (req_name) < 6
       || !g_str_has_prefix (req_name, "sink_")) {
@@ -1630,7 +1633,12 @@ gst_aggregator_default_create_new_pad (GstAggregator * self,
   /* errors */
 not_sink:
   {
-    GST_WARNING_OBJECT (self, "request new pad that is not a SINK pad\n");
+    GST_WARNING_OBJECT (self, "request new pad that is not a SINK pad");
+    return NULL;
+  }
+not_request:
+  {
+    GST_WARNING_OBJECT (self, "request new pad that is not a REQUEST pad");
     return NULL;
   }
 }