fix an old bug traversing pad template lists, and change _padtemplates to _pad_templa...
authorAndy Wingo <wingo@pobox.com>
Tue, 11 Nov 2003 12:34:15 +0000 (12:34 +0000)
committerAndy Wingo <wingo@pobox.com>
Tue, 11 Nov 2003 12:34:15 +0000 (12:34 +0000)
Original commit message from CVS:
fix an old bug traversing pad template lists, and change _padtemplates to _pad_templates in new functions

gst/gstelement.c
gst/gstelement.h
gst/gstelementfactory.c

index 7890054cd04ed8c067a378e6442d07353f3112f4..aba9010a97882166c29199734c174ea56640666d 100644 (file)
@@ -1638,7 +1638,7 @@ gst_element_link_pads_filtered (GstElement *src, const gchar *srcpadname,
       srctempl = (GstPadTemplate*) srctempls->data;
       if (srctempl->presence == GST_PAD_REQUEST) {
         for (l=desttempls; l; l=l->next) {
-          desttempl = (GstPadTemplate*) desttempls->data;
+          desttempl = (GstPadTemplate*) l->data;
           if (desttempl->presence == GST_PAD_REQUEST && 
              desttempl->direction != srctempl->direction) {
             if (gst_caps_is_always_compatible (gst_pad_template_get_caps (srctempl),
@@ -1654,7 +1654,9 @@ gst_element_link_pads_filtered (GstElement *src, const gchar *srcpadname,
                           GST_DEBUG_PAD_NAME (destpad));
                 return TRUE;
               }
-              /* FIXME: we have extraneous request pads lying around */
+              /* it failed, so we release the request pads */
+              gst_element_release_request_pad (src, srcpad);
+              gst_element_release_request_pad (dest, destpad);
             }
           }
         }
index cb46500ee3e651cf2c10971eb28115236f0c3102..2a983413b69f8beb86c30f399ab59a6d6aefef7a 100644 (file)
@@ -417,8 +417,8 @@ G_CONST_RETURN gchar *      gst_element_factory_get_klass           (GstElementFactory *factor
 G_CONST_RETURN gchar * gst_element_factory_get_description     (GstElementFactory *factory);
 G_CONST_RETURN gchar * gst_element_factory_get_version         (GstElementFactory *factory);
 G_CONST_RETURN gchar * gst_element_factory_get_author          (GstElementFactory *factory);
-guint                  gst_element_factory_get_num_padtemplates (GstElementFactory *factory);
-G_CONST_RETURN GList * gst_element_factory_get_padtemplates    (GstElementFactory *factory);
+guint                  gst_element_factory_get_num_pad_templates (GstElementFactory *factory);
+G_CONST_RETURN GList * gst_element_factory_get_pad_templates   (GstElementFactory *factory);
 
 GstElement*            gst_element_factory_create              (GstElementFactory *factory,
                                                                 const gchar *name);
index 577dabcac0ab4d6a7c00f1706b6e94ba63b6e971..595f0ca473c56c5ba23ac737498ccaaefc183248 100644 (file)
@@ -373,30 +373,30 @@ gst_element_factory_get_author (GstElementFactory *factory)
   return factory->details.author;
 }
 /**
- * gst_element_factory_get_num_padtemplates:
+ * gst_element_factory_get_num_pad_templates:
  * @factory: a #GstElementFactory
  * 
- * Gets the number of padtemplates in this factory.
+ * Gets the number of pad_templates in this factory.
  *
- * Returns: the number of padtemplates
+ * Returns: the number of pad_templates
  */
 guint
-gst_element_factory_get_num_padtemplates (GstElementFactory *factory)
+gst_element_factory_get_num_pad_templates (GstElementFactory *factory)
 {
   g_return_val_if_fail (GST_IS_ELEMENT_FACTORY (factory), 0);
 
   return factory->numpadtemplates;
 }
 /**
- * gst_element_factory_get_padtemplates:
+ * gst_element_factory_get_pad_templates:
  * @factory: a #GstElementFactory
  * 
- * Gets the #Glist of padtemplates for this factory.
+ * Gets the #Glist of pad templates for this factory.
  *
  * Returns: the padtemplates
  */
 G_CONST_RETURN GList *
-gst_element_factory_get_padtemplates (GstElementFactory *factory)
+gst_element_factory_get_pad_templates (GstElementFactory *factory)
 {
   g_return_val_if_fail (GST_IS_ELEMENT_FACTORY (factory), NULL);