Index: gstelement.c
===================================================================
RCS file: /cvs/gstreamer/gstreamer/gst/gstelement.c,v
retrieving revision 1.464
diff -u -p -a -u -p -r1.464 gstelement.c
--- gstelement.c	6 Nov 2007 12:28:17 -0000	1.464
+++ gstelement.c	9 Jan 2008 06:29:32 -0000
@@ -239,7 +239,21 @@ gst_element_base_class_init (gpointer g_
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  memset (&element_class->details, 0, sizeof (GstElementDetails));
+  /* Copy the element details here so elements can inherit the
+   * details from their base class and classes only need to set
+   * the details in class_init instead of base_init */
+  /* FIXME: We probably need something like for copying
+   * the details at a central place */
+  element_class->details.longname = g_strdup (element_class->details.longname);
+  element_class->details.klass = g_strdup (element_class->details.klass);
+  element_class->details.description = g_strdup (element_class->details.description);
+  element_class->details.author = g_strdup (element_class->details.author);
+
+  /* FIXME 0.11: Copy the pad templates so elements inherit them
+   * from their base class but elements can add pad templates in class_init
+   * instead of base_init. Maybe a copy of the list + _ref() on the pad
+   * templates is enough if we consider pad templates as immutable.
+   * See bug #491501.*/
   element_class->padtemplates = NULL;
 }
 
@@ -1127,7 +1141,7 @@ gst_element_class_add_pad_template (GstE
  * @details: details to set
  *
  * Sets the detailed information for a #GstElementClass.
- * <note>This function is for use in _base_init functions only.</note>
+ * <note>This function is for use in _class_init functions only.</note>
  *
  * The @details are copied.
  */
@@ -1155,7 +1169,7 @@ gst_element_class_set_details (GstElemen
  *
  * Sets the detailed information for a #GstElementClass. Simpler version of 
  * gst_element_class_set_details() that generates less linker overhead.
- * <note>This function is for use in _base_init functions only.</note>
+ * <note>This function is for use in _class_init functions only.</note>
  *
  * The detail parameter strings are copied into the #GstElementDetails for
  * the element class.
