diff --git a/gst/gl/gstglbumper.c b/gst/gl/gstglbumper.c
index 3a6147d..6d9dfcc 100644
--- a/gst/gl/gstglbumper.c
+++ b/gst/gl/gstglbumper.c
@@ -49,12 +49,6 @@
 #define GST_CAT_DEFAULT gst_gl_bumper_debug
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
 
-static const GstElementDetails element_details =
-GST_ELEMENT_DETAILS ("OpenGL bumper filter",
-    "Filter/Effect",
-    "Bump mapping filter",
-    "Cyril Comparon <cyril.comparon@gmail.com>, Julien Isorce <julien.isorce@gmail.com>");
-
 enum
 {
   PROP_0,
@@ -270,7 +264,10 @@ gst_gl_bumper_base_init (gpointer klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_set_details (element_class, &element_details);
+  gst_element_class_set_details_simple (element_class, "OpenGL bumper filter",
+    "Filter/Effect",
+    "Bump mapping filter",
+    "Cyril Comparon <cyril.comparon@gmail.com>, Julien Isorce <julien.isorce@gmail.com>");
 }
 
 static void
diff --git a/gst/gl/gstglcolorscale.c b/gst/gl/gstglcolorscale.c
index f59da66..56e7515 100644
--- a/gst/gl/gstglcolorscale.c
+++ b/gst/gl/gstglcolorscale.c
@@ -53,12 +53,6 @@
 #define GST_CAT_DEFAULT gst_gl_colorscale_debug
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
 
-static const GstElementDetails element_details =
-GST_ELEMENT_DETAILS ("OpenGL color scale",
-    "Filter/Effect",
-    "Colorspace converter and video scaler",
-    "Julien Isorce <julien.isorce@gmail.com>");
-
 /* Source pad definition */
 static GstStaticPadTemplate gst_gl_colorscale_src_pad_template =
     GST_STATIC_PAD_TEMPLATE ("src",
@@ -120,7 +114,10 @@ gst_gl_colorscale_base_init (gpointer klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_set_details (element_class, &element_details);
+  gst_element_class_set_details_simple (element_class, "OpenGL color scale",
+    "Filter/Effect",
+    "Colorspace converter and video scaler",
+    "Julien Isorce <julien.isorce@gmail.com>");
 
   gst_element_class_add_pad_template (element_class,
       gst_static_pad_template_get (&gst_gl_colorscale_src_pad_template));
diff --git a/gst/gl/gstgldeinterlace.c b/gst/gl/gstgldeinterlace.c
index d0b879a..c428236 100644
--- a/gst/gl/gstgldeinterlace.c
+++ b/gst/gl/gstgldeinterlace.c
@@ -41,12 +41,6 @@
 #define GST_CAT_DEFAULT gst_gl_deinterlace_debug
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
 
-static const GstElementDetails element_details =
-GST_ELEMENT_DETAILS ("OpenGL deinterlacing filter",
-    "Deinterlace",
-    "Deinterlacing based on fragment shaders",
-    "Julien Isorce <julien.isorce@mail.com>");
-
 enum
 {
   PROP_0
@@ -164,7 +158,10 @@ gst_gl_deinterlace_base_init (gpointer klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_set_details (element_class, &element_details);
+  gst_element_class_set_details_simple (element_class, "OpenGL deinterlacing filter",
+    "Deinterlace",
+    "Deinterlacing based on fragment shaders",
+    "Julien Isorce <julien.isorce@mail.com>");
 }
 
 static void
diff --git a/gst/gl/gstgldifferencematte.c b/gst/gl/gstgldifferencematte.c
index 885367f..3553804 100644
--- a/gst/gl/gstgldifferencematte.c
+++ b/gst/gl/gstgldifferencematte.c
@@ -68,12 +68,6 @@ static gboolean gst_gl_differencematte_filter (GstGLFilter * filter,
 
 static gboolean gst_gl_differencematte_loader (GstGLFilter * filter);
 
-static const GstElementDetails element_details =
-GST_ELEMENT_DETAILS ("Gstreamer OpenGL DifferenceMatte",
-    "Filter/Effect",
-    "Saves a background frame and replace it with a pixbuf",
-    "Filippo Argiolas <filippo.argiolas@gmail.com>");
-
 enum
 {
   PROP_0,
@@ -142,7 +136,10 @@ gst_gl_differencematte_base_init (gpointer klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_set_details (element_class, &element_details);
+  gst_element_class_set_details_simple (element_class, "Gstreamer OpenGL DifferenceMatte",
+    "Filter/Effect",
+    "Saves a background frame and replace it with a pixbuf",
+    "Filippo Argiolas <filippo.argiolas@gmail.com>");
 }
 
 static void
diff --git a/gst/gl/gstgldownload.c b/gst/gl/gstgldownload.c
index 84e0e20..7022862 100644
--- a/gst/gl/gstgldownload.c
+++ b/gst/gl/gstgldownload.c
@@ -68,12 +68,6 @@
 #define GST_CAT_DEFAULT gst_gl_download_debug
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
 
-static const GstElementDetails element_details =
-GST_ELEMENT_DETAILS ("OpenGL video maker",
-    "Filter/Effect",
-    "A from GL to video flow filter",
-    "Julien Isorce <julien.isorce@gmail.com>");
-
 #ifndef OPENGL_ES2
 #define ADDITIONAL_CAPS \
         
@@ -155,7 +149,10 @@ gst_gl_download_base_init (gpointer klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_set_details (element_class, &element_details);
+  gst_element_class_set_details_simple (element_class, "OpenGL video maker",
+    "Filter/Effect",
+    "A from GL to video flow filter",
+    "Julien Isorce <julien.isorce@gmail.com>");
 
   gst_element_class_add_pad_template (element_class,
       gst_static_pad_template_get (&gst_gl_download_src_pad_template));
diff --git a/gst/gl/gstgleffects.c b/gst/gl/gstgleffects.c
index c422ff5..5e1ad4e 100644
--- a/gst/gl/gstgleffects.c
+++ b/gst/gl/gstgleffects.c
@@ -66,12 +66,6 @@ static void gst_gl_effects_ghash_func_clean (gpointer key, gpointer value,
 static gboolean gst_gl_effects_filter (GstGLFilter * filter,
     GstGLBuffer * inbuf, GstGLBuffer * outbuf);
 
-static const GstElementDetails element_details =
-GST_ELEMENT_DETAILS ("Gstreamer OpenGL Effects",
-    "Filter/Effect",
-    "GL Shading Language effects",
-    "Filippo Argiolas <filippo.argiolas@gmail.com>");
-
 /* dont' forget to edit the following when a new effect is added */
 typedef enum
 {
@@ -234,7 +228,10 @@ gst_gl_effects_base_init (gpointer klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_set_details (element_class, &element_details);
+  gst_element_class_set_details_simple (element_class, "Gstreamer OpenGL Effects",
+    "Filter/Effect",
+    "GL Shading Language effects",
+    "Filippo Argiolas <filippo.argiolas@gmail.com>");
 }
 
 static void
diff --git a/gst/gl/gstglfilterapp.c b/gst/gl/gstglfilterapp.c
index 8759906..9e27b58 100644
--- a/gst/gl/gstglfilterapp.c
+++ b/gst/gl/gstglfilterapp.c
@@ -45,12 +45,6 @@
 #define GST_CAT_DEFAULT gst_gl_filter_app_debug
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
 
-static const GstElementDetails element_details =
-GST_ELEMENT_DETAILS ("OpenGL application filter",
-    "Filter/Effect",
-    "Use client callbacks to define the scene",
-    "Julien Isorce <julien.isorce@gmail.com>");
-
 enum
 {
   PROP_0,
@@ -83,7 +77,10 @@ gst_gl_filter_app_base_init (gpointer klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_set_details (element_class, &element_details);
+  gst_element_class_set_details_simple (element_class, "OpenGL application filter",
+    "Filter/Effect",
+    "Use client callbacks to define the scene",
+    "Julien Isorce <julien.isorce@gmail.com>");
 }
 
 static void
diff --git a/gst/gl/gstglfilterblur.c b/gst/gl/gstglfilterblur.c
index f294251..78a8335 100644
--- a/gst/gl/gstglfilterblur.c
+++ b/gst/gl/gstglfilterblur.c
@@ -77,12 +77,6 @@ static const gchar *vconv9_fragment_source =
 #define GST_CAT_DEFAULT gst_gl_filterblur_debug
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
 
-static const GstElementDetails element_details =
-GST_ELEMENT_DETAILS ("Gstreamer OpenGL Blur",
-    "Filter/Effect",
-    "Blur with 9x9 separable convolution",
-    "Filippo Argiolas <filippo.argiolas@gmail.com>");
-
 #define DEBUG_INIT(bla)							\
   GST_DEBUG_CATEGORY_INIT (gst_gl_filterblur_debug, "glfilterblur", 0, "glfilterblur element");
 
@@ -136,7 +130,10 @@ gst_gl_filterblur_base_init (gpointer klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_set_details (element_class, &element_details);
+  gst_element_class_set_details_simple (element_class, "Gstreamer OpenGL Blur",
+    "Filter/Effect",
+    "Blur with 9x9 separable convolution",
+    "Filippo Argiolas <filippo.argiolas@gmail.com>");
 }
 
 static void
diff --git a/gst/gl/gstglfiltercube.c b/gst/gl/gstglfiltercube.c
index 693dcb2..bde1137 100644
--- a/gst/gl/gstglfiltercube.c
+++ b/gst/gl/gstglfiltercube.c
@@ -49,12 +49,6 @@
 #define GST_CAT_DEFAULT gst_gl_filter_cube_debug
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
 
-static const GstElementDetails element_details =
-GST_ELEMENT_DETAILS ("OpenGL cube filter",
-    "Filter/Effect",
-    "Map input texture on the 6 cube faces",
-    "Julien Isorce <julien.isorce@gmail.com>");
-
 enum
 {
   PROP_0,
@@ -138,7 +132,10 @@ gst_gl_filter_cube_base_init (gpointer klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_set_details (element_class, &element_details);
+  gst_element_class_set_details_simple (element_class, "OpenGL cube filter",
+    "Filter/Effect",
+    "Map input texture on the 6 cube faces",
+    "Julien Isorce <julien.isorce@gmail.com>");
 }
 
 static void
diff --git a/gst/gl/gstglfilterglass.c b/gst/gl/gstglfilterglass.c
index e932fd0..ea02618 100644
--- a/gst/gl/gstglfilterglass.c
+++ b/gst/gl/gstglfilterglass.c
@@ -46,12 +46,6 @@
 #define GST_CAT_DEFAULT gst_gl_filter_glass_debug
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
 
-static const GstElementDetails element_details =
-GST_ELEMENT_DETAILS ("OpenGL glass filter",
-    "Filter/Effect",
-    "Glass Filter",
-    "Julien Isorce <julien.isorce@gmail.com>");
-
 enum
 {
   PROP_0
@@ -110,7 +104,10 @@ gst_gl_filter_glass_base_init (gpointer klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_set_details (element_class, &element_details);
+  gst_element_class_set_details_simple (element_class, "OpenGL glass filter",
+    "Filter/Effect",
+    "Glass Filter",
+    "Julien Isorce <julien.isorce@gmail.com>");
 }
 
 static void
diff --git a/gst/gl/gstglfilterlaplacian.c b/gst/gl/gstglfilterlaplacian.c
index a347452..6046ea2 100644
--- a/gst/gl/gstglfilterlaplacian.c
+++ b/gst/gl/gstglfilterlaplacian.c
@@ -41,12 +41,6 @@
 #define GST_CAT_DEFAULT gst_gl_filter_laplacian_debug
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
 
-static const GstElementDetails element_details =
-GST_ELEMENT_DETAILS ("OpenGL laplacian filter",
-    "Filter/Effect",
-    "Laplacian Convolution Demo Filter",
-    "Filippo Argiolas <filippo.argiolas@gmail.com>");
-
 enum
 {
   PROP_0
@@ -95,7 +89,10 @@ gst_gl_filter_laplacian_base_init (gpointer klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_set_details (element_class, &element_details);
+  gst_element_class_set_details_simple (element_class, "OpenGL laplacian filter",
+    "Filter/Effect",
+    "Laplacian Convolution Demo Filter",
+    "Filippo Argiolas <filippo.argiolas@gmail.com>");
 }
 
 static void
diff --git a/gst/gl/gstglfiltersobel.c b/gst/gl/gstglfiltersobel.c
index 87bb71c..5cfc194 100644
--- a/gst/gl/gstglfiltersobel.c
+++ b/gst/gl/gstglfiltersobel.c
@@ -48,12 +48,6 @@ enum
 #define GST_CAT_DEFAULT gst_gl_filtersobel_debug
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
 
-static const GstElementDetails element_details =
-GST_ELEMENT_DETAILS ("Gstreamer OpenGL Sobel",
-    "Filter/Effect",
-    "Sobel edge detection",
-    "Filippo Argiolas <filippo.argiolas@gmail.com>");
-
 #define DEBUG_INIT(bla)							\
   GST_DEBUG_CATEGORY_INIT (gst_gl_filtersobel_debug, "glfiltersobel", 0, "glfiltersobel element");
 
@@ -104,7 +98,10 @@ gst_gl_filtersobel_base_init (gpointer klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_set_details (element_class, &element_details);
+  gst_element_class_set_details_simple (element_class, "Gstreamer OpenGL Sobel",
+    "Filter/Effect",
+    "Sobel edge detection",
+    "Filippo Argiolas <filippo.argiolas@gmail.com>");
 }
 
 static void
diff --git a/gst/gl/gstglimagesink.c b/gst/gl/gstglimagesink.c
index c526430..c92d59f 100644
--- a/gst/gl/gstglimagesink.c
+++ b/gst/gl/gstglimagesink.c
@@ -118,12 +118,6 @@ static gboolean gst_glimage_sink_interface_supported (GstImplementsInterface *
 static void gst_glimage_sink_implements_init (GstImplementsInterfaceClass *
     klass);
 
-static const GstElementDetails gst_glimage_sink_details =
-GST_ELEMENT_DETAILS ("OpenGL video sink",
-    "Sink/Video",
-    "A videosink based on OpenGL",
-    "Julien Isorce <julien.isorce@gmail.com>");
-
 #ifndef OPENGL_ES2
 static GstStaticPadTemplate gst_glimage_sink_template =
     GST_STATIC_PAD_TEMPLATE ("sink",
@@ -193,7 +187,10 @@ gst_glimage_sink_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_set_details (element_class, &gst_glimage_sink_details);
+  gst_element_class_set_details_simple (element_class, "OpenGL video sink",
+    "Sink/Video",
+    "A videosink based on OpenGL",
+    "Julien Isorce <julien.isorce@gmail.com>");
   gst_element_class_add_pad_template (element_class,
       gst_static_pad_template_get (&gst_glimage_sink_template));
 
diff --git a/gst/gl/gstglmosaic.c b/gst/gl/gstglmosaic.c
index 5041c2c..27fc7a6 100644
--- a/gst/gl/gstglmosaic.c
+++ b/gst/gl/gstglmosaic.c
@@ -27,12 +27,6 @@
 #define GST_CAT_DEFAULT gst_gl_mosaic_debug
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
 
-static const GstElementDetails element_details =
-GST_ELEMENT_DETAILS ("OpenGL mosaic",
-    "Filter/Effect",
-    "OpenGL mosaic",
-    "Julien Isorce <julien.isorce@gmail.com>");
-
 enum
 {
   PROP_0,
@@ -106,7 +100,10 @@ gst_gl_mosaic_base_init (gpointer klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_set_details (element_class, &element_details);
+  gst_element_class_set_details_simple (element_class, "OpenGL mosaic",
+    "Filter/Effect",
+    "OpenGL mosaic",
+    "Julien Isorce <julien.isorce@gmail.com>");
 }
 
 static void
diff --git a/gst/gl/gstgloverlay.c b/gst/gl/gstgloverlay.c
index e2f7094..ff4daef 100644
--- a/gst/gl/gstgloverlay.c
+++ b/gst/gl/gstgloverlay.c
@@ -68,12 +68,6 @@ static gboolean gst_gl_overlay_filter (GstGLFilter * filter,
 
 static gboolean gst_gl_overlay_loader (GstGLFilter * filter);
 
-static const GstElementDetails element_details =
-GST_ELEMENT_DETAILS ("Gstreamer OpenGL Overlay",
-    "Filter/Effect",
-    "Overlay GL video texture with a PNG image",
-    "Filippo Argiolas <filippo.argiolas@gmail.com>");
-
 enum
 {
   PROP_0,
@@ -113,7 +107,10 @@ gst_gl_overlay_base_init (gpointer klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_set_details (element_class, &element_details);
+  gst_element_class_set_details_simple (element_class, "Gstreamer OpenGL Overlay",
+    "Filter/Effect",
+    "Overlay GL video texture with a PNG image",
+    "Filippo Argiolas <filippo.argiolas@gmail.com>");
 }
 
 static void
diff --git a/gst/gl/gstgltestsrc.c b/gst/gl/gstgltestsrc.c
index 6b0d208..3a1151e 100644
--- a/gst/gl/gstgltestsrc.c
+++ b/gst/gl/gstgltestsrc.c
@@ -52,12 +52,6 @@
 GST_DEBUG_CATEGORY_STATIC (gl_test_src_debug);
 #define GST_CAT_DEFAULT gl_test_src_debug
 
-static const GstElementDetails gl_test_src_details =
-GST_ELEMENT_DETAILS ("Video test source",
-    "Source/Video",
-    "Creates a test video stream",
-    "David A. Schleef <ds@schleef.org>");
-
 enum
 {
   PROP_0,
@@ -130,7 +124,10 @@ gst_gl_test_src_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_set_details (element_class, &gl_test_src_details);
+  gst_element_class_set_details_simple (element_class, "Video test source",
+    "Source/Video",
+    "Creates a test video stream",
+    "David A. Schleef <ds@schleef.org>");
 
   gst_element_class_add_pad_template (element_class,
       gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
diff --git a/gst/gl/gstglupload.c b/gst/gl/gstglupload.c
index c85beb9..9ddc144 100644
--- a/gst/gl/gstglupload.c
+++ b/gst/gl/gstglupload.c
@@ -74,12 +74,6 @@
 #define GST_CAT_DEFAULT gst_gl_upload_debug
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
 
-static const GstElementDetails element_details =
-GST_ELEMENT_DETAILS ("OpenGL upload",
-    "Filter/Effect",
-    "A from video to GL flow filter",
-    "Julien Isorce <julien.isorce@gmail.com>");
-
 /* Source pad definition */
 static GstStaticPadTemplate gst_gl_upload_src_pad_template =
 GST_STATIC_PAD_TEMPLATE ("src",
@@ -160,7 +154,10 @@ gst_gl_upload_base_init (gpointer klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_set_details (element_class, &element_details);
+  gst_element_class_set_details_simple (element_class, "OpenGL upload",
+    "Filter/Effect",
+    "A from video to GL flow filter",
+    "Julien Isorce <julien.isorce@gmail.com>");
 
   gst_element_class_add_pad_template (element_class,
       gst_static_pad_template_get (&gst_gl_upload_src_pad_template));
