bad: use new gst_element_class_add_static_pad_template()

https://bugzilla.gnome.org/show_bug.cgi?id=763081
diff --git a/ext/apexsink/gstapexsink.c b/ext/apexsink/gstapexsink.c
index c008e18..df5c5f2 100644
--- a/ext/apexsink/gstapexsink.c
+++ b/ext/apexsink/gstapexsink.c
@@ -265,8 +265,8 @@
       "Apple AirPort Express Audio Sink", "Sink/Audio/Wireless",
       "Output stream to an AirPort Express",
       "Jérémie Bernard [GRemi] <gremimail@gmail.com>");
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_apexsink_sink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_apexsink_sink_factory);
 }
 
 /* sink class init */
diff --git a/ext/assrender/gstassrender.c b/ext/assrender/gstassrender.c
index 913beb5..b4e385b 100644
--- a/ext/assrender/gstassrender.c
+++ b/ext/assrender/gstassrender.c
@@ -170,12 +170,11 @@
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_ass_render_change_state);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&video_sink_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&text_sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &video_sink_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &text_sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "ASS/SSA Render",
       "Mixer/Video/Overlay/Subtitle",
diff --git a/ext/bz2/gstbz2dec.c b/ext/bz2/gstbz2dec.c
index 5a06b19..ad3eef0 100644
--- a/ext/bz2/gstbz2dec.c
+++ b/ext/bz2/gstbz2dec.c
@@ -296,10 +296,8 @@
           1, G_MAXUINT, DEFAULT_BUFFER_SIZE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
   gst_element_class_set_static_metadata (gstelement_class, "BZ2 decoder",
       "Codec/Decoder", "Decodes compressed streams",
       "Lutz Mueller <lutz@users.sourceforge.net>");
diff --git a/ext/bz2/gstbz2enc.c b/ext/bz2/gstbz2enc.c
index c1c1ee1..05ec767 100644
--- a/ext/bz2/gstbz2enc.c
+++ b/ext/bz2/gstbz2enc.c
@@ -320,10 +320,8 @@
           1, G_MAXUINT, DEFAULT_BUFFER_SIZE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
   gst_element_class_set_static_metadata (gstelement_class, "BZ2 encoder",
       "Codec/Encoder", "Compresses streams",
       "Lutz Mueller <lutz@users.sourceforge.net>");
diff --git a/ext/curl/gstcurlbasesink.c b/ext/curl/gstcurlbasesink.c
index 725f1ac..575c241 100644
--- a/ext/curl/gstcurlbasesink.c
+++ b/ext/curl/gstcurlbasesink.c
@@ -235,8 +235,7 @@
           DSCP_MIN, DSCP_MAX, DEFAULT_QOS_DSCP,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (element_class, &sinktemplate);
 }
 
 static void
diff --git a/ext/daala/gstdaaladec.c b/ext/daala/gstdaaladec.c
index d40537d..f401ff3 100644
--- a/ext/daala/gstdaaladec.c
+++ b/ext/daala/gstdaaladec.c
@@ -103,13 +103,12 @@
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
   GstVideoDecoderClass *video_decoder_class = GST_VIDEO_DECODER_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&daala_dec_src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&daala_dec_sink_factory));
-  gst_element_class_set_static_metadata (element_class,
-      "Daala video decoder", "Codec/Decoder/Video",
-      "Decode raw Daala streams to raw YUV video",
+  gst_element_class_add_static_pad_template (element_class,
+      &daala_dec_src_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &daala_dec_sink_factory);
+  gst_element_class_set_static_metadata (element_class, "Daala video decoder",
+      "Codec/Decoder/Video", "Decode raw Daala streams to raw YUV video",
       "Sebastian Dröge <slomo@circular-chaos.org>");
 
   video_decoder_class->start = GST_DEBUG_FUNCPTR (daala_dec_start);
diff --git a/ext/daala/gstdaalaenc.c b/ext/daala/gstdaalaenc.c
index 705c7e6..7209ddf 100644
--- a/ext/daala/gstdaalaenc.c
+++ b/ext/daala/gstdaalaenc.c
@@ -212,13 +212,12 @@
           1, G_MAXINT, DEFAULT_KEYFRAME_RATE,
           (GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&daala_enc_src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&daala_enc_sink_factory));
-  gst_element_class_set_static_metadata (element_class,
-      "Daala video encoder", "Codec/Encoder/Video",
-      "Encode raw YUV video to a Daala stream",
+  gst_element_class_add_static_pad_template (element_class,
+      &daala_enc_src_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &daala_enc_sink_factory);
+  gst_element_class_set_static_metadata (element_class, "Daala video encoder",
+      "Codec/Encoder/Video", "Encode raw YUV video to a Daala stream",
       "Sebastian Dröge <slomo@circular-chaos.org>");
 
   gstvideo_encoder_class->start = GST_DEBUG_FUNCPTR (daala_enc_start);
diff --git a/ext/dash/gstdashdemux.c b/ext/dash/gstdashdemux.c
index 4c1f999..731e109 100644
--- a/ext/dash/gstdashdemux.c
+++ b/ext/dash/gstdashdemux.c
@@ -403,15 +403,14 @@
           DEFAULT_PRESENTATION_DELAY,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_dash_demux_audiosrc_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_dash_demux_videosrc_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_dash_demux_subtitlesrc_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_dash_demux_audiosrc_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_dash_demux_videosrc_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_dash_demux_subtitlesrc_template);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &sinktemplate);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "DASH Demuxer",
diff --git a/ext/directfb/dfbvideosink.c b/ext/directfb/dfbvideosink.c
index db8ef17..5723e6d 100644
--- a/ext/directfb/dfbvideosink.c
+++ b/ext/directfb/dfbvideosink.c
@@ -2414,8 +2414,8 @@
       "DirectFB video sink", "Sink/Video", "A DirectFB based videosink",
       "Julien Moutte <julien@moutte.net>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_dfbvideosink_sink_template_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_dfbvideosink_sink_template_factory);
 
   gstelement_class->change_state = gst_dfbvideosink_change_state;
 
diff --git a/ext/dtls/gstdtlsdec.c b/ext/dtls/gstdtlsdec.c
index f05b4f1..3770de0 100644
--- a/ext/dtls/gstdtlsdec.c
+++ b/ext/dtls/gstdtlsdec.c
@@ -173,10 +173,8 @@
 
   g_object_class_install_properties (gobject_class, NUM_PROPERTIES, properties);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (element_class, &src_template);
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
 
   gst_element_class_set_static_metadata (element_class,
       "DTLS Decoder",
diff --git a/ext/dtls/gstdtlsenc.c b/ext/dtls/gstdtlsenc.c
index 060f053..9c64935 100644
--- a/ext/dtls/gstdtlsenc.c
+++ b/ext/dtls/gstdtlsenc.c
@@ -162,10 +162,8 @@
 
   g_object_class_install_properties (gobject_class, NUM_PROPERTIES, properties);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (element_class, &src_template);
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
 
   gst_element_class_set_static_metadata (element_class,
       "DTLS Encoder",
diff --git a/ext/dtls/gstdtlssrtpdec.c b/ext/dtls/gstdtlssrtpdec.c
index 5e29a0f..2ff8a58 100644
--- a/ext/dtls/gstdtlssrtpdec.c
+++ b/ext/dtls/gstdtlssrtpdec.c
@@ -133,14 +133,10 @@
 
   g_object_class_install_properties (gobject_class, NUM_PROPERTIES, properties);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&rtp_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&rtcp_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&data_src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &rtp_src_template);
+  gst_element_class_add_static_pad_template (element_class, &rtcp_src_template);
+  gst_element_class_add_static_pad_template (element_class, &data_src_template);
 
   gst_element_class_set_static_metadata (element_class,
       "DTLS-SRTP Decoder",
diff --git a/ext/dtls/gstdtlssrtpdemux.c b/ext/dtls/gstdtlssrtpdemux.c
index f52d5fb..ab1ef70 100644
--- a/ext/dtls/gstdtlssrtpdemux.c
+++ b/ext/dtls/gstdtlssrtpdemux.c
@@ -69,12 +69,9 @@
 
   element_class = (GstElementClass *) klass;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&rtp_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&dtls_src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &rtp_src_template);
+  gst_element_class_add_static_pad_template (element_class, &dtls_src_template);
 
   gst_element_class_set_static_metadata (element_class,
       "DTLS SRTP Demultiplexer",
diff --git a/ext/dtls/gstdtlssrtpenc.c b/ext/dtls/gstdtlssrtpenc.c
index 941afac..6c31325 100644
--- a/ext/dtls/gstdtlssrtpenc.c
+++ b/ext/dtls/gstdtlssrtpenc.c
@@ -139,14 +139,12 @@
 
   g_object_class_install_properties (gobject_class, NUM_PROPERTIES, properties);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&rtp_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&rtcp_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&data_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &rtp_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &rtcp_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &data_sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   gst_element_class_set_static_metadata (element_class,
       "DTLS-SRTP Encoder",
diff --git a/ext/dts/gstdtsdec.c b/ext/dts/gstdtsdec.c
index 767b6bf..095238c 100644
--- a/ext/dts/gstdtsdec.c
+++ b/ext/dts/gstdtsdec.c
@@ -156,10 +156,8 @@
   gobject_class->set_property = gst_dtsdec_set_property;
   gobject_class->get_property = gst_dtsdec_get_property;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
   gst_element_class_set_static_metadata (gstelement_class, "DTS audio decoder",
       "Codec/Decoder/Audio",
       "Decodes DTS audio streams",
diff --git a/ext/faac/gstfaac.c b/ext/faac/gstfaac.c
index 6804cbf..7e3cf41 100644
--- a/ext/faac/gstfaac.c
+++ b/ext/faac/gstfaac.c
@@ -191,8 +191,7 @@
 
   GST_DEBUG_CATEGORY_INIT (faac_debug, "faac", 0, "AAC encoding");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
 
   sink_caps = gst_faac_enc_generate_sink_caps ();
   sink_templ = gst_pad_template_new ("sink",
diff --git a/ext/faad/gstfaad.c b/ext/faad/gstfaad.c
index b72b42d..07cca30 100644
--- a/ext/faad/gstfaad.c
+++ b/ext/faad/gstfaad.c
@@ -111,10 +111,8 @@
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
   GstAudioDecoderClass *base_class = GST_AUDIO_DECODER_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (element_class, &src_template);
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
 
   gst_element_class_set_static_metadata (element_class, "AAC audio decoder",
       "Codec/Decoder/Audio",
diff --git a/ext/flite/gstflitetestsrc.c b/ext/flite/gstflitetestsrc.c
index b6c5667..63ed90d 100644
--- a/ext/flite/gstflitetestsrc.c
+++ b/ext/flite/gstflitetestsrc.c
@@ -126,8 +126,8 @@
           1, G_MAXINT, DEFAULT_SAMPLES_PER_BUFFER,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_flite_test_src_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_flite_test_src_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Flite speech test source", "Source/Audio",
diff --git a/ext/fluidsynth/gstfluiddec.c b/ext/fluidsynth/gstfluiddec.c
index 124825b..62262ec 100644
--- a/ext/fluidsynth/gstfluiddec.c
+++ b/ext/fluidsynth/gstfluiddec.c
@@ -177,10 +177,8 @@
           "Synth Polyphony", "The number of simultaneous voices", 1, 65535,
           DEFAULT_SYNTH_POLYPHONY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "Fluidsynth",
       "Codec/Decoder/Audio",
diff --git a/ext/gl/caopengllayersink.m b/ext/gl/caopengllayersink.m
index 42b8f90..b923d22 100644
--- a/ext/gl/caopengllayersink.m
+++ b/ext/gl/caopengllayersink.m
@@ -227,8 +227,7 @@
       "Sink/Video", "A video sink based on CAOpenGLLayer",
       "Matthew Waters <matthew@centricular.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_ca_opengl_layer_sink_template));
+  gst_element_class_add_static_pad_template (element_class, &gst_ca_opengl_layer_sink_template);
 
   gobject_class->finalize = gst_ca_opengl_layer_sink_finalize;
 
diff --git a/ext/gl/gstglcolorconvertelement.c b/ext/gl/gstglcolorconvertelement.c
index bd4fbeb..642b494 100644
--- a/ext/gl/gstglcolorconvertelement.c
+++ b/ext/gl/gstglcolorconvertelement.c
@@ -103,12 +103,10 @@
 
   bt_class->passthrough_on_same_caps = TRUE;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get
-      (&gst_gl_color_convert_element_src_pad_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get
-      (&gst_gl_color_convert_element_sink_pad_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_gl_color_convert_element_src_pad_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_gl_color_convert_element_sink_pad_template);
 
   gst_element_class_set_metadata (element_class,
       "OpenGL color converter", "Filter/Converter/Video",
diff --git a/ext/gl/gstgldownloadelement.c b/ext/gl/gstgldownloadelement.c
index ff931fa..058398b 100644
--- a/ext/gl/gstgldownloadelement.c
+++ b/ext/gl/gstgldownloadelement.c
@@ -73,10 +73,10 @@
 
   bt_class->passthrough_on_same_caps = TRUE;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_gl_download_element_src_pad_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_gl_download_element_sink_pad_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_gl_download_element_src_pad_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_gl_download_element_sink_pad_template);
 
   gst_element_class_set_metadata (element_class,
       "OpenGL uploader", "Filter/Video",
diff --git a/ext/gl/gstglfilterbin.c b/ext/gl/gstglfilterbin.c
index 946d66c..a3621ec 100644
--- a/ext/gl/gstglfilterbin.c
+++ b/ext/gl/gstglfilterbin.c
@@ -73,8 +73,7 @@
   gobject_class->set_property = gst_gl_filter_bin_set_property;
   gobject_class->get_property = gst_gl_filter_bin_get_property;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&_src_pad_template));
+  gst_element_class_add_static_pad_template (element_class, &_src_pad_template);
 
   upload_caps = gst_gl_upload_get_input_template_caps ();
   gst_element_class_add_pad_template (element_class,
diff --git a/ext/gl/gstglimagesink.c b/ext/gl/gstglimagesink.c
index 3b5e3b5..62a266f 100644
--- a/ext/gl/gstglimagesink.c
+++ b/ext/gl/gstglimagesink.c
@@ -570,8 +570,8 @@
       G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_generic,
       G_TYPE_BOOLEAN, 3, GST_GL_TYPE_CONTEXT, G_TYPE_UINT, G_TYPE_UINT);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_glimage_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_glimage_sink_template);
 
   gobject_class->finalize = gst_glimage_sink_finalize;
 
diff --git a/ext/gl/gstglmixer.c b/ext/gl/gstglmixer.c
index 5ca1316..7059b48 100644
--- a/ext/gl/gstglmixer.c
+++ b/ext/gl/gstglmixer.c
@@ -380,10 +380,8 @@
   gobject_class->get_property = gst_gl_mixer_get_property;
   gobject_class->set_property = gst_gl_mixer_set_property;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 
   agg_class->sinkpads_type = GST_TYPE_GL_MIXER_PAD;
   agg_class->sink_query = gst_gl_mixer_sink_query;
diff --git a/ext/gl/gstglmixerbin.c b/ext/gl/gstglmixerbin.c
index 6f83f82..bb74ef9 100644
--- a/ext/gl/gstglmixerbin.c
+++ b/ext/gl/gstglmixerbin.c
@@ -169,8 +169,7 @@
       G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_generic,
       GST_TYPE_ELEMENT, 0);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
 
   upload_caps = gst_gl_upload_get_input_template_caps ();
   gst_element_class_add_pad_template (element_class,
diff --git a/ext/gl/gstglsrcbin.c b/ext/gl/gstglsrcbin.c
index 9eb66d3..da74aaa 100644
--- a/ext/gl/gstglsrcbin.c
+++ b/ext/gl/gstglsrcbin.c
@@ -102,8 +102,8 @@
       "Infrastructure to process GL textures",
       "Matthew Waters <matthew@centricular.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_gl_src_bin_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_gl_src_bin_template);
 }
 
 static void
diff --git a/ext/gl/gstglstereomix.c b/ext/gl/gstglstereomix.c
index 989d7f6..663c1b7 100644
--- a/ext/gl/gstglstereomix.c
+++ b/ext/gl/gstglstereomix.c
@@ -150,10 +150,8 @@
           GST_TYPE_GL_STEREO_DOWNMIX_MODE_TYPE, DEFAULT_DOWNMIX,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 
   agg_class->sinkpads_type = GST_TYPE_GL_STEREO_MIX_PAD;
   agg_class->stop = gst_gl_stereo_mix_stop;
diff --git a/ext/gl/gstglstereosplit.c b/ext/gl/gstglstereosplit.c
index eba713c..2d8f2d1 100644
--- a/ext/gl/gstglstereosplit.c
+++ b/ext/gl/gstglstereosplit.c
@@ -139,12 +139,10 @@
   element_class->change_state = stereosplit_change_state;
   element_class->set_context = stereosplit_set_context;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_left_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_right_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_left_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &src_right_template);
 }
 
 static void
diff --git a/ext/gl/gstgltestsrc.c b/ext/gl/gstgltestsrc.c
index 95c7321..f7059ac 100644
--- a/ext/gl/gstgltestsrc.c
+++ b/ext/gl/gstgltestsrc.c
@@ -178,8 +178,7 @@
       "Source/Video", "Creates a test video stream",
       "David A. Schleef <ds@schleef.org>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
 
   element_class->set_context = gst_gl_test_src_set_context;
   element_class->change_state = gst_gl_test_src_change_state;
diff --git a/ext/gl/gstgluploadelement.c b/ext/gl/gstgluploadelement.c
index 86e8b01..b65c0c4 100644
--- a/ext/gl/gstgluploadelement.c
+++ b/ext/gl/gstgluploadelement.c
@@ -80,8 +80,8 @@
 
   bt_class->passthrough_on_same_caps = TRUE;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_gl_upload_element_src_pad_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_gl_upload_element_src_pad_template);
 
   upload_caps = gst_gl_upload_get_input_template_caps ();
   gst_element_class_add_pad_template (element_class,
diff --git a/ext/gl/gstglvideoflip.c b/ext/gl/gstglvideoflip.c
index caae79e..690396d 100644
--- a/ext/gl/gstglvideoflip.c
+++ b/ext/gl/gstglvideoflip.c
@@ -133,10 +133,8 @@
           GST_PARAM_CONTROLLABLE | G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
           G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&_sink_template));
+  gst_element_class_add_static_pad_template (element_class, &_src_template);
+  gst_element_class_add_static_pad_template (element_class, &_sink_template);
 
   gst_element_class_set_metadata (element_class, "OpenGL video flip filter",
       "Filter/Effect/Video", "Flip video on the GPU",
diff --git a/ext/gme/gstgme.c b/ext/gme/gstgme.c
index 1e149ac..1c5c83c 100644
--- a/ext/gme/gstgme.c
+++ b/ext/gme/gstgme.c
@@ -92,10 +92,8 @@
       "Chris Lee <clee@kde.org>, Brian Koropoff <bkoropoff@gmail.com>, "
       "Michael Pyne <mpyne@kde.org>, Sebastian Dröge <sebastian.droege@collabora.co.uk>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
 
   element_class->change_state = GST_DEBUG_FUNCPTR (gst_gme_dec_change_state);
 }
diff --git a/ext/gsm/gstgsmdec.c b/ext/gsm/gstgsmdec.c
index e02631f..0f3e49f 100644
--- a/ext/gsm/gstgsmdec.c
+++ b/ext/gsm/gstgsmdec.c
@@ -84,13 +84,13 @@
   element_class = (GstElementClass *) klass;
   base_class = (GstAudioDecoderClass *) klass;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gsmdec_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gsmdec_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gsmdec_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gsmdec_src_template);
   gst_element_class_set_static_metadata (element_class, "GSM audio decoder",
-      "Codec/Decoder/Audio",
-      "Decodes GSM encoded audio", "Philippe Khalaf <burger@speedy.org>");
+      "Codec/Decoder/Audio", "Decodes GSM encoded audio",
+      "Philippe Khalaf <burger@speedy.org>");
 
   base_class->start = GST_DEBUG_FUNCPTR (gst_gsmdec_start);
   base_class->stop = GST_DEBUG_FUNCPTR (gst_gsmdec_stop);
diff --git a/ext/gsm/gstgsmenc.c b/ext/gsm/gstgsmenc.c
index 54ede2e..11c3d74 100644
--- a/ext/gsm/gstgsmenc.c
+++ b/ext/gsm/gstgsmenc.c
@@ -78,13 +78,13 @@
   element_class = (GstElementClass *) klass;
   base_class = (GstAudioEncoderClass *) klass;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gsmenc_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gsmenc_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gsmenc_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gsmenc_src_template);
   gst_element_class_set_static_metadata (element_class, "GSM audio encoder",
-      "Codec/Encoder/Audio",
-      "Encodes GSM audio", "Philippe Khalaf <burger@speedy.org>");
+      "Codec/Encoder/Audio", "Encodes GSM audio",
+      "Philippe Khalaf <burger@speedy.org>");
 
   base_class->start = GST_DEBUG_FUNCPTR (gst_gsmenc_start);
   base_class->stop = GST_DEBUG_FUNCPTR (gst_gsmenc_stop);
diff --git a/ext/gtk/gstgtkglsink.c b/ext/gtk/gstgtkglsink.c
index 4d41f1a..f17a88e 100644
--- a/ext/gtk/gstgtkglsink.c
+++ b/ext/gtk/gstgtkglsink.c
@@ -80,8 +80,8 @@
       "Sink/Video", "A video sink that renders to a GtkWidget",
       "Matthew Waters <matthew@centricular.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_gtk_gl_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_gtk_gl_sink_template);
 }
 
 static void
diff --git a/ext/gtk/gstgtksink.c b/ext/gtk/gstgtksink.c
index 4659221..083c28d 100644
--- a/ext/gtk/gstgtksink.c
+++ b/ext/gtk/gstgtksink.c
@@ -62,8 +62,8 @@
       "Sink/Video", "A video sink that renders to a GtkWidget",
       "Matthew Waters <matthew@centricular.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_gtk_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_gtk_sink_template);
 }
 
 static void
diff --git a/ext/hls/gsthlsdemux.c b/ext/hls/gsthlsdemux.c
index cf51d99..43ecdb7 100644
--- a/ext/hls/gsthlsdemux.c
+++ b/ext/hls/gsthlsdemux.c
@@ -134,11 +134,8 @@
 
   element_class->change_state = GST_DEBUG_FUNCPTR (gst_hls_demux_change_state);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&srctemplate));
-
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (element_class, &srctemplate);
+  gst_element_class_add_static_pad_template (element_class, &sinktemplate);
 
   gst_element_class_set_static_metadata (element_class,
       "HLS Demuxer",
diff --git a/ext/hls/gsthlssink.c b/ext/hls/gsthlssink.c
index 03671d0..b56ef6c 100644
--- a/ext/hls/gsthlssink.c
+++ b/ext/hls/gsthlssink.c
@@ -120,8 +120,7 @@
   element_class = GST_ELEMENT_CLASS (klass);
   bin_class = GST_BIN_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
 
   gst_element_class_set_static_metadata (element_class,
       "HTTP Live Streaming sink", "Sink", "HTTP Live Streaming sink",
diff --git a/ext/kate/gstkatedec.c b/ext/kate/gstkatedec.c
index c61d514..88a5666 100644
--- a/ext/kate/gstkatedec.c
+++ b/ext/kate/gstkatedec.c
@@ -162,10 +162,8 @@
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_kate_dec_change_state);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Kate stream text decoder", "Codec/Decoder/Subtitle",
diff --git a/ext/kate/gstkateenc.c b/ext/kate/gstkateenc.c
index d88914a..12bd1c8 100644
--- a/ext/kate/gstkateenc.c
+++ b/ext/kate/gstkateenc.c
@@ -214,10 +214,8 @@
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_kate_enc_change_state);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Kate stream encoder", "Codec/Encoder/Subtitle",
diff --git a/ext/kate/gstkateparse.c b/ext/kate/gstkateparse.c
index 99ea0c8..0cb9db0 100644
--- a/ext/kate/gstkateparse.c
+++ b/ext/kate/gstkateparse.c
@@ -109,10 +109,10 @@
 
   gstelement_class->change_state = gst_kate_parse_change_state;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_kate_parse_src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_kate_parse_sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_kate_parse_src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_kate_parse_sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "Kate stream parser",
       "Codec/Parser/Subtitle",
diff --git a/ext/kate/gstkatetiger.c b/ext/kate/gstkatetiger.c
index 6b2677c..e4f3ca9 100644
--- a/ext/kate/gstkatetiger.c
+++ b/ext/kate/gstkatetiger.c
@@ -219,12 +219,10 @@
 
   GstElementClass *element_class = GST_ELEMENT_CLASS (gclass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&kate_sink_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&video_sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &kate_sink_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &video_sink_factory);
   gst_element_class_set_static_metadata (element_class, "Kate stream renderer",
       "Mixer/Video/Overlay/Subtitle",
       "Decodes and renders Kate streams on top of a video",
diff --git a/ext/libde265/libde265-dec.c b/ext/libde265/libde265-dec.c
index e11f12c..8053168 100644
--- a/ext/libde265/libde265-dec.c
+++ b/ext/libde265/libde265-dec.c
@@ -117,10 +117,8 @@
   decoder_class->handle_frame =
       GST_DEBUG_FUNCPTR (gst_libde265_dec_handle_frame);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "HEVC/H.265 decoder",
diff --git a/ext/libmms/gstmms.c b/ext/libmms/gstmms.c
index 5e3ff38..56243a2 100644
--- a/ext/libmms/gstmms.c
+++ b/ext/libmms/gstmms.c
@@ -100,8 +100,7 @@
           0, G_MAXINT / 1000, DEFAULT_CONNECTION_SPEED,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "MMS streaming source", "Source/Network",
diff --git a/ext/libvisual/visual-gl.c b/ext/libvisual/visual-gl.c
index 85c91e0..c796d4b 100644
--- a/ext/libvisual/visual-gl.c
+++ b/ext/libvisual/visual-gl.c
@@ -216,10 +216,8 @@
         klass->plugin->info->name, klass->plugin->info->version);
 
     /* FIXME: improve to only register what plugin supports? */
-    gst_element_class_add_pad_template (element_class,
-        gst_static_pad_template_get (&src_template));
-    gst_element_class_add_pad_template (element_class,
-        gst_static_pad_template_get (&sink_template));
+    gst_element_class_add_static_pad_template (element_class, &src_template);
+    gst_element_class_add_static_pad_template (element_class, &sink_template);
 
     gst_element_class_set_metadata (element_class,
         longname, "Visualization", klass->plugin->info->about,
diff --git a/ext/mimic/gstmimdec.c b/ext/mimic/gstmimdec.c
index c7ad022..4ad38f9 100644
--- a/ext/mimic/gstmimdec.c
+++ b/ext/mimic/gstmimdec.c
@@ -80,10 +80,8 @@
   gstelement_class = (GstElementClass *) klass;
   gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_mim_dec_change_state);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Mimic Decoder",
diff --git a/ext/mimic/gstmimenc.c b/ext/mimic/gstmimenc.c
index c94c411..3232ca5 100644
--- a/ext/mimic/gstmimenc.c
+++ b/ext/mimic/gstmimenc.c
@@ -122,10 +122,8 @@
           " when no data is received",
           FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
   gst_element_class_set_static_metadata (gstelement_class,
       "Mimic Encoder",
       "Codec/Encoder/Video",
diff --git a/ext/modplug/gstmodplug.cc b/ext/modplug/gstmodplug.cc
index ff3641d..b5fbcb2 100644
--- a/ext/modplug/gstmodplug.cc
+++ b/ext/modplug/gstmodplug.cc
@@ -205,10 +205,8 @@
 
   gstelement_class->change_state = gst_modplug_change_state;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&modplug_sink_template_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&modplug_src_template_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &modplug_sink_template_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &modplug_src_template_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "ModPlug",
       "Codec/Decoder/Audio", "Module decoder based on modplug engine",
diff --git a/ext/mpeg2enc/gstmpeg2enc.cc b/ext/mpeg2enc/gstmpeg2enc.cc
index 5c686cc..b974826 100644
--- a/ext/mpeg2enc/gstmpeg2enc.cc
+++ b/ext/mpeg2enc/gstmpeg2enc.cc
@@ -126,10 +126,8 @@
 
   element_class->change_state = GST_DEBUG_FUNCPTR (gst_mpeg2enc_change_state);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (element_class, &src_template);
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
 
   gst_element_class_set_static_metadata (element_class,
       "mpeg2enc video encoder", "Codec/Encoder/Video",
diff --git a/ext/mplex/gstmplex.cc b/ext/mplex/gstmplex.cc
index ae50bea..4089485 100644
--- a/ext/mplex/gstmplex.cc
+++ b/ext/mplex/gstmplex.cc
@@ -149,12 +149,9 @@
       "Ronald Bultje <rbultje@ronald.bitfreak.net>\n"
       "Mark Nauwelaerts <mnauw@users.sourceforge.net>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_templ));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&video_sink_templ));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&audio_sink_templ));
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
+  gst_element_class_add_static_pad_template (element_class, &video_sink_templ);
+  gst_element_class_add_static_pad_template (element_class, &audio_sink_templ);
 }
 
 static void
diff --git a/ext/musepack/gstmusepackdec.c b/ext/musepack/gstmusepackdec.c
index bf08b1d..4ea727a 100644
--- a/ext/musepack/gstmusepackdec.c
+++ b/ext/musepack/gstmusepackdec.c
@@ -83,10 +83,8 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (element_class, &src_template);
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
 
   gst_element_class_set_static_metadata (element_class, "Musepack decoder",
       "Codec/Decoder/Audio",
diff --git a/ext/nas/nassink.c b/ext/nas/nassink.c
index cd8485b..2d6404b 100644
--- a/ext/nas/nassink.c
+++ b/ext/nas/nassink.c
@@ -94,8 +94,7 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
   gst_element_class_set_static_metadata (element_class, "NAS audio sink",
       "Sink/Audio",
       "Plays audio to a Network Audio Server",
diff --git a/ext/neon/gstneonhttpsrc.c b/ext/neon/gstneonhttpsrc.c
index 8a4ff0d..03c596c 100644
--- a/ext/neon/gstneonhttpsrc.c
+++ b/ext/neon/gstneonhttpsrc.c
@@ -203,8 +203,7 @@
   GST_DEBUG_CATEGORY_INIT (neonhttpsrc_debug, "neonhttpsrc", 0,
       "NEON HTTP Client Source");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&srctemplate));
+  gst_element_class_add_static_pad_template (element_class, &srctemplate);
 
   gst_element_class_set_static_metadata (element_class, "HTTP client source",
       "Source/Network",
diff --git a/ext/openal/gstopenalsink.c b/ext/openal/gstopenalsink.c
index 74f58e4..66de051 100644
--- a/ext/openal/gstopenalsink.c
+++ b/ext/openal/gstopenalsink.c
@@ -229,8 +229,8 @@
       "Sink/Audio", "Output audio through OpenAL",
       "Juan Manuel Borges Caño <juanmabcmail@gmail.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&openalsink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &openalsink_factory);
 
 }
 
diff --git a/ext/openal/gstopenalsrc.c b/ext/openal/gstopenalsrc.c
index d06b3c4..26e73d4 100644
--- a/ext/openal/gstopenalsrc.c
+++ b/ext/openal/gstopenalsrc.c
@@ -192,8 +192,8 @@
       "OpenAL Audio Source", "Source/Audio", "Input audio through OpenAL",
       "Juan Manuel Borges Caño <juanmabcmail@gmail.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&openalsrc_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &openalsrc_factory);
 }
 
 static void
diff --git a/ext/opencv/gstcvequalizehist.cpp b/ext/opencv/gstcvequalizehist.cpp
index ea1db28..bd3a7f0 100644
--- a/ext/opencv/gstcvequalizehist.cpp
+++ b/ext/opencv/gstcvequalizehist.cpp
@@ -93,10 +93,8 @@
 
   gstopencvbasefilter_class->cv_trans_func = gst_cv_equalize_hist_transform;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 
   gst_element_class_set_static_metadata (element_class,
       "cvequalizehist",
diff --git a/ext/opencv/gstcvlaplace.cpp b/ext/opencv/gstcvlaplace.cpp
index c989456..c8293bd 100644
--- a/ext/opencv/gstcvlaplace.cpp
+++ b/ext/opencv/gstcvlaplace.cpp
@@ -164,10 +164,8 @@
           "Sets whether the detected edges should be used as a mask on the original input or not",
           DEFAULT_MASK, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 
   gst_element_class_set_static_metadata (element_class,
       "cvlaplace",
diff --git a/ext/opencv/gstcvsobel.cpp b/ext/opencv/gstcvsobel.cpp
index d5c9ef7..4c2ccc4 100644
--- a/ext/opencv/gstcvsobel.cpp
+++ b/ext/opencv/gstcvsobel.cpp
@@ -163,10 +163,8 @@
           "Sets whether the detected derivative edges should be used as a mask on the original input or not",
           DEFAULT_MASK, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 
   gst_element_class_set_static_metadata (element_class,
       "cvsobel",
diff --git a/ext/opencv/gstdisparity.cpp b/ext/opencv/gstdisparity.cpp
index 3ca9015..3b99322 100644
--- a/ext/opencv/gstdisparity.cpp
+++ b/ext/opencv/gstdisparity.cpp
@@ -238,10 +238,8 @@
       "Calculates the stereo disparity map from two (sequences of) rectified and aligned stereo images",
       "Miguel Casas-Sanchez <miguelecasassanchez@gmail.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 }
 
 /* initialize the new element
diff --git a/ext/opencv/gstedgedetect.cpp b/ext/opencv/gstedgedetect.cpp
index 7e6c1e7..1be9836 100644
--- a/ext/opencv/gstedgedetect.cpp
+++ b/ext/opencv/gstedgedetect.cpp
@@ -169,10 +169,8 @@
       "Performs canny edge detection on videos and images.",
       "Michael Sheldon <mike@mikeasoft.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 }
 
 /* initialize the new element
diff --git a/ext/opencv/gstfaceblur.cpp b/ext/opencv/gstfaceblur.cpp
index 2bc88d1..2bba630 100644
--- a/ext/opencv/gstfaceblur.cpp
+++ b/ext/opencv/gstfaceblur.cpp
@@ -227,10 +227,8 @@
       "Blurs faces in images and videos",
       "Michael Sheldon <mike@mikeasoft.com>,Robert Jobbagy <jobbagy.robert@gmail.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 }
 
 /* initialize the new element
diff --git a/ext/opencv/gstfacedetect.cpp b/ext/opencv/gstfacedetect.cpp
index aff9979..64a6fb4 100644
--- a/ext/opencv/gstfacedetect.cpp
+++ b/ext/opencv/gstfacedetect.cpp
@@ -349,10 +349,8 @@
       "Performs face detection on videos and images, providing detected positions via bus messages",
       "Michael Sheldon <mike@mikeasoft.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 }
 
 /* initialize the new element
diff --git a/ext/opencv/gstgrabcut.cpp b/ext/opencv/gstgrabcut.cpp
index eaf727b..6243ae3 100644
--- a/ext/opencv/gstgrabcut.cpp
+++ b/ext/opencv/gstgrabcut.cpp
@@ -184,10 +184,8 @@
 downstream event is used to create a bbox of PR_FG elements.\n\
 IF nothing is present, then nothing is done.", "Miguel Casas-Sanchez <miguelecasassanchez@gmail.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 }
 
 
diff --git a/ext/opencv/gsthanddetect.cpp b/ext/opencv/gsthanddetect.cpp
index e36b80e..3995b5f 100644
--- a/ext/opencv/gsthanddetect.cpp
+++ b/ext/opencv/gsthanddetect.cpp
@@ -245,10 +245,8 @@
       "Performs hand gesture detection on videos, providing detected hand positions via bus message and navigation event, and deals with hand gesture events",
       "Andol Li <andol@andol.info>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 
 }
 
diff --git a/ext/opencv/gstmotioncells.cpp b/ext/opencv/gstmotioncells.cpp
index e1d412f..33f314a 100644
--- a/ext/opencv/gstmotioncells.cpp
+++ b/ext/opencv/gstmotioncells.cpp
@@ -308,10 +308,8 @@
       "Performs motion detection on videos and images, providing detected motion cells index via bus messages",
       "Robert Jobbagy <jobbagy dot robert at gmail dot com>, Nicola Murino <nicola dot murino at gmail.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 }
 
 /* initialize the new element
diff --git a/ext/opencv/gstpyramidsegment.cpp b/ext/opencv/gstpyramidsegment.cpp
index d8247c0..fae3cf6 100644
--- a/ext/opencv/gstpyramidsegment.cpp
+++ b/ext/opencv/gstpyramidsegment.cpp
@@ -165,10 +165,8 @@
       "Applies pyramid segmentation to a video or image.",
       "Michael Sheldon <mike@mikeasoft.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 }
 
 /* initialize the new element
diff --git a/ext/opencv/gstretinex.cpp b/ext/opencv/gstretinex.cpp
index 75842f8..2e23d89 100644
--- a/ext/opencv/gstretinex.cpp
+++ b/ext/opencv/gstretinex.cpp
@@ -167,10 +167,8 @@
       "Multiscale retinex for colour image enhancement",
       "Miguel Casas-Sanchez <miguelecasassanchez@gmail.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 }
 
 /* initialize the new element
diff --git a/ext/opencv/gstsegmentation.cpp b/ext/opencv/gstsegmentation.cpp
index e0aa821..864a809 100644
--- a/ext/opencv/gstsegmentation.cpp
+++ b/ext/opencv/gstsegmentation.cpp
@@ -223,10 +223,8 @@
       "Create a Foregound/Background mask applying a particular algorithm",
       "Miguel Casas-Sanchez <miguelecasassanchez@gmail.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 
 }
 
diff --git a/ext/opencv/gstskindetect.cpp b/ext/opencv/gstskindetect.cpp
index aade23c..ad81a38 100644
--- a/ext/opencv/gstskindetect.cpp
+++ b/ext/opencv/gstskindetect.cpp
@@ -163,10 +163,8 @@
       "Performs non-parametric skin detection on input",
       "Miguel Casas-Sanchez <miguelecasassanchez@gmail.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 
   basesrc_class->stop = gst_skin_detect_stop;
   gstopencvbasefilter_class->cv_set_caps = gst_skin_detect_set_caps;
diff --git a/ext/opencv/gsttemplatematch.cpp b/ext/opencv/gsttemplatematch.cpp
index 1223066..f39208d 100644
--- a/ext/opencv/gsttemplatematch.cpp
+++ b/ext/opencv/gsttemplatematch.cpp
@@ -147,10 +147,8 @@
       "Performs template matching on videos and images, providing detected positions via bus messages.",
       "Noam Lewis <jones.noamle@gmail.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 }
 
 /* initialize the new element
diff --git a/ext/opencv/gsttextoverlay.cpp b/ext/opencv/gsttextoverlay.cpp
index 7025b36..e3dc518 100644
--- a/ext/opencv/gsttextoverlay.cpp
+++ b/ext/opencv/gsttextoverlay.cpp
@@ -211,10 +211,8 @@
       "Filter/Effect/Video",
       "Write text on the top of video", "sreerenj<bsreerenj@gmail.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 
 }
 
diff --git a/ext/openexr/gstopenexrdec.cpp b/ext/openexr/gstopenexrdec.cpp
index a334b0a..8ee4598 100644
--- a/ext/openexr/gstopenexrdec.cpp
+++ b/ext/openexr/gstopenexrdec.cpp
@@ -122,10 +122,8 @@
   element_class = (GstElementClass *) klass;
   video_decoder_class = (GstVideoDecoderClass *) klass;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_openexr_dec_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_openexr_dec_sink_template));
+  gst_element_class_add_static_pad_template (element_class, &gst_openexr_dec_src_template);
+  gst_element_class_add_static_pad_template (element_class, &gst_openexr_dec_sink_template);
 
   gst_element_class_set_static_metadata (element_class,
       "OpenEXR decoder",
diff --git a/ext/openh264/gstopenh264dec.cpp b/ext/openh264/gstopenh264dec.cpp
index 6333fe4..0810922 100644
--- a/ext/openh264/gstopenh264dec.cpp
+++ b/ext/openh264/gstopenh264dec.cpp
@@ -111,10 +111,8 @@
 
   /* Setting up pads and setting metadata should be moved to
      base_class_init if you intend to subclass this class. */
-  gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
-      gst_static_pad_template_get (&gst_openh264dec_sink_template));
-  gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
-      gst_static_pad_template_get (&gst_openh264dec_src_template));
+  gst_element_class_add_static_pad_template (GST_ELEMENT_CLASS (klass), &gst_openh264dec_sink_template);
+  gst_element_class_add_static_pad_template (GST_ELEMENT_CLASS (klass), &gst_openh264dec_src_template);
 
   gst_element_class_set_static_metadata (GST_ELEMENT_CLASS (klass),
       "OpenH264 video decoder", "Decoder/Video", "OpenH264 video decoder",
diff --git a/ext/openh264/gstopenh264enc.cpp b/ext/openh264/gstopenh264enc.cpp
index 4461ae2..bdd4e51 100644
--- a/ext/openh264/gstopenh264enc.cpp
+++ b/ext/openh264/gstopenh264enc.cpp
@@ -275,10 +275,8 @@
 
   /* Setting up pads and setting metadata should be moved to
      base_class_init if you intend to subclass this class. */
-  gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
-      gst_static_pad_template_get (&gst_openh264enc_src_template));
-  gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
-      gst_static_pad_template_get (&gst_openh264enc_sink_template));
+  gst_element_class_add_static_pad_template (GST_ELEMENT_CLASS (klass), &gst_openh264enc_src_template);
+  gst_element_class_add_static_pad_template (GST_ELEMENT_CLASS (klass), &gst_openh264enc_sink_template);
 
   gst_element_class_set_static_metadata (GST_ELEMENT_CLASS (klass),
       "OpenH264 video encoder", "Encoder/Video", "OpenH264 video encoder",
diff --git a/ext/openjpeg/gstopenjpegdec.c b/ext/openjpeg/gstopenjpegdec.c
index 112b3ab..fdccc51 100644
--- a/ext/openjpeg/gstopenjpegdec.c
+++ b/ext/openjpeg/gstopenjpegdec.c
@@ -79,10 +79,10 @@
   element_class = (GstElementClass *) klass;
   video_decoder_class = (GstVideoDecoderClass *) klass;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_openjpeg_dec_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_openjpeg_dec_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_openjpeg_dec_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_openjpeg_dec_sink_template);
 
   gst_element_class_set_static_metadata (element_class,
       "OpenJPEG JPEG2000 decoder",
diff --git a/ext/openjpeg/gstopenjpegenc.c b/ext/openjpeg/gstopenjpegenc.c
index 7ccbf11..fe5764d 100644
--- a/ext/openjpeg/gstopenjpegenc.c
+++ b/ext/openjpeg/gstopenjpegenc.c
@@ -177,10 +177,10 @@
           "Tile Height", 0, G_MAXINT, DEFAULT_TILE_HEIGHT,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_openjpeg_enc_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_openjpeg_enc_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_openjpeg_enc_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_openjpeg_enc_sink_template);
 
   gst_element_class_set_static_metadata (element_class,
       "OpenJPEG JPEG2000 encoder",
diff --git a/ext/openni2/gstopenni2src.cpp b/ext/openni2/gstopenni2src.cpp
index f12e0b7..88e6a16 100644
--- a/ext/openni2/gstopenni2src.cpp
+++ b/ext/openni2/gstopenni2src.cpp
@@ -153,8 +153,7 @@
   basesrc_class->decide_allocation =
       GST_DEBUG_FUNCPTR (gst_openni2src_decide_allocation);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&srctemplate));
+  gst_element_class_add_static_pad_template (element_class, &srctemplate);
 
   gst_element_class_set_static_metadata (element_class, "Openni2 client source",
       "Source/Video",
diff --git a/ext/opus/gstopusparse.c b/ext/opus/gstopusparse.c
index ea3252e..56e8bb8 100644
--- a/ext/opus/gstopusparse.c
+++ b/ext/opus/gstopusparse.c
@@ -87,13 +87,12 @@
   bpclass->stop = GST_DEBUG_FUNCPTR (gst_opus_parse_stop);
   bpclass->handle_frame = GST_DEBUG_FUNCPTR (gst_opus_parse_handle_frame);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&opus_parse_src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&opus_parse_sink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &opus_parse_src_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &opus_parse_sink_factory);
   gst_element_class_set_static_metadata (element_class, "Opus audio parser",
-      "Codec/Parser/Audio",
-      "parses opus audio streams",
+      "Codec/Parser/Audio", "parses opus audio streams",
       "Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>");
 
   GST_DEBUG_CATEGORY_INIT (opusparse_debug, "opusparse", 0,
diff --git a/ext/qt/gstqtsink.cc b/ext/qt/gstqtsink.cc
index df44a7d..62a5373 100644
--- a/ext/qt/gstqtsink.cc
+++ b/ext/qt/gstqtsink.cc
@@ -126,8 +126,7 @@
           G_MAXINT, 1, 1, 1,
           (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_qt_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &gst_qt_sink_template);
 
   gobject_class->finalize = gst_qt_sink_finalize;
 
diff --git a/ext/resindvd/resindvdbin.c b/ext/resindvd/resindvdbin.c
index 107f9d6..ce2bd1c 100644
--- a/ext/resindvd/resindvdbin.c
+++ b/ext/resindvd/resindvdbin.c
@@ -117,12 +117,12 @@
       g_param_spec_string ("device", "Device", "DVD device location",
           NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&video_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&audio_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&subpicture_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &video_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &audio_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &subpicture_src_template);
 
   element_class->change_state = GST_DEBUG_FUNCPTR (rsn_dvdbin_change_state);
 
diff --git a/ext/resindvd/resindvdsrc.c b/ext/resindvd/resindvdsrc.c
index 505302b..ab89be7 100644
--- a/ext/resindvd/resindvdsrc.c
+++ b/ext/resindvd/resindvdsrc.c
@@ -231,8 +231,7 @@
           "Skip straight to the DVD menu on start", DEFAULT_FASTSTART,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
   gst_element_class_set_static_metadata (gstelement_class, "Resin DVD Src",
       "Source/DVD", "DVD source element", "Jan Schmidt <thaytan@noraisin.net>");
 }
diff --git a/ext/resindvd/rsndec.c b/ext/resindvd/rsndec.c
index 3403d9a..02d3eb6 100644
--- a/ext/resindvd/rsndec.c
+++ b/ext/resindvd/rsndec.c
@@ -405,10 +405,10 @@
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
   RsnDecClass *dec_class = RSN_DEC_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&audio_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&audio_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &audio_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &audio_sink_template);
 
   gst_element_class_set_static_metadata (element_class, "RsnAudioDec",
       "Audio/Decoder",
@@ -455,10 +455,10 @@
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
   RsnDecClass *dec_class = RSN_DEC_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&video_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&video_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &video_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &video_sink_template);
 
   gst_element_class_set_static_metadata (element_class, "RsnVideoDec",
       "Video/Decoder",
diff --git a/ext/resindvd/rsninputselector.c b/ext/resindvd/rsninputselector.c
index 75d8724..3849baf 100644
--- a/ext/resindvd/rsninputselector.c
+++ b/ext/resindvd/rsninputselector.c
@@ -1236,10 +1236,10 @@
       "Julien Moutte <julien@moutte.net>, "
       "Jan Schmidt <thaytan@mad.scientist.com>, "
       "Wim Taymans <wim.taymans@gmail.com>");
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_input_selector_sink_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_input_selector_src_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_input_selector_sink_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_input_selector_src_factory);
 
   gstelement_class->request_new_pad = gst_input_selector_request_new_pad;
   gstelement_class->release_pad = gst_input_selector_release_pad;
diff --git a/ext/resindvd/rsnparsetter.c b/ext/resindvd/rsnparsetter.c
index a714658..294e513 100644
--- a/ext/resindvd/rsnparsetter.c
+++ b/ext/resindvd/rsnparsetter.c
@@ -55,10 +55,8 @@
 
   gobject_class->finalize = rsn_parsetter_finalize;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 
   gst_element_class_set_static_metadata (element_class,
       "Resin Aspect Ratio Setter", "Filter/Video",
diff --git a/ext/rsvg/gstrsvgdec.c b/ext/rsvg/gstrsvgdec.c
index d87c6ca..5d5fc8e 100644
--- a/ext/rsvg/gstrsvgdec.c
+++ b/ext/rsvg/gstrsvgdec.c
@@ -86,10 +86,8 @@
       "Uses librsvg to decode SVG images",
       "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
 
   gobject_class->finalize = gst_rsvg_dec_finalize;
   video_decoder_class->stop = GST_DEBUG_FUNCPTR (gst_rsvg_dec_stop);
diff --git a/ext/rsvg/gstrsvgoverlay.c b/ext/rsvg/gstrsvgoverlay.c
index 69f99ad..b467dc8 100644
--- a/ext/rsvg/gstrsvgoverlay.c
+++ b/ext/rsvg/gstrsvgoverlay.c
@@ -451,12 +451,11 @@
   GstVideoFilterClass *videofilter_class = GST_VIDEO_FILTER_CLASS (klass);
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&video_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&data_sink_template));
+  gst_element_class_add_static_pad_template (element_class, &src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &video_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &data_sink_template);
 
   gst_element_class_set_static_metadata (element_class, "RSVG overlay",
       "Filter/Editor/Video",
diff --git a/ext/rtmp/gstrtmpsink.c b/ext/rtmp/gstrtmpsink.c
index 781f3bf..1815d9c 100644
--- a/ext/rtmp/gstrtmpsink.c
+++ b/ext/rtmp/gstrtmpsink.c
@@ -109,8 +109,7 @@
       "Sink/Network", "Sends FLV content to a server via RTMP",
       "Jan Schmidt <thaytan@noraisin.net>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
 
   gstbasesink_class->start = GST_DEBUG_FUNCPTR (gst_rtmp_sink_start);
   gstbasesink_class->stop = GST_DEBUG_FUNCPTR (gst_rtmp_sink_stop);
diff --git a/ext/rtmp/gstrtmpsrc.c b/ext/rtmp/gstrtmpsrc.c
index 02cbec1..cea765c 100644
--- a/ext/rtmp/gstrtmpsrc.c
+++ b/ext/rtmp/gstrtmpsrc.c
@@ -125,8 +125,7 @@
           "Location of the RTMP url to read",
           DEFAULT_LOCATION, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&srctemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &srctemplate);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTMP Source",
diff --git a/ext/sbc/gstsbcdec.c b/ext/sbc/gstsbcdec.c
index 086fe1f..5019e83 100644
--- a/ext/sbc/gstsbcdec.c
+++ b/ext/sbc/gstsbcdec.c
@@ -165,7 +165,8 @@
   } else if (strcmp (channel_mode, "stereo") == 0) {
     dec->frame_len = 4 + (subbands * 2) / 2 + ((blocks * bitpool) + 7) / 8;
   } else if (strcmp (channel_mode, "joint") == 0) {
-    dec->frame_len = 4 + (subbands * 2) / 2 + ((subbands + blocks * bitpool) + 7) / 8;
+    dec->frame_len =
+        4 + (subbands * 2) / 2 + ((subbands + blocks * bitpool) + 7) / 8;
   } else {
     return FALSE;
   }
@@ -219,11 +220,10 @@
   audio_decoder_class->handle_frame =
       GST_DEBUG_FUNCPTR (gst_sbc_dec_handle_frame);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sbc_dec_sink_factory));
-
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sbc_dec_src_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &sbc_dec_sink_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &sbc_dec_src_factory);
 
   gst_element_class_set_static_metadata (element_class,
       "Bluetooth SBC audio decoder", "Codec/Decoder/Audio",
diff --git a/ext/sbc/gstsbcenc.c b/ext/sbc/gstsbcenc.c
index 02ca1be..71aca07 100644
--- a/ext/sbc/gstsbcenc.c
+++ b/ext/sbc/gstsbcenc.c
@@ -346,11 +346,10 @@
   encoder_class->set_format = GST_DEBUG_FUNCPTR (gst_sbc_enc_set_format);
   encoder_class->handle_frame = GST_DEBUG_FUNCPTR (gst_sbc_enc_handle_frame);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sbc_enc_sink_factory));
-
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sbc_enc_src_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &sbc_enc_sink_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &sbc_enc_src_factory);
 
   gst_element_class_set_static_metadata (element_class,
       "Bluetooth SBC audio encoder", "Codec/Encoder/Audio",
diff --git a/ext/schroedinger/gstschrodec.c b/ext/schroedinger/gstschrodec.c
index 6ac6ae9..359a594 100644
--- a/ext/schroedinger/gstschrodec.c
+++ b/ext/schroedinger/gstschrodec.c
@@ -128,10 +128,10 @@
 
   gobject_class->finalize = gst_schro_dec_finalize;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_schro_dec_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_schro_dec_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_schro_dec_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_schro_dec_sink_template);
 
   gst_element_class_set_static_metadata (element_class, "Dirac Decoder",
       "Codec/Decoder/Video",
diff --git a/ext/schroedinger/gstschroenc.c b/ext/schroedinger/gstschroenc.c
index 6cd761f..22ccc5e 100644
--- a/ext/schroedinger/gstschroenc.c
+++ b/ext/schroedinger/gstschroenc.c
@@ -214,10 +214,10 @@
     }
   }
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_schro_enc_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_schro_enc_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_schro_enc_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_schro_enc_sink_template);
 
   gst_element_class_set_static_metadata (element_class, "Dirac Encoder",
       "Codec/Encoder/Video",
diff --git a/ext/sdl/sdlaudiosink.c b/ext/sdl/sdlaudiosink.c
index 87dd730..ff03782 100644
--- a/ext/sdl/sdlaudiosink.c
+++ b/ext/sdl/sdlaudiosink.c
@@ -151,8 +151,8 @@
       "Output to a sound card via SDLAUDIO",
       "Edgard Lima <edgard.lima@indt.org.br>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sdlaudiosink_sink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &sdlaudiosink_sink_factory);
 }
 
 static void
diff --git a/ext/smoothstreaming/gstmssdemux.c b/ext/smoothstreaming/gstmssdemux.c
index c975e17..27725ca 100644
--- a/ext/smoothstreaming/gstmssdemux.c
+++ b/ext/smoothstreaming/gstmssdemux.c
@@ -150,12 +150,12 @@
   gstelement_class = (GstElementClass *) klass;
   gstadaptivedemux_class = (GstAdaptiveDemuxClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_mss_demux_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_mss_demux_videosrc_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_mss_demux_audiosrc_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_mss_demux_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_mss_demux_videosrc_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_mss_demux_audiosrc_template);
   gst_element_class_set_static_metadata (gstelement_class,
       "Smooth Streaming demuxer", "Codec/Demuxer/Adaptive",
       "Parse and demultiplex a Smooth Streaming manifest into audio and video "
diff --git a/ext/sndfile/gstsfdec.c b/ext/sndfile/gstsfdec.c
index d854dba..24a0e2d 100644
--- a/ext/sndfile/gstsfdec.c
+++ b/ext/sndfile/gstsfdec.c
@@ -157,8 +157,8 @@
       "Read audio streams using libsndfile",
       "Stefan Sauer <ensonic@user.sf.net>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sf_dec_src_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &sf_dec_src_factory);
 
   gst_element_class_add_pad_template (gstelement_class,
       gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS,
diff --git a/ext/sndfile/gstsfsink.c b/ext/sndfile/gstsfsink.c
index 5dc5e3a..78f7098 100644
--- a/ext/sndfile/gstsfsink.c
+++ b/ext/sndfile/gstsfsink.c
@@ -84,8 +84,7 @@
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
   GST_DEBUG_CATEGORY_INIT (gst_sf_debug, "sfsink", 0, "sfsink element");
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sf_sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &sf_sink_factory);
   gst_element_class_set_static_metadata (element_class, "Sndfile sink",
       "Sink/Audio",
       "Write audio streams to disk using libsndfile",
diff --git a/ext/sndfile/gstsfsrc.c b/ext/sndfile/gstsfsrc.c
index 1090e68..9b2dda8 100644
--- a/ext/sndfile/gstsfsrc.c
+++ b/ext/sndfile/gstsfsrc.c
@@ -83,8 +83,7 @@
 {
   GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sf_src_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &sf_src_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "Sndfile source",
       "Source/Audio",
diff --git a/ext/sndio/sndiosink.c b/ext/sndio/sndiosink.c
index 1eab800..c9d0f71 100644
--- a/ext/sndio/sndiosink.c
+++ b/ext/sndio/sndiosink.c
@@ -95,8 +95,8 @@
       "Sink/Audio",
       "Plays audio through sndio", "Jacob Meuser <jakemsr@sdf.lonestar.org>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sndio_sink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &sndio_sink_factory);
 }
 
 static void
diff --git a/ext/sndio/sndiosrc.c b/ext/sndio/sndiosrc.c
index 6800c7d..5721f42 100644
--- a/ext/sndio/sndiosrc.c
+++ b/ext/sndio/sndiosrc.c
@@ -93,8 +93,7 @@
       "Source/Audio",
       "Records audio through sndio", "Jacob Meuser <jakemsr@sdf.lonestar.org>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sndio_src_factory));
+  gst_element_class_add_static_pad_template (element_class, &sndio_src_factory);
 }
 
 static void
diff --git a/ext/soundtouch/gstpitch.cc b/ext/soundtouch/gstpitch.cc
index 2f33adf..b41e665 100644
--- a/ext/soundtouch/gstpitch.cc
+++ b/ext/soundtouch/gstpitch.cc
@@ -163,10 +163,8 @@
 
   element_class->change_state = GST_DEBUG_FUNCPTR (gst_pitch_change_state);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_pitch_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_pitch_sink_template));
+  gst_element_class_add_static_pad_template (element_class, &gst_pitch_src_template);
+  gst_element_class_add_static_pad_template (element_class, &gst_pitch_sink_template);
 
   gst_element_class_set_static_metadata (element_class, "Pitch controller",
       "Filter/Effect/Audio", "Control the pitch of an audio stream",
diff --git a/ext/spandsp/gstdtmfdetect.c b/ext/spandsp/gstdtmfdetect.c
index 41966e4..362edb4 100644
--- a/ext/spandsp/gstdtmfdetect.c
+++ b/ext/spandsp/gstdtmfdetect.c
@@ -124,10 +124,8 @@
 
   gobject_class->finalize = gst_dtmf_detect_finalize;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&srctemplate));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &srctemplate);
+  gst_element_class_add_static_pad_template (gstelement_class, &sinktemplate);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "DTMF detector element", "Filter/Analyzer/Audio",
diff --git a/ext/spandsp/gstspanplc.c b/ext/spandsp/gstspanplc.c
index d3ff53f..06e1090 100644
--- a/ext/spandsp/gstspanplc.c
+++ b/ext/spandsp/gstspanplc.c
@@ -73,10 +73,8 @@
   GObjectClass *gobject_class = (GObjectClass *) klass;
   GstElementClass *gstelement_class = (GstElementClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "SpanDSP PLC",
       "Filter/Effect/Audio",
diff --git a/ext/spandsp/gsttonegeneratesrc.c b/ext/spandsp/gsttonegeneratesrc.c
index 2b0cae7..c806799 100644
--- a/ext/spandsp/gsttonegeneratesrc.c
+++ b/ext/spandsp/gsttonegeneratesrc.c
@@ -142,8 +142,8 @@
           "Whether to repeat specified tone indefinitly", DEFAULT_REPEAT,
           G_PARAM_READWRITE));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_tone_generate_src_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_tone_generate_src_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Telephony Tone  Generator source", "Source/Audio",
diff --git a/ext/spc/gstspc.c b/ext/spc/gstspc.c
index d975185..d0f0393 100644
--- a/ext/spc/gstspc.c
+++ b/ext/spc/gstspc.c
@@ -81,10 +81,8 @@
       "Uses OpenSPC to emulate an SPC processor",
       "Chris Lee <clee@kde.org>, Brian Koropoff <bkoropoff@gmail.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
 
   element_class->change_state = GST_DEBUG_FUNCPTR (gst_spc_dec_change_state);
   gobject_class->dispose = gst_spc_dec_dispose;
diff --git a/ext/srtp/gstsrtpdec.c b/ext/srtp/gstsrtpdec.c
index 7ca9afb..cbf4b0c 100644
--- a/ext/srtp/gstsrtpdec.c
+++ b/ext/srtp/gstsrtpdec.c
@@ -248,14 +248,14 @@
   gobject_class->set_property = gst_srtp_dec_set_property;
   gobject_class->get_property = gst_srtp_dec_get_property;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtp_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtp_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtcp_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtcp_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &rtp_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &rtp_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &rtcp_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &rtcp_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "SRTP decoder",
       "Filter/Network/SRTP",
diff --git a/ext/srtp/gstsrtpenc.c b/ext/srtp/gstsrtpenc.c
index eb00886..4e02967 100644
--- a/ext/srtp/gstsrtpenc.c
+++ b/ext/srtp/gstsrtpenc.c
@@ -278,14 +278,14 @@
   gobject_class = (GObjectClass *) klass;
   gstelement_class = (GstElementClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtp_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtp_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtcp_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtcp_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &rtp_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &rtp_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &rtcp_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &rtcp_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "SRTP encoder",
       "Filter/Network/SRTP",
diff --git a/ext/teletextdec/gstteletextdec.c b/ext/teletextdec/gstteletextdec.c
index 91b73c2..355bd55 100644
--- a/ext/teletextdec/gstteletextdec.c
+++ b/ext/teletextdec/gstteletextdec.c
@@ -231,10 +231,8 @@
       "Sebastian Pölsterl <sebp@k-d-w.org>, "
       "Andoni Morales Alastruey <ylatuya@gmail.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
 }
 
 /* initialize the new element
diff --git a/ext/timidity/gsttimidity.c b/ext/timidity/gsttimidity.c
index 418a5fe..f7af843 100644
--- a/ext/timidity/gsttimidity.c
+++ b/ext/timidity/gsttimidity.c
@@ -95,10 +95,8 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (gclass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
   gst_element_class_set_static_metadata (element_class, "Timidity",
       "Codec/Decoder/Audio",
       "Midi Synthesizer Element", "Wouter Paesen <wouter@blue-gate.be>");
diff --git a/ext/timidity/gstwildmidi.c b/ext/timidity/gstwildmidi.c
index 42b40d4..3e82ca2 100644
--- a/ext/timidity/gstwildmidi.c
+++ b/ext/timidity/gstwildmidi.c
@@ -239,10 +239,8 @@
           "High Quality", DEFAULT_HIGH_QUALITY,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
   gst_element_class_set_static_metadata (gstelement_class, "WildMidi",
       "Codec/Decoder/Audio",
       "Midi Synthesizer Element", "Wouter Paesen <wouter@blue-gate.be>");
diff --git a/ext/voaacenc/gstvoaacenc.c b/ext/voaacenc/gstvoaacenc.c
index 315f373..674c481 100644
--- a/ext/voaacenc/gstvoaacenc.c
+++ b/ext/voaacenc/gstvoaacenc.c
@@ -163,10 +163,8 @@
           0, G_MAXINT, VOAAC_ENC_DEFAULT_BITRATE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   gst_element_class_set_static_metadata (element_class, "AAC audio encoder",
       "Codec/Encoder/Audio", "AAC audio encoder", "Kan Hu <kan.hu@linaro.org>");
diff --git a/ext/voamrwbenc/gstvoamrwbenc.c b/ext/voamrwbenc/gstvoamrwbenc.c
index ae09f06..f744958 100644
--- a/ext/voamrwbenc/gstvoamrwbenc.c
+++ b/ext/voamrwbenc/gstvoamrwbenc.c
@@ -162,10 +162,8 @@
   object_class->set_property = gst_voamrwbenc_set_property;
   object_class->get_property = gst_voamrwbenc_get_property;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   gst_element_class_set_static_metadata (element_class, "AMR-WB audio encoder",
       "Codec/Encoder/Audio",
diff --git a/ext/vulkan/vksink.c b/ext/vulkan/vksink.c
index cb8530d..586d286 100644
--- a/ext/vulkan/vksink.c
+++ b/ext/vulkan/vksink.c
@@ -125,8 +125,8 @@
       "Sink/Video", "A videosink based on OpenGL",
       "Matthew Waters <matthew@centricular.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_vulkan_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_vulkan_sink_template);
 
   gobject_class->finalize = gst_vulkan_sink_finalize;
 
diff --git a/ext/wayland/gstwaylandsink.c b/ext/wayland/gstwaylandsink.c
index f4f34a8..5d59525 100644
--- a/ext/wayland/gstwaylandsink.c
+++ b/ext/wayland/gstwaylandsink.c
@@ -133,8 +133,7 @@
   gobject_class->get_property = gst_wayland_sink_get_property;
   gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_wayland_sink_finalize);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "wayland video sink", "Sink/Video",
diff --git a/ext/webp/gstwebpdec.c b/ext/webp/gstwebpdec.c
index 6877cd4..68215dc 100644
--- a/ext/webp/gstwebpdec.c
+++ b/ext/webp/gstwebpdec.c
@@ -94,13 +94,12 @@
   gobject_class->set_property = gst_webp_dec_set_property;
   gobject_class->get_property = gst_webp_dec_get_property;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_webp_dec_src_pad_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_webp_dec_sink_pad_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_webp_dec_src_pad_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_webp_dec_sink_pad_template);
   gst_element_class_set_static_metadata (element_class, "WebP image decoder",
-      "Codec/Decoder/Image",
-      "Decode images from WebP format",
+      "Codec/Decoder/Image", "Decode images from WebP format",
       "Sreerenj Balachandran <sreerenj.balachandrn@intel.com>");
 
   g_object_class_install_property (gobject_class, PROP_BYPASS_FILTERING,
diff --git a/ext/webp/gstwebpenc.c b/ext/webp/gstwebpenc.c
index 75891ea..4d912a8 100644
--- a/ext/webp/gstwebpenc.c
+++ b/ext/webp/gstwebpenc.c
@@ -123,13 +123,12 @@
 
   gobject_class->set_property = gst_webp_enc_set_property;
   gobject_class->get_property = gst_webp_enc_get_property;
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&webp_enc_sink_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&webp_enc_src_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &webp_enc_sink_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &webp_enc_src_factory);
   gst_element_class_set_static_metadata (element_class, "WEBP image encoder",
-      "Codec/Encoder/Image",
-      "Encode images in WEBP format",
+      "Codec/Encoder/Image", "Encode images in WEBP format",
       "Sreerenj Balachandran <sreerenjb@gnome.org>");
 
   venc_class->start = gst_webp_enc_start;
diff --git a/ext/x265/gstx265enc.c b/ext/x265/gstx265enc.c
index 99fc522..d0e0c08 100644
--- a/ext/x265/gstx265enc.c
+++ b/ext/x265/gstx265enc.c
@@ -403,10 +403,8 @@
       "x265enc", "Codec/Encoder/Video", "H265 Encoder",
       "Thijs Vermeir <thijs.vermeir@barco.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
 }
 
 /* initialize the new element
diff --git a/ext/xvid/gstxviddec.c b/ext/xvid/gstxviddec.c
index 7e20ad5..b49cf2f 100644
--- a/ext/xvid/gstxviddec.c
+++ b/ext/xvid/gstxviddec.c
@@ -100,10 +100,8 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   gst_element_class_set_static_metadata (element_class, "XviD video decoder",
       "Codec/Decoder/Video",
diff --git a/ext/xvid/gstxvidenc.c b/ext/xvid/gstxvidenc.c
index c2ecfb8..edf89b7 100644
--- a/ext/xvid/gstxvidenc.c
+++ b/ext/xvid/gstxvidenc.c
@@ -244,10 +244,8 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
   gst_element_class_set_static_metadata (element_class, "XviD video encoder",
       "Codec/Encoder/Video",
       "XviD encoder based on xvidcore",
diff --git a/ext/zbar/gstzbar.c b/ext/zbar/gstzbar.c
index 62fb106..e84f48c 100644
--- a/ext/zbar/gstzbar.c
+++ b/ext/zbar/gstzbar.c
@@ -192,10 +192,10 @@
       "Detect bar codes in the video streams",
       "Stefan Kost <ensonic@users.sf.net>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_zbar_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_zbar_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_zbar_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_zbar_src_template);
 
   trans_class->start = GST_DEBUG_FUNCPTR (gst_zbar_start);
   trans_class->stop = GST_DEBUG_FUNCPTR (gst_zbar_stop);
diff --git a/gst-libs/gst/gl/gstglfilter.c b/gst-libs/gst/gl/gstglfilter.c
index d25bb72..79deefc 100644
--- a/gst-libs/gst/gl/gstglfilter.c
+++ b/gst-libs/gst/gl/gstglfilter.c
@@ -142,10 +142,10 @@
 
   klass->transform_internal_caps = default_transform_internal_caps;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_gl_filter_src_pad_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_gl_filter_sink_pad_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_gl_filter_src_pad_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_gl_filter_sink_pad_template);
 }
 
 static void
diff --git a/gst-libs/gst/insertbin/gstinsertbin.c b/gst-libs/gst/insertbin/gstinsertbin.c
index 57f030a..f200c28 100644
--- a/gst-libs/gst/insertbin/gstinsertbin.c
+++ b/gst-libs/gst/insertbin/gstinsertbin.c
@@ -132,13 +132,12 @@
 
   g_type_class_add_private (klass, sizeof (GstInsertBinPrivate));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_insert_bin_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_insert_bin_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_insert_bin_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_insert_bin_sink_template);
   gst_element_class_set_static_metadata (gstelement_class, "Insert Bin",
-      "Generic/Bin/Filter",
-      "Auto-links filter style elements insertally",
+      "Generic/Bin/Filter", "Auto-links filter style elements insertally",
       "Olivier Crete <olivier.crete@collabora.com>");
 
   gobject_class->dispose = gst_insert_bin_dispose;
diff --git a/gst/adpcmdec/adpcmdec.c b/gst/adpcmdec/adpcmdec.c
index 83289ba..3cfa820 100644
--- a/gst/adpcmdec/adpcmdec.c
+++ b/gst/adpcmdec/adpcmdec.c
@@ -467,13 +467,12 @@
   GstElementClass *element_class = (GstElementClass *) klass;
   GstAudioDecoderClass *base_class = (GstAudioDecoderClass *) klass;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&adpcmdec_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&adpcmdec_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &adpcmdec_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &adpcmdec_src_template);
   gst_element_class_set_static_metadata (element_class, "ADPCM decoder",
-      "Codec/Decoder/Audio",
-      "Decode MS and IMA ADPCM audio",
+      "Codec/Decoder/Audio", "Decode MS and IMA ADPCM audio",
       "Pioneers of the Inevitable <songbird@songbirdnest.com>");
 
   base_class->start = GST_DEBUG_FUNCPTR (adpcmdec_start);
diff --git a/gst/adpcmenc/adpcmenc.c b/gst/adpcmenc/adpcmenc.c
index def90cf..8391b08 100644
--- a/gst/adpcmenc/adpcmenc.c
+++ b/gst/adpcmenc/adpcmenc.c
@@ -438,13 +438,12 @@
   gobjectclass->set_property = adpcmenc_set_property;
   gobjectclass->get_property = adpcmenc_get_property;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&adpcmenc_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&adpcmenc_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &adpcmenc_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &adpcmenc_src_template);
   gst_element_class_set_static_metadata (element_class, "ADPCM encoder",
-      "Codec/Encoder/Audio",
-      "Encode ADPCM audio",
+      "Codec/Encoder/Audio", "Encode ADPCM audio",
       "Pioneers of the Inevitable <songbird@songbirdnest.com>");
 
   base_class->start = GST_DEBUG_FUNCPTR (adpcmenc_start);
diff --git a/gst/aiff/aiffmux.c b/gst/aiff/aiffmux.c
index 5d5fded..0f6d330 100644
--- a/gst/aiff/aiffmux.c
+++ b/gst/aiff/aiffmux.c
@@ -113,10 +113,8 @@
       "AIFF audio muxer", "Muxer/Audio", "Multiplex raw audio into AIFF",
       "Robert Swain <robert.swain@gmail.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
 
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_aiff_mux_change_state);
diff --git a/gst/aiff/aiffparse.c b/gst/aiff/aiffparse.c
index 5600a7e..27c8313 100644
--- a/gst/aiff/aiffparse.c
+++ b/gst/aiff/aiffparse.c
@@ -120,10 +120,10 @@
 
   object_class->dispose = gst_aiff_parse_dispose;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &sink_template_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &src_template_factory);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "AIFF audio demuxer", "Codec/Demuxer/Audio",
diff --git a/gst/asfmux/gstasfmux.c b/gst/asfmux/gstasfmux.c
index 45617be..3579a55 100644
--- a/gst/asfmux/gstasfmux.c
+++ b/gst/asfmux/gstasfmux.c
@@ -270,12 +270,11 @@
       GST_DEBUG_FUNCPTR (gst_asf_mux_request_new_pad);
   gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_asf_mux_change_state);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&audio_sink_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&video_sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &audio_sink_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &video_sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "ASF muxer",
       "Codec/Muxer",
diff --git a/gst/asfmux/gstasfparse.c b/gst/asfmux/gstasfparse.c
index c288266..6cc75b6 100644
--- a/gst/asfmux/gstasfparse.c
+++ b/gst/asfmux/gstasfparse.c
@@ -400,10 +400,8 @@
   gstbaseparse_class->stop = gst_asf_parse_stop;
   gstbaseparse_class->handle_frame = gst_asf_parse_handle_frame;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "ASF parser",
       "Parser", "Parses ASF", "Thiago Santos <thiagoss@embedded.ufcg.edu.br>");
diff --git a/gst/asfmux/gstrtpasfpay.c b/gst/asfmux/gstrtpasfpay.c
index e5ff0de..9b1e032 100644
--- a/gst/asfmux/gstrtpasfpay.c
+++ b/gst/asfmux/gstrtpasfpay.c
@@ -96,10 +96,10 @@
   gstbasertppayload_class->handle_buffer = gst_rtp_asf_pay_handle_buffer;
   gstbasertppayload_class->set_caps = gst_rtp_asf_pay_set_caps;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_asf_pay_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_asf_pay_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_asf_pay_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_asf_pay_src_template);
   gst_element_class_set_static_metadata (gstelement_class, "RTP ASF payloader",
       "Codec/Payloader/Network",
       "Payload-encodes ASF into RTP packets (MS_RTSP)",
diff --git a/gst/audiobuffer/gstaudioringbuffer.c b/gst/audiobuffer/gstaudioringbuffer.c
index cd31472..9c43402 100644
--- a/gst/audiobuffer/gstaudioringbuffer.c
+++ b/gst/audiobuffer/gstaudioringbuffer.c
@@ -319,10 +319,8 @@
           G_MAXINT64, DEFAULT_SEGMENT_TIME,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&srctemplate));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &srctemplate);
+  gst_element_class_add_static_pad_template (gstelement_class, &sinktemplate);
 
   gst_element_class_set_static_metadata (gstelement_class, "AudioRingbuffer",
       "Generic",
diff --git a/gst/audiofxbad/gstaudiochannelmix.c b/gst/audiofxbad/gstaudiochannelmix.c
index aebe84a..7d92a5b 100644
--- a/gst/audiofxbad/gstaudiochannelmix.c
+++ b/gst/audiofxbad/gstaudiochannelmix.c
@@ -102,10 +102,10 @@
 
   /* Setting up pads and setting metadata should be moved to
      base_class_init if you intend to subclass this class. */
-  gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
-      gst_static_pad_template_get (&gst_audio_channel_mix_src_template));
-  gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
-      gst_static_pad_template_get (&gst_audio_channel_mix_sink_template));
+  gst_element_class_add_static_pad_template (GST_ELEMENT_CLASS (klass),
+      &gst_audio_channel_mix_src_template);
+  gst_element_class_add_static_pad_template (GST_ELEMENT_CLASS (klass),
+      &gst_audio_channel_mix_sink_template);
 
   gst_element_class_set_static_metadata (GST_ELEMENT_CLASS (klass),
       "Simple stereo audio mixer", "Audio/Mixer", "Mixes left/right channels "
diff --git a/gst/audiomixer/gstaudiointerleave.c b/gst/audiomixer/gstaudiointerleave.c
index 39b86e8..e91b645 100644
--- a/gst/audiomixer/gstaudiointerleave.c
+++ b/gst/audiomixer/gstaudiointerleave.c
@@ -566,13 +566,12 @@
   gobject_class->get_property = gst_audio_interleave_get_property;
   gobject_class->finalize = gst_audio_interleave_finalize;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_audio_interleave_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_audio_interleave_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_audio_interleave_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_audio_interleave_sink_template);
   gst_element_class_set_static_metadata (gstelement_class, "AudioInterleave",
-      "Generic/Audio",
-      "Mixes multiple audio streams",
+      "Generic/Audio", "Mixes multiple audio streams",
       "Olivier Crete <olivier.crete@collabora.com>");
 
   gstelement_class->request_new_pad =
diff --git a/gst/audiomixer/gstaudiomixer.c b/gst/audiomixer/gstaudiomixer.c
index b211f7d..de539db 100644
--- a/gst/audiomixer/gstaudiomixer.c
+++ b/gst/audiomixer/gstaudiomixer.c
@@ -485,13 +485,12 @@
           "Setting this property takes a reference to the supplied GstCaps "
           "object", GST_TYPE_CAPS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_audiomixer_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_audiomixer_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_audiomixer_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_audiomixer_sink_template);
   gst_element_class_set_static_metadata (gstelement_class, "AudioMixer",
-      "Generic/Audio",
-      "Mixes multiple audio streams",
+      "Generic/Audio", "Mixes multiple audio streams",
       "Sebastian Dröge <sebastian@centricular.com>");
 
   gstelement_class->request_new_pad =
diff --git a/gst/audiovisualizers/gstspacescope.c b/gst/audiovisualizers/gstspacescope.c
index 6cde066..de1336f 100644
--- a/gst/audiovisualizers/gstspacescope.c
+++ b/gst/audiovisualizers/gstspacescope.c
@@ -131,10 +131,10 @@
       "Visualization",
       "Simple stereo visualizer", "Stefan Kost <ensonic@users.sf.net>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_space_scope_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_space_scope_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_space_scope_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_space_scope_sink_template);
 
   gobject_class->set_property = gst_space_scope_set_property;
   gobject_class->get_property = gst_space_scope_get_property;
diff --git a/gst/audiovisualizers/gstspectrascope.c b/gst/audiovisualizers/gstspectrascope.c
index 297d3ef..ffa41a1 100644
--- a/gst/audiovisualizers/gstspectrascope.c
+++ b/gst/audiovisualizers/gstspectrascope.c
@@ -88,10 +88,10 @@
       "Frequency spectrum scope", "Visualization",
       "Simple frequency spectrum scope", "Stefan Kost <ensonic@users.sf.net>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_spectra_scope_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_spectra_scope_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_spectra_scope_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_spectra_scope_sink_template);
 
   scope_class->setup = GST_DEBUG_FUNCPTR (gst_spectra_scope_setup);
   scope_class->render = GST_DEBUG_FUNCPTR (gst_spectra_scope_render);
diff --git a/gst/audiovisualizers/gstsynaescope.c b/gst/audiovisualizers/gstsynaescope.c
index dfadf09..60814fe 100644
--- a/gst/audiovisualizers/gstsynaescope.c
+++ b/gst/audiovisualizers/gstsynaescope.c
@@ -87,10 +87,10 @@
       "Creates video visualizations of audio input, using stereo and pitch information",
       "Stefan Kost <ensonic@users.sf.net>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_synae_scope_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_synae_scope_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_synae_scope_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_synae_scope_sink_template);
 
   scope_class->setup = GST_DEBUG_FUNCPTR (gst_synae_scope_setup);
   scope_class->render = GST_DEBUG_FUNCPTR (gst_synae_scope_render);
diff --git a/gst/audiovisualizers/gstwavescope.c b/gst/audiovisualizers/gstwavescope.c
index ad125b0..c3b9246 100644
--- a/gst/audiovisualizers/gstwavescope.c
+++ b/gst/audiovisualizers/gstwavescope.c
@@ -146,10 +146,10 @@
       "Waveform oscilloscope", "Visualization", "Simple waveform oscilloscope",
       "Stefan Kost <ensonic@users.sf.net>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_wave_scope_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_wave_scope_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_wave_scope_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_wave_scope_sink_template);
 }
 
 static void
diff --git a/gst/autoconvert/gstautoconvert.c b/gst/autoconvert/gstautoconvert.c
index b5a1035..77e095a 100644
--- a/gst/autoconvert/gstautoconvert.c
+++ b/gst/autoconvert/gstautoconvert.c
@@ -159,10 +159,8 @@
   parent_quark = g_quark_from_static_string ("parent");
 
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&srctemplate));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &srctemplate);
+  gst_element_class_add_static_pad_template (gstelement_class, &sinktemplate);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Select convertor based on caps", "Generic/Bin",
diff --git a/gst/autoconvert/gstautovideoconvert.c b/gst/autoconvert/gstautovideoconvert.c
index 11fc974..7e0ea9e 100644
--- a/gst/autoconvert/gstautovideoconvert.c
+++ b/gst/autoconvert/gstautovideoconvert.c
@@ -140,10 +140,8 @@
   GST_DEBUG_CATEGORY_INIT (autovideoconvert_debug, "autovideoconvert", 0,
       "Auto color space converter");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&srctemplate));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &srctemplate);
+  gst_element_class_add_static_pad_template (gstelement_class, &sinktemplate);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Select color space convertor based on caps", "Generic/Bin",
diff --git a/gst/bayer/gstrgb2bayer.c b/gst/bayer/gstrgb2bayer.c
index 495f151..9ef5c89 100644
--- a/gst/bayer/gstrgb2bayer.c
+++ b/gst/bayer/gstrgb2bayer.c
@@ -87,10 +87,10 @@
 
   gobject_class->finalize = gst_rgb2bayer_finalize;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_rgb2bayer_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_rgb2bayer_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_rgb2bayer_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_rgb2bayer_sink_template);
 
   gst_element_class_set_static_metadata (element_class,
       "RGB to Bayer converter",
diff --git a/gst/camerabin2/gstdigitalzoom.c b/gst/camerabin2/gstdigitalzoom.c
index 20c01be..b936fe4 100644
--- a/gst/camerabin2/gstdigitalzoom.c
+++ b/gst/camerabin2/gstdigitalzoom.c
@@ -376,10 +376,8 @@
   GST_DEBUG_CATEGORY_INIT (digital_zoom_debug, "digitalzoom",
       0, "digital zoom");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Digital zoom bin", "Generic/Video",
diff --git a/gst/camerabin2/gstviewfinderbin.c b/gst/camerabin2/gstviewfinderbin.c
index 3ae6c31..7ff7bd5 100644
--- a/gst/camerabin2/gstviewfinderbin.c
+++ b/gst/camerabin2/gstviewfinderbin.c
@@ -122,8 +122,7 @@
           DEFAULT_DISABLE_CONVERTERS,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
 
   gst_element_class_set_static_metadata (element_class, "Viewfinder Bin",
       "Sink/Video", "Viewfinder Bin used in camerabin2",
diff --git a/gst/camerabin2/gstwrappercamerabinsrc.c b/gst/camerabin2/gstwrappercamerabinsrc.c
index 7796107..4c2d8ec 100644
--- a/gst/camerabin2/gstwrappercamerabinsrc.c
+++ b/gst/camerabin2/gstwrappercamerabinsrc.c
@@ -1123,14 +1123,13 @@
   GST_DEBUG_CATEGORY_INIT (wrapper_camera_bin_src_debug, "wrappercamerabinsrc",
       0, "wrapper camera src");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&vfsrc_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &vfsrc_template);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&imgsrc_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &imgsrc_template);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&vidsrc_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &vidsrc_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Wrapper camera src element for camerabin2", "Source/Video",
diff --git a/gst/cdxaparse/gstcdxaparse.c b/gst/cdxaparse/gstcdxaparse.c
index cf0d08f..4334362 100644
--- a/gst/cdxaparse/gstcdxaparse.c
+++ b/gst/cdxaparse/gstcdxaparse.c
@@ -76,10 +76,10 @@
       "Wim Taymans <wim.taymans@tvd.be>");
 
   /* register src pads */
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &sink_template_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &src_template_factory);
 }
 
 static void
diff --git a/gst/cdxaparse/gstvcdparse.c b/gst/cdxaparse/gstvcdparse.c
index 4a3a7e7..424e839 100644
--- a/gst/cdxaparse/gstvcdparse.c
+++ b/gst/cdxaparse/gstvcdparse.c
@@ -55,10 +55,8 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
 
   gst_element_class_set_static_metadata (element_class, "(S)VCD stream parser",
       "Codec/Parser", "Strip (S)VCD stream from its sync headers",
diff --git a/gst/coloreffects/gstchromahold.c b/gst/coloreffects/gstchromahold.c
index 097312a..011c401 100644
--- a/gst/coloreffects/gstchromahold.c
+++ b/gst/coloreffects/gstchromahold.c
@@ -153,10 +153,10 @@
       "Removes all color information except for one color",
       "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_chroma_hold_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_chroma_hold_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_chroma_hold_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_chroma_hold_src_template);
 
   GST_DEBUG_CATEGORY_INIT (gst_chroma_hold_debug, "chromahold", 0,
       "chromahold - Removes all color information except for one color");
diff --git a/gst/coloreffects/gstcoloreffects.c b/gst/coloreffects/gstcoloreffects.c
index a62a45d..5a1aea1 100644
--- a/gst/coloreffects/gstcoloreffects.c
+++ b/gst/coloreffects/gstcoloreffects.c
@@ -590,10 +590,10 @@
       "Color Look-up Table filter",
       "Filippo Argiolas <filippo.argiolas@gmail.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_color_effects_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_color_effects_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_color_effects_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_color_effects_src_template);
 }
 
 static void
diff --git a/gst/compositor/compositor.c b/gst/compositor/compositor.c
index c5b1a9a..1c0b39b 100644
--- a/gst/compositor/compositor.c
+++ b/gst/compositor/compositor.c
@@ -1103,10 +1103,8 @@
           GST_TYPE_COMPOSITOR_BACKGROUND,
           DEFAULT_BACKGROUND, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "Compositor",
       "Filter/Editor/Video/Compositor",
diff --git a/gst/dataurisrc/gstdataurisrc.c b/gst/dataurisrc/gstdataurisrc.c
index fe018b0..84ec894 100644
--- a/gst/dataurisrc/gstdataurisrc.c
+++ b/gst/dataurisrc/gstdataurisrc.c
@@ -99,8 +99,7 @@
           "URI that should be used",
           NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &src_template);
   gst_element_class_set_static_metadata (element_class,
       "data: URI source element", "Source", "Handles data: uris",
       "Philippe Normand <pnormand@igalia.com>, "
diff --git a/gst/dccp/gstdccpclientsink.c b/gst/dccp/gstdccpclientsink.c
index 9e1f999..058db2b 100644
--- a/gst/dccp/gstdccpclientsink.c
+++ b/gst/dccp/gstdccpclientsink.c
@@ -239,8 +239,7 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (element_class, &sinktemplate);
 
   gst_element_class_set_static_metadata (element_class, "DCCP client sink",
       "Sink/Network",
diff --git a/gst/dccp/gstdccpclientsrc.c b/gst/dccp/gstdccpclientsrc.c
index a467a87..21ac8e2 100644
--- a/gst/dccp/gstdccpclientsrc.c
+++ b/gst/dccp/gstdccpclientsrc.c
@@ -272,8 +272,7 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&srctemplate));
+  gst_element_class_add_static_pad_template (element_class, &srctemplate);
 
   gst_element_class_set_static_metadata (element_class, "DCCP client source",
       "Source/Network",
diff --git a/gst/dccp/gstdccpserversink.c b/gst/dccp/gstdccpserversink.c
index 98e0960..7623523 100644
--- a/gst/dccp/gstdccpserversink.c
+++ b/gst/dccp/gstdccpserversink.c
@@ -336,8 +336,7 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (element_class, &sinktemplate);
 
   gst_element_class_set_static_metadata (element_class, "DCCP server sink",
       "Sink/Network",
diff --git a/gst/dccp/gstdccpserversrc.c b/gst/dccp/gstdccpserversrc.c
index d8e231d..357a8d1 100644
--- a/gst/dccp/gstdccpserversrc.c
+++ b/gst/dccp/gstdccpserversrc.c
@@ -262,8 +262,7 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&srctemplate));
+  gst_element_class_add_static_pad_template (element_class, &srctemplate);
 
   gst_element_class_set_static_metadata (element_class, "DCCP server source",
       "Source/Network",
diff --git a/gst/debugutils/fpsdisplaysink.c b/gst/debugutils/fpsdisplaysink.c
index 92b3201..00f89a3 100644
--- a/gst/debugutils/fpsdisplaysink.c
+++ b/gst/debugutils/fpsdisplaysink.c
@@ -205,8 +205,8 @@
 
   gstelement_klass->change_state = fps_display_sink_change_state;
 
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&fps_display_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &fps_display_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_klass,
       "Measure and show framerate on videosink", "Sink/Video",
diff --git a/gst/debugutils/gstchecksumsink.c b/gst/debugutils/gstchecksumsink.c
index dd55d30..5a41035 100644
--- a/gst/debugutils/gstchecksumsink.c
+++ b/gst/debugutils/gstchecksumsink.c
@@ -63,10 +63,10 @@
   base_sink_class->stop = GST_DEBUG_FUNCPTR (gst_checksum_sink_stop);
   base_sink_class->render = GST_DEBUG_FUNCPTR (gst_checksum_sink_render);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_checksum_sink_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_checksum_sink_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_checksum_sink_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_checksum_sink_sink_template);
 
   gst_element_class_set_static_metadata (element_class, "Checksum sink",
       "Debug/Sink", "Calculates a checksum for buffers",
diff --git a/gst/debugutils/gstchopmydata.c b/gst/debugutils/gstchopmydata.c
index ceff7e5..c382d32 100644
--- a/gst/debugutils/gstchopmydata.c
+++ b/gst/debugutils/gstchopmydata.c
@@ -121,10 +121,10 @@
           "Step increment for random buffer sizes", 1, G_MAXINT,
           DEFAULT_MAX_SIZE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_chop_my_data_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_chop_my_data_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_chop_my_data_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_chop_my_data_sink_template);
 
   gst_element_class_set_static_metadata (element_class, "FIXME",
       "Generic", "FIXME", "David Schleef <ds@schleef.org>");
diff --git a/gst/debugutils/gstcompare.c b/gst/debugutils/gstcompare.c
index 3d52615..777a8d8 100644
--- a/gst/debugutils/gstcompare.c
+++ b/gst/debugutils/gstcompare.c
@@ -169,12 +169,10 @@
           "Whether threshold value is upper bound or lower bound for difference measure",
           DEFAULT_UPPER, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&check_sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &check_sink_factory);
   gst_element_class_set_static_metadata (gstelement_class, "Compare buffers",
       "Filter/Debug", "Compares incoming buffers",
       "Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>");
diff --git a/gst/debugutils/gstdebugspy.c b/gst/debugutils/gstdebugspy.c
index 19e7cf2..fed2db1 100644
--- a/gst/debugutils/gstdebugspy.c
+++ b/gst/debugutils/gstdebugspy.c
@@ -139,10 +139,8 @@
       "DebugSpy provides information on buffers with bus messages",
       "Guillaume Emont <gemont@igalia.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 
   GST_DEBUG_CATEGORY_INIT (gst_debug_spy_debug, "debugspy", 0, "debugspy");
 }
diff --git a/gst/debugutils/gsterrorignore.c b/gst/debugutils/gsterrorignore.c
index 3c19ed5..ed42a05 100644
--- a/gst/debugutils/gsterrorignore.c
+++ b/gst/debugutils/gsterrorignore.c
@@ -92,10 +92,8 @@
       "Pass through all packets but ignore some GstFlowReturn types",
       "Vivia Nikolaidou <vivia@toolsonair.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
 
   gstelement_class->change_state = gst_error_ignore_change_state;
 
diff --git a/gst/dvbsuboverlay/gstdvbsuboverlay.c b/gst/dvbsuboverlay/gstdvbsuboverlay.c
index 3658201..0602003 100644
--- a/gst/dvbsuboverlay/gstdvbsuboverlay.c
+++ b/gst/dvbsuboverlay/gstdvbsuboverlay.c
@@ -162,12 +162,11 @@
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_dvbsub_overlay_change_state);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&video_sink_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&text_sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &video_sink_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &text_sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "DVB Subtitles Overlay",
diff --git a/gst/dvdspu/gstdvdspu.c b/gst/dvdspu/gstdvdspu.c
index 04a4387..52d1038 100644
--- a/gst/dvdspu/gstdvdspu.c
+++ b/gst/dvdspu/gstdvdspu.c
@@ -131,12 +131,11 @@
 
   gstelement_class->change_state = gst_dvd_spu_change_state;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&video_sink_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&subpic_sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &video_sink_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &subpic_sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Sub-picture Overlay", "Mixer/Video/Overlay/SubPicture/DVD/Bluray",
diff --git a/gst/faceoverlay/gstfaceoverlay.c b/gst/faceoverlay/gstfaceoverlay.c
index 2a84b54..19006f3 100644
--- a/gst/faceoverlay/gstfaceoverlay.c
+++ b/gst/faceoverlay/gstfaceoverlay.c
@@ -286,10 +286,8 @@
       "Overlays SVG graphics over a detected face in a video stream",
       "Laura Lucas Alday <lauralucas@gmail.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 }
 
 static void
diff --git a/gst/festival/gstfestival.c b/gst/festival/gstfestival.c
index 00ef82d..981ec61 100644
--- a/gst/festival/gstfestival.c
+++ b/gst/festival/gstfestival.c
@@ -163,10 +163,10 @@
       GST_DEBUG_FUNCPTR (gst_festival_change_state);
 
   /* register pads */
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &sink_template_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &src_template_factory);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Festival Text-to-Speech synthesizer", "Filter/Effect/Audio",
diff --git a/gst/fieldanalysis/gstfieldanalysis.c b/gst/fieldanalysis/gstfieldanalysis.c
index 260eaf3..ac6bf60 100644
--- a/gst/fieldanalysis/gstfieldanalysis.c
+++ b/gst/fieldanalysis/gstfieldanalysis.c
@@ -284,10 +284,8 @@
       "Analyse fields from video frames to identify if they are progressive/telecined/interlaced",
       "Robert Swain <robert.swain@collabora.co.uk>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
 
 }
 
diff --git a/gst/freeverb/gstfreeverb.c b/gst/freeverb/gstfreeverb.c
index 9500334..e4263e5 100644
--- a/gst/freeverb/gstfreeverb.c
+++ b/gst/freeverb/gstfreeverb.c
@@ -424,10 +424,8 @@
       "Add reverberation to audio streams",
       "Stefan Sauer <ensonic@users.sf.net>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (element_class, &src_template);
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
 
   GST_BASE_TRANSFORM_CLASS (klass)->get_unit_size =
       GST_DEBUG_FUNCPTR (gst_freeverb_get_unit_size);
diff --git a/gst/gaudieffects/gstburn.c b/gst/gaudieffects/gstburn.c
index a3a3c55..ee44875 100644
--- a/gst/gaudieffects/gstburn.c
+++ b/gst/gaudieffects/gstburn.c
@@ -138,10 +138,10 @@
       "Burn adjusts the colors in the video signal.",
       "Luis de Bethencourt <luis@debethencourt.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_burn_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_burn_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_burn_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_burn_src_template);
 
   gobject_class->set_property = gst_burn_set_property;
   gobject_class->get_property = gst_burn_get_property;
diff --git a/gst/gaudieffects/gstchromium.c b/gst/gaudieffects/gstchromium.c
index 264bb65..65ac5b5 100644
--- a/gst/gaudieffects/gstchromium.c
+++ b/gst/gaudieffects/gstchromium.c
@@ -152,10 +152,10 @@
       "Chromium breaks the colors of the video signal.",
       "Luis de Bethencourt <luis@debethencourt.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_chromium_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_chromium_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_chromium_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_chromium_src_template);
 
   gobject_class->set_property = gst_chromium_set_property;
   gobject_class->get_property = gst_chromium_get_property;
diff --git a/gst/gaudieffects/gstdilate.c b/gst/gaudieffects/gstdilate.c
index 83a3513..301135d 100644
--- a/gst/gaudieffects/gstdilate.c
+++ b/gst/gaudieffects/gstdilate.c
@@ -140,10 +140,10 @@
       "Dilate copies the brightest pixel around.",
       "Luis de Bethencourt <luis@debethencourt.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_dilate_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_dilate_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_dilate_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_dilate_src_template);
 
   gobject_class->set_property = gst_dilate_set_property;
   gobject_class->get_property = gst_dilate_get_property;
diff --git a/gst/gaudieffects/gstdodge.c b/gst/gaudieffects/gstdodge.c
index 996d894..eb5019e 100644
--- a/gst/gaudieffects/gstdodge.c
+++ b/gst/gaudieffects/gstdodge.c
@@ -135,10 +135,10 @@
       "Dodge saturates the colors in the video signal.",
       "Luis de Bethencourt <luis@debethencourt.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_dodge_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_dodge_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_dodge_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_dodge_src_template);
 
   gobject_class->set_property = gst_dodge_set_property;
   gobject_class->get_property = gst_dodge_get_property;
diff --git a/gst/gaudieffects/gstexclusion.c b/gst/gaudieffects/gstexclusion.c
index a723f69..6ebe825 100644
--- a/gst/gaudieffects/gstexclusion.c
+++ b/gst/gaudieffects/gstexclusion.c
@@ -140,10 +140,10 @@
       "Exclusion exclodes the colors in the video signal.",
       "Luis de Bethencourt <luis@debethencourt.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_exclusion_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_exclusion_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_exclusion_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_exclusion_src_template);
 
   gobject_class->set_property = gst_exclusion_set_property;
   gobject_class->get_property = gst_exclusion_get_property;
diff --git a/gst/gaudieffects/gstgaussblur.c b/gst/gaudieffects/gstgaussblur.c
index 6ba9b84..4e3dc59 100644
--- a/gst/gaudieffects/gstgaussblur.c
+++ b/gst/gaudieffects/gstgaussblur.c
@@ -137,10 +137,10 @@
       "Perform Gaussian blur/sharpen on a video",
       "Jan Schmidt <thaytan@noraisin.net>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_gaussianblur_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_gaussianblur_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_gaussianblur_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_gaussianblur_src_template);
 
   gobject_class->set_property = gst_gaussianblur_set_property;
   gobject_class->get_property = gst_gaussianblur_get_property;
diff --git a/gst/gaudieffects/gstsolarize.c b/gst/gaudieffects/gstsolarize.c
index f5d98b8..0710d0f 100644
--- a/gst/gaudieffects/gstsolarize.c
+++ b/gst/gaudieffects/gstsolarize.c
@@ -143,10 +143,10 @@
       "Solarize tunable inverse in the video signal.",
       "Luis de Bethencourt <luis@debethencourt.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_solarize_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_solarize_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_solarize_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_solarize_src_template);
 
   gobject_class->set_property = gst_solarize_set_property;
   gobject_class->get_property = gst_solarize_get_property;
diff --git a/gst/gdp/gstgdpdepay.c b/gst/gdp/gstgdpdepay.c
index b779a85..78524f0 100644
--- a/gst/gdp/gstgdpdepay.c
+++ b/gst/gdp/gstgdpdepay.c
@@ -110,10 +110,10 @@
       "Depayloads GStreamer Data Protocol buffers",
       "Thomas Vander Stichele <thomas at apestaart dot org>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gdp_depay_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gdp_depay_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gdp_depay_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gdp_depay_src_template);
 
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_gdp_depay_change_state);
diff --git a/gst/gdp/gstgdppay.c b/gst/gdp/gstgdppay.c
index b428462..6b55895 100644
--- a/gst/gdp/gstgdppay.c
+++ b/gst/gdp/gstgdppay.c
@@ -117,10 +117,10 @@
       "Payloads GStreamer Data Protocol buffers",
       "Thomas Vander Stichele <thomas at apestaart dot org>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gdp_pay_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gdp_pay_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gdp_pay_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gdp_pay_src_template);
 
   gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_gdp_pay_change_state);
 }
diff --git a/gst/geometrictransform/gstgeometrictransform.c b/gst/geometrictransform/gstgeometrictransform.c
index 94910ed..a6c00a8 100644
--- a/gst/geometrictransform/gstgeometrictransform.c
+++ b/gst/geometrictransform/gstgeometrictransform.c
@@ -352,10 +352,10 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_geometric_transform_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_geometric_transform_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_geometric_transform_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_geometric_transform_src_template);
 }
 
 static void
diff --git a/gst/hdvparse/gsthdvparse.c b/gst/hdvparse/gsthdvparse.c
index 837c74e..b899e95 100644
--- a/gst/hdvparse/gsthdvparse.c
+++ b/gst/hdvparse/gsthdvparse.c
@@ -116,10 +116,8 @@
 
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (element_class, &src_template);
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
   gst_element_class_set_static_metadata (element_class, "HDVParser",
       "Data/Parser",
       "HDV private stream Parser", "Edward Hervey <bilboed@bilboed.com>");
diff --git a/gst/id3tag/gstid3mux.c b/gst/id3tag/gstid3mux.c
index 6417538..37c7a49 100644
--- a/gst/id3tag/gstid3mux.c
+++ b/gst/id3tag/gstid3mux.c
@@ -129,11 +129,8 @@
       "Michael Smith <msmith@songbirdnest.com>, "
       "Tim-Philipp Müller <tim centricular net>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 }
 
 static void
diff --git a/gst/inter/gstinteraudiosink.c b/gst/inter/gstinteraudiosink.c
index 261ed25..19fc5d2 100644
--- a/gst/inter/gstinteraudiosink.c
+++ b/gst/inter/gstinteraudiosink.c
@@ -99,8 +99,8 @@
 
   GST_DEBUG_CATEGORY_INIT (gst_inter_audio_sink_debug_category,
       "interaudiosink", 0, "debug category for interaudiosink element");
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_inter_audio_sink_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_inter_audio_sink_sink_template);
 
   gst_element_class_set_static_metadata (element_class,
       "Internal audio sink",
diff --git a/gst/inter/gstinteraudiosrc.c b/gst/inter/gstinteraudiosrc.c
index 1d4b68b..10581ba 100644
--- a/gst/inter/gstinteraudiosrc.c
+++ b/gst/inter/gstinteraudiosrc.c
@@ -106,8 +106,8 @@
   GST_DEBUG_CATEGORY_INIT (gst_inter_audio_src_debug_category, "interaudiosrc",
       0, "debug category for interaudiosrc element");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_inter_audio_src_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_inter_audio_src_src_template);
 
   gst_element_class_set_static_metadata (element_class,
       "Internal audio source",
diff --git a/gst/inter/gstintersubsink.c b/gst/inter/gstintersubsink.c
index 77bc484..038acbb 100644
--- a/gst/inter/gstintersubsink.c
+++ b/gst/inter/gstintersubsink.c
@@ -91,8 +91,8 @@
   GST_DEBUG_CATEGORY_INIT (gst_inter_sub_sink_debug_category, "intersubsink", 0,
       "debug category for intersubsink element");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_inter_sub_sink_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_inter_sub_sink_sink_template);
 
   gst_element_class_set_static_metadata (element_class,
       "Internal subtitle sink",
diff --git a/gst/inter/gstintersubsrc.c b/gst/inter/gstintersubsrc.c
index 482a20f..ac49265 100644
--- a/gst/inter/gstintersubsrc.c
+++ b/gst/inter/gstintersubsrc.c
@@ -93,8 +93,8 @@
   GST_DEBUG_CATEGORY_INIT (gst_inter_sub_src_debug_category, "intersubsrc", 0,
       "debug category for intersubsrc element");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_inter_sub_src_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_inter_sub_src_src_template);
 
   gst_element_class_set_static_metadata (element_class,
       "Internal subtitle source",
diff --git a/gst/inter/gstintervideosink.c b/gst/inter/gstintervideosink.c
index ca357d6..edee11d 100644
--- a/gst/inter/gstintervideosink.c
+++ b/gst/inter/gstintervideosink.c
@@ -94,8 +94,8 @@
   GST_DEBUG_CATEGORY_INIT (gst_inter_video_sink_debug_category,
       "intervideosink", 0, "debug category for intervideosink element");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_inter_video_sink_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_inter_video_sink_sink_template);
 
   gst_element_class_set_static_metadata (element_class,
       "Internal video sink",
diff --git a/gst/inter/gstintervideosrc.c b/gst/inter/gstintervideosrc.c
index 8cab648..fd41d50 100644
--- a/gst/inter/gstintervideosrc.c
+++ b/gst/inter/gstintervideosrc.c
@@ -100,8 +100,8 @@
   GST_DEBUG_CATEGORY_INIT (gst_inter_video_src_debug_category, "intervideosrc",
       0, "debug category for intervideosrc element");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_inter_video_src_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_inter_video_src_src_template);
 
   gst_element_class_set_static_metadata (element_class,
       "Internal video source",
diff --git a/gst/interlace/gstinterlace.c b/gst/interlace/gstinterlace.c
index ae9f2de..2b60d39 100644
--- a/gst/interlace/gstinterlace.c
+++ b/gst/interlace/gstinterlace.c
@@ -247,10 +247,10 @@
       "Creates an interlaced video from progressive frames",
       "David Schleef <ds@schleef.org>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_interlace_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_interlace_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_interlace_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_interlace_src_template);
 
   element_class->change_state = gst_interlace_change_state;
 }
diff --git a/gst/ivfparse/gstivfparse.c b/gst/ivfparse/gstivfparse.c
index bea1e19..e0e8401 100644
--- a/gst/ivfparse/gstivfparse.c
+++ b/gst/ivfparse/gstivfparse.c
@@ -99,10 +99,8 @@
   gstbaseparse_class->stop = gst_ivf_parse_stop;
   gstbaseparse_class->handle_frame = gst_ivf_parse_handle_frame;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "IVF parser", "Codec/Demuxer",
diff --git a/gst/ivtc/gstcombdetect.c b/gst/ivtc/gstcombdetect.c
index 2356b96..210d39c 100644
--- a/gst/ivtc/gstcombdetect.c
+++ b/gst/ivtc/gstcombdetect.c
@@ -103,10 +103,10 @@
 
   /* Setting up pads and setting metadata should be moved to
      base_class_init if you intend to subclass this class. */
-  gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
-      gst_static_pad_template_get (&gst_comb_detect_sink_template));
-  gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
-      gst_static_pad_template_get (&gst_comb_detect_src_template));
+  gst_element_class_add_static_pad_template (GST_ELEMENT_CLASS (klass),
+      &gst_comb_detect_sink_template);
+  gst_element_class_add_static_pad_template (GST_ELEMENT_CLASS (klass),
+      &gst_comb_detect_src_template);
 
   gst_element_class_set_static_metadata (GST_ELEMENT_CLASS (klass),
       "Comb Detect", "Video/Filter", "Detect combing artifacts in video stream",
diff --git a/gst/ivtc/gstivtc.c b/gst/ivtc/gstivtc.c
index 6dd0c8d..09b02a5 100644
--- a/gst/ivtc/gstivtc.c
+++ b/gst/ivtc/gstivtc.c
@@ -119,10 +119,10 @@
 
   /* Setting up pads and setting metadata should be moved to
      base_class_init if you intend to subclass this class. */
-  gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
-      gst_static_pad_template_get (&gst_ivtc_sink_template));
-  gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
-      gst_static_pad_template_get (&gst_ivtc_src_template));
+  gst_element_class_add_static_pad_template (GST_ELEMENT_CLASS (klass),
+      &gst_ivtc_sink_template);
+  gst_element_class_add_static_pad_template (GST_ELEMENT_CLASS (klass),
+      &gst_ivtc_src_template);
 
   gst_element_class_set_static_metadata (GST_ELEMENT_CLASS (klass),
       "Inverse Telecine", "Video/Filter", "Inverse Telecine Filter",
diff --git a/gst/jp2kdecimator/gstjp2kdecimator.c b/gst/jp2kdecimator/gstjp2kdecimator.c
index cb95cc0..75ee746 100644
--- a/gst/jp2kdecimator/gstjp2kdecimator.c
+++ b/gst/jp2kdecimator/gstjp2kdecimator.c
@@ -92,10 +92,10 @@
       "Removes information from JPEG2000 streams without recompression",
       "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_pad_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_pad_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &sink_pad_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &src_pad_template);
 
   gobject_class->set_property = gst_jp2k_decimator_set_property;
   gobject_class->get_property = gst_jp2k_decimator_get_property;
diff --git a/gst/jpegformat/gstjifmux.c b/gst/jpegformat/gstjifmux.c
index 3a6b6fd..b1ba175 100644
--- a/gst/jpegformat/gstjifmux.c
+++ b/gst/jpegformat/gstjifmux.c
@@ -136,10 +136,10 @@
 
   gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_jif_mux_change_state);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_jif_mux_src_pad_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_jif_mux_sink_pad_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_jif_mux_src_pad_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_jif_mux_sink_pad_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "JPEG stream muxer",
diff --git a/gst/jpegformat/gstjpegparse.c b/gst/jpegformat/gstjpegparse.c
index 77e53a6..c127d6e 100644
--- a/gst/jpegformat/gstjpegparse.c
+++ b/gst/jpegformat/gstjpegparse.c
@@ -144,10 +144,10 @@
   gstbaseparse_class->handle_frame = gst_jpeg_parse_handle_frame;
   gstbaseparse_class->pre_push_frame = gst_jpeg_parse_pre_push_frame;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_jpeg_parse_src_pad_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_jpeg_parse_sink_pad_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_jpeg_parse_src_pad_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_jpeg_parse_sink_pad_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "JPEG stream parser",
diff --git a/gst/librfb/gstrfbsrc.c b/gst/librfb/gstrfbsrc.c
index 7f9e591..c326378 100644
--- a/gst/librfb/gstrfbsrc.c
+++ b/gst/librfb/gstrfbsrc.c
@@ -154,8 +154,8 @@
 
   gstelement_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rfb_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rfb_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "Rfb source",
       "Source/Video",
diff --git a/gst/midi/midiparse.c b/gst/midi/midiparse.c
index 2f817c7..d52539b 100644
--- a/gst/midi/midiparse.c
+++ b/gst/midi/midiparse.c
@@ -133,10 +133,8 @@
   gobject_class->set_property = gst_midi_parse_set_property;
   gobject_class->get_property = gst_midi_parse_get_property;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
   gst_element_class_set_static_metadata (gstelement_class, "MidiParse",
       "Codec/Demuxer/Audio",
       "Midi Parser Element", "Wim Taymans <wim.taymans@gmail.com>");
diff --git a/gst/mixmatrix/mixmatrix.c b/gst/mixmatrix/mixmatrix.c
index fb3d1ac..5f5f2a4 100644
--- a/gst/mixmatrix/mixmatrix.c
+++ b/gst/mixmatrix/mixmatrix.c
@@ -146,13 +146,12 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&mixmatrix_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&mixmatrix_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &mixmatrix_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &mixmatrix_src_template);
   gst_element_class_set_static_metadata (element_class, "Mixing Matrix",
-      "Filter/Editor/Audio",
-      "Mix N audio channels together into M channels",
+      "Filter/Editor/Audio", "Mix N audio channels together into M channels",
       "Erik Walthinsen <omega@temple-baptist.com>");
 }
 
diff --git a/gst/mpegpsmux/mpegpsmux.c b/gst/mpegpsmux/mpegpsmux.c
index 2b96fc1..fdd1c14 100644
--- a/gst/mpegpsmux/mpegpsmux.c
+++ b/gst/mpegpsmux/mpegpsmux.c
@@ -127,10 +127,10 @@
           "Whether to aggregate GOPs and push them out as buffer lists",
           DEFAULT_AGGREGATE_GOPS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&mpegpsmux_sink_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&mpegpsmux_src_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &mpegpsmux_sink_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &mpegpsmux_src_factory);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "MPEG Program Stream Muxer", "Codec/Muxer",
diff --git a/gst/mpegtsdemux/mpegtsbase.c b/gst/mpegtsdemux/mpegtsbase.c
index eb16aac..c258f51 100644
--- a/gst/mpegtsdemux/mpegtsbase.c
+++ b/gst/mpegtsdemux/mpegtsbase.c
@@ -125,8 +125,7 @@
   element_class = GST_ELEMENT_CLASS (klass);
   element_class->change_state = mpegts_base_change_state;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
 
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->dispose = mpegts_base_dispose;
diff --git a/gst/mpegtsdemux/mpegtsparse.c b/gst/mpegtsdemux/mpegtsparse.c
index 6ab2e7d..7bf8fc4 100644
--- a/gst/mpegtsdemux/mpegtsparse.c
+++ b/gst/mpegtsdemux/mpegtsparse.c
@@ -165,10 +165,8 @@
   element_class->request_new_pad = mpegts_parse_request_new_pad;
   element_class->release_pad = mpegts_parse_release_pad;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&program_template));
+  gst_element_class_add_static_pad_template (element_class, &src_template);
+  gst_element_class_add_static_pad_template (element_class, &program_template);
 
   gst_element_class_set_static_metadata (element_class,
       "MPEG transport stream parser", "Codec/Parser",
diff --git a/gst/mpegtsmux/mpegtsmux.c b/gst/mpegtsmux/mpegtsmux.c
index cd07338..649b7b6 100644
--- a/gst/mpegtsmux/mpegtsmux.c
+++ b/gst/mpegtsmux/mpegtsmux.c
@@ -239,10 +239,10 @@
   GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&mpegtsmux_sink_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&mpegtsmux_src_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &mpegtsmux_sink_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &mpegtsmux_src_factory);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "MPEG Transport Stream Muxer", "Codec/Muxer",
diff --git a/gst/mve/gstmvemux.c b/gst/mve/gstmvemux.c
index a7a32cb..b123d2d 100644
--- a/gst/mve/gstmvemux.c
+++ b/gst/mve/gstmvemux.c
@@ -1350,12 +1350,11 @@
 
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&audio_sink_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&video_sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &audio_sink_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &video_sink_factory);
 
   gst_element_class_set_static_metadata (element_class, "MVE Multiplexer",
       "Codec/Muxer",
diff --git a/gst/mxf/mxfdemux.c b/gst/mxf/mxfdemux.c
index 0eaad0f..ca09cc7 100644
--- a/gst/mxf/mxfdemux.c
+++ b/gst/mxf/mxfdemux.c
@@ -4461,13 +4461,13 @@
       GST_DEBUG_FUNCPTR (gst_mxf_demux_change_state);
   gstelement_class->query = GST_DEBUG_FUNCPTR (gst_mxf_demux_query);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&mxf_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&mxf_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &mxf_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &mxf_src_template);
   gst_element_class_set_static_metadata (gstelement_class, "MXF Demuxer",
-      "Codec/Demuxer",
-      "Demux MXF files", "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
+      "Codec/Demuxer", "Demux MXF files",
+      "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
 }
 
 static void
diff --git a/gst/mxf/mxfmux.c b/gst/mxf/mxfmux.c
index d363e7a..c614f62 100644
--- a/gst/mxf/mxfmux.c
+++ b/gst/mxf/mxfmux.c
@@ -171,8 +171,7 @@
   gstaggregator_class->aggregate = GST_DEBUG_FUNCPTR (gst_mxf_mux_aggregate);
   gstaggregator_class->sinkpads_type = GST_TYPE_MXF_MUX_PAD;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_templ));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_templ);
 
   p = mxf_essence_element_writer_get_pad_templates ();
   while (p && *p) {
diff --git a/gst/netsim/gstnetsim.c b/gst/netsim/gstnetsim.c
index 2e15ac3..833e746 100644
--- a/gst/netsim/gstnetsim.c
+++ b/gst/netsim/gstnetsim.c
@@ -400,10 +400,10 @@
 
   g_type_class_add_private (klass, sizeof (GstNetSimPrivate));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_net_sim_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_net_sim_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_net_sim_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_net_sim_sink_template);
 
   gst_element_class_set_metadata (gstelement_class,
       "Network Simulator",
diff --git a/gst/nuvdemux/gstnuvdemux.c b/gst/nuvdemux/gstnuvdemux.c
index 765025f..b98d35d 100644
--- a/gst/nuvdemux/gstnuvdemux.c
+++ b/gst/nuvdemux/gstnuvdemux.c
@@ -124,14 +124,11 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&audio_src_template));
-
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&video_src_template));
-
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &audio_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &video_src_template);
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
   gst_element_class_set_static_metadata (element_class, "Nuv demuxer",
       "Codec/Demuxer",
       "Demultiplex a MythTV NuppleVideo .nuv file into audio and video",
diff --git a/gst/onvif/gstrtponvifparse.c b/gst/onvif/gstrtponvifparse.c
index f48ac07..8ff4fa9 100644
--- a/gst/onvif/gstrtponvifparse.c
+++ b/gst/onvif/gstrtponvifparse.c
@@ -57,10 +57,10 @@
   gstelement_class = GST_ELEMENT_CLASS (klass);
 
   /* register pads */
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &sink_template_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &src_template_factory);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "ONVIF NTP timestamps RTP extension", "Effect/RTP",
diff --git a/gst/onvif/gstrtponviftimestamp.c b/gst/onvif/gstrtponviftimestamp.c
index 4abece1..6777f9f 100644
--- a/gst/onvif/gstrtponviftimestamp.c
+++ b/gst/onvif/gstrtponviftimestamp.c
@@ -257,10 +257,10 @@
           DEFAULT_SET_E_BIT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   /* register pads */
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &sink_template_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &src_template_factory);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "ONVIF NTP timestamps RTP extension", "Effect/RTP",
diff --git a/gst/overlay/gstoverlay.c b/gst/overlay/gstoverlay.c
index 566b1f0..20cf47a 100644
--- a/gst/overlay/gstoverlay.c
+++ b/gst/overlay/gstoverlay.c
@@ -110,17 +110,17 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&overlay_sink1_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&overlay_sink2_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&overlay_sink3_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&overlay_src_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &overlay_sink1_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &overlay_sink2_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &overlay_sink3_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &overlay_src_factory);
   gst_element_class_set_static_metadata (element_class, "Video overlay",
-      "Filter/Editor/Video",
-      "Overlay multiple video streams", "David Schleef <ds@schleef.org>");
+      "Filter/Editor/Video", "Overlay multiple video streams",
+      "David Schleef <ds@schleef.org>");
 }
 
 static void
diff --git a/gst/patchdetect/gstpatchdetect.c b/gst/patchdetect/gstpatchdetect.c
index 06a6396..ff21fda 100644
--- a/gst/patchdetect/gstpatchdetect.c
+++ b/gst/patchdetect/gstpatchdetect.c
@@ -109,10 +109,10 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_patchdetect_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_patchdetect_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_patchdetect_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_patchdetect_src_template);
 
   gst_element_class_set_static_metadata (element_class, "Color Patch Detector",
       "Video/Analysis", "Detects color patches from a color calibration chart",
diff --git a/gst/pcapparse/gstirtspparse.c b/gst/pcapparse/gstirtspparse.c
index 88a0096..f6b7ace 100644
--- a/gst/pcapparse/gstirtspparse.c
+++ b/gst/pcapparse/gstirtspparse.c
@@ -105,10 +105,8 @@
   parse_class->stop = GST_DEBUG_FUNCPTR (gst_irtsp_parse_stop);
   parse_class->handle_frame = GST_DEBUG_FUNCPTR (gst_irtsp_parse_handle_frame);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   gst_element_class_set_static_metadata (element_class, "IRTSPParse",
       "Raw/Parser",
diff --git a/gst/pcapparse/gstpcapparse.c b/gst/pcapparse/gstpcapparse.c
index 21e0cab..4ffa8c1 100644
--- a/gst/pcapparse/gstpcapparse.c
+++ b/gst/pcapparse/gstpcapparse.c
@@ -138,10 +138,8 @@
           "Relative timestamp offset (ns) to apply (-1 = use absolute packet time)",
           -1, G_MAXINT64, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   element_class->change_state = gst_pcap_parse_change_state;
 
diff --git a/gst/pnm/gstpnmdec.c b/gst/pnm/gstpnmdec.c
index 93c4140..07102f5 100644
--- a/gst/pnm/gstpnmdec.c
+++ b/gst/pnm/gstpnmdec.c
@@ -76,10 +76,10 @@
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
   GstVideoDecoderClass *vdec_class = (GstVideoDecoderClass *) klass;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_pnmdec_src_pad_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_pnmdec_sink_pad_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_pnmdec_src_pad_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_pnmdec_sink_pad_template);
   gst_element_class_set_static_metadata (element_class, "PNM image decoder",
       "Codec/Decoder/Image",
       "Decodes images in portable pixmap/graymap/bitmap/anymamp (PNM) format",
diff --git a/gst/pnm/gstpnmenc.c b/gst/pnm/gstpnmenc.c
index 32fd6f6..cba456b 100644
--- a/gst/pnm/gstpnmenc.c
+++ b/gst/pnm/gstpnmenc.c
@@ -303,11 +303,8 @@
       g_param_spec_boolean ("ascii", "ASCII Encoding", "The output will be "
           "ASCII encoded", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_pad_template));
-
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_pad_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_pad_template);
+  gst_element_class_add_static_pad_template (element_class, &src_pad_template);
 
   gst_element_class_set_static_metadata (element_class, "PNM image encoder",
       "Codec/Encoder/Image",
diff --git a/gst/rawparse/gstrawparse.c b/gst/rawparse/gstrawparse.c
index a6468d9..bd2ee11 100644
--- a/gst/rawparse/gstrawparse.c
+++ b/gst/rawparse/gstrawparse.c
@@ -106,8 +106,8 @@
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_raw_parse_change_state);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_raw_parse_sink_pad_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_raw_parse_sink_pad_template);
 
   GST_DEBUG_CATEGORY_INIT (gst_raw_parse_debug, "rawparse", 0,
       "rawparse element");
diff --git a/gst/removesilence/gstremovesilence.c b/gst/removesilence/gstremovesilence.c
index 7707817..98456ff 100644
--- a/gst/removesilence/gstremovesilence.c
+++ b/gst/removesilence/gstremovesilence.c
@@ -128,10 +128,8 @@
       "Tiago Katcipis <tiagokatcipis@gmail.com>\n \
        Paulo Pizarro  <paulo.pizarro@gmail.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
 
   GST_BASE_TRANSFORM_CLASS (klass)->transform_ip =
       GST_DEBUG_FUNCPTR (gst_remove_silence_transform_ip);
diff --git a/gst/sdi/gstsdidemux.c b/gst/sdi/gstsdidemux.c
index 9de97a9..70184f4 100644
--- a/gst/sdi/gstsdidemux.c
+++ b/gst/sdi/gstsdidemux.c
@@ -105,10 +105,10 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_sdi_demux_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_sdi_demux_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_sdi_demux_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_sdi_demux_sink_template);
 
   gst_element_class_set_static_metadata (element_class,
       "SDI Demuxer",
diff --git a/gst/sdi/gstsdimux.c b/gst/sdi/gstsdimux.c
index b9f4159..7734bad 100644
--- a/gst/sdi/gstsdimux.c
+++ b/gst/sdi/gstsdimux.c
@@ -108,10 +108,10 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_sdi_mux_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_sdi_mux_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_sdi_mux_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_sdi_mux_sink_template);
 
   gst_element_class_set_static_metadata (element_class, "SDI Muxer",
       "Muxer",
diff --git a/gst/sdp/gstsdpdemux.c b/gst/sdp/gstsdpdemux.c
index ae3bbe4..1f80fcc 100644
--- a/gst/sdp/gstsdpdemux.c
+++ b/gst/sdp/gstsdpdemux.c
@@ -150,10 +150,8 @@
           DEFAULT_REDIRECT,
           G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sinktemplate));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtptemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &sinktemplate);
+  gst_element_class_add_static_pad_template (gstelement_class, &rtptemplate);
 
   gst_element_class_set_static_metadata (gstelement_class, "SDP session setup",
       "Codec/Demuxer/Network/RTP",
diff --git a/gst/segmentclip/gstaudiosegmentclip.c b/gst/segmentclip/gstaudiosegmentclip.c
index 21fcd46..434424a 100644
--- a/gst/segmentclip/gstaudiosegmentclip.c
+++ b/gst/segmentclip/gstaudiosegmentclip.c
@@ -67,10 +67,8 @@
       "Clips audio buffers to the configured segment",
       "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_pad_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_pad_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_pad_template);
+  gst_element_class_add_static_pad_template (element_class, &src_pad_template);
 }
 
 static void
diff --git a/gst/segmentclip/gstvideosegmentclip.c b/gst/segmentclip/gstvideosegmentclip.c
index 0b168e4..34ba58b 100644
--- a/gst/segmentclip/gstvideosegmentclip.c
+++ b/gst/segmentclip/gstvideosegmentclip.c
@@ -61,10 +61,8 @@
       "Clips video buffers to the configured segment",
       "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_pad_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_pad_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_pad_template);
+  gst_element_class_add_static_pad_template (element_class, &src_pad_template);
 
   segment_clip_klass->reset = GST_DEBUG_FUNCPTR (gst_video_segment_clip_reset);
   segment_clip_klass->set_caps =
diff --git a/gst/siren/gstsirendec.c b/gst/siren/gstsirendec.c
index ab0635a..93aadf0 100644
--- a/gst/siren/gstsirendec.c
+++ b/gst/siren/gstsirendec.c
@@ -73,10 +73,8 @@
 
   GST_DEBUG_CATEGORY_INIT (sirendec_debug, "sirendec", 0, "sirendec");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&srctemplate));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (element_class, &srctemplate);
+  gst_element_class_add_static_pad_template (element_class, &sinktemplate);
 
   gst_element_class_set_static_metadata (element_class, "Siren Decoder element",
       "Codec/Decoder/Audio ",
diff --git a/gst/siren/gstsirenenc.c b/gst/siren/gstsirenenc.c
index 69b4d80..0be5cd3 100644
--- a/gst/siren/gstsirenenc.c
+++ b/gst/siren/gstsirenenc.c
@@ -71,10 +71,8 @@
 
   GST_DEBUG_CATEGORY_INIT (sirenenc_debug, "sirenenc", 0, "sirenenc");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&srctemplate));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (element_class, &srctemplate);
+  gst_element_class_add_static_pad_template (element_class, &sinktemplate);
 
   gst_element_class_set_static_metadata (element_class, "Siren Encoder element",
       "Codec/Encoder/Audio ",
diff --git a/gst/smooth/gstsmooth.c b/gst/smooth/gstsmooth.c
index cfdf51a..3bc233a 100644
--- a/gst/smooth/gstsmooth.c
+++ b/gst/smooth/gstsmooth.c
@@ -89,13 +89,12 @@
       g_param_spec_boolean ("luma-only", "luma-only", "only filter luma part",
           TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_smooth_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_smooth_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_smooth_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_smooth_src_template);
   gst_element_class_set_static_metadata (gstelement_class, "Smooth effect",
-      "Filter/Effect/Video",
-      "Apply a smooth filter to an image",
+      "Filter/Effect/Video", "Apply a smooth filter to an image",
       "Wim Taymans <wim.taymans@chello.be>");
 
   vfilter_class->transform_frame =
diff --git a/gst/speed/gstspeed.c b/gst/speed/gstspeed.c
index c0f9198..72a907d 100644
--- a/gst/speed/gstspeed.c
+++ b/gst/speed/gstspeed.c
@@ -399,10 +399,10 @@
       "Andy Wingo <apwingo@eos.ncsu.edu>, "
       "Tim-Philipp Müller <tim@centricular.net>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_speed_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_speed_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_speed_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_speed_sink_template);
 }
 
 static void
diff --git a/gst/subenc/gstsrtenc.c b/gst/subenc/gstsrtenc.c
index 079fc44..c16e6ed 100644
--- a/gst/subenc/gstsrtenc.c
+++ b/gst/subenc/gstsrtenc.c
@@ -246,10 +246,8 @@
           0,
           G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   gst_element_class_set_static_metadata (element_class,
       "Srt encoder", "Codec/Encoder/Subtitle",
diff --git a/gst/subenc/gstwebvttenc.c b/gst/subenc/gstwebvttenc.c
index 67b6305..eefc78d 100644
--- a/gst/subenc/gstwebvttenc.c
+++ b/gst/subenc/gstwebvttenc.c
@@ -266,10 +266,8 @@
           0,
           G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   gst_element_class_set_static_metadata (element_class,
       "WebVTT encoder", "Codec/Encoder/Subtitle",
diff --git a/gst/tta/gstttadec.c b/gst/tta/gstttadec.c
index f4e29a2..1aa9d95 100644
--- a/gst/tta/gstttadec.c
+++ b/gst/tta/gstttadec.c
@@ -171,10 +171,8 @@
 
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
   gst_element_class_set_static_metadata (element_class, "TTA audio decoder",
       "Codec/Decoder/Audio",
       "Decode TTA audio data", "Arwed v. Merkatz <v.merkatz@gmx.net>");
diff --git a/gst/tta/gstttaparse.c b/gst/tta/gstttaparse.c
index 9d3b8b4..5479350 100644
--- a/gst/tta/gstttaparse.c
+++ b/gst/tta/gstttaparse.c
@@ -92,10 +92,8 @@
 
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
   gst_element_class_set_static_metadata (element_class, "TTA file parser",
       "Codec/Demuxer/Audio",
       "Parses TTA files", "Arwed v. Merkatz <v.merkatz@gmx.net>");
diff --git a/gst/vbidec/gstvbidec.c b/gst/vbidec/gstvbidec.c
index 9c8c5f6..36531a9 100644
--- a/gst/vbidec/gstvbidec.c
+++ b/gst/vbidec/gstvbidec.c
@@ -166,10 +166,10 @@
       "Decodes closed captions and XDS data from VBI data",
       "David I. Lehn <dlehn@users.sourceforge.net>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_vbidec_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_vbidec_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_vbidec_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_vbidec_sink_template);
 }
 
 static void
diff --git a/gst/videoframe_audiolevel/gstvideoframe-audiolevel.c b/gst/videoframe_audiolevel/gstvideoframe-audiolevel.c
index ade9966..46fda77 100644
--- a/gst/videoframe_audiolevel/gstvideoframe-audiolevel.c
+++ b/gst/videoframe_audiolevel/gstvideoframe-audiolevel.c
@@ -122,15 +122,15 @@
   gobject_class->finalize = gst_videoframe_audiolevel_finalize;
   gstelement_class->change_state = gst_videoframe_audiolevel_change_state;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&audio_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&audio_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &audio_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &audio_sink_template);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&video_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&video_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &video_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &video_sink_template);
 }
 
 static void
diff --git a/gst/videomeasure/gstvideomeasure_collector.c b/gst/videomeasure/gstvideomeasure_collector.c
index 448adc4..3778bbf 100644
--- a/gst/videomeasure/gstvideomeasure_collector.c
+++ b/gst/videomeasure/gstvideomeasure_collector.c
@@ -320,10 +320,10 @@
       "Collect measurements from a measuring element",
       "Руслан Ижбулатов <lrn _at_ gmail _dot_ com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_measure_collector_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_measure_collector_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_measure_collector_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_measure_collector_src_template);
 }
 
 static void
diff --git a/gst/videomeasure/gstvideomeasure_ssim.c b/gst/videomeasure/gstvideomeasure_ssim.c
index 13ba035..d0a2c9d 100644
--- a/gst/videomeasure/gstvideomeasure_ssim.c
+++ b/gst/videomeasure/gstvideomeasure_ssim.c
@@ -1095,15 +1095,14 @@
           "(only when using Gaussian window).",
           G_MINFLOAT, 10, 1.5, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_ssim_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_ssim_sink_original_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_ssim_sink_modified_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_ssim_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_ssim_sink_original_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_ssim_sink_modified_template);
   gst_element_class_set_static_metadata (gstelement_class, "SSim",
-      "Filter/Analyzer/Video",
-      "Calculate Y-SSIM for n+2 YUV video streams",
+      "Filter/Analyzer/Video", "Calculate Y-SSIM for n+2 YUV video streams",
       "Руслан Ижбулатов <lrn1986 _at_ gmail _dot_ com>");
 
   parent_class = g_type_class_peek_parent (klass);
diff --git a/gst/videoparsers/gstdiracparse.c b/gst/videoparsers/gstdiracparse.c
index 93f00c6..c674cb8 100644
--- a/gst/videoparsers/gstdiracparse.c
+++ b/gst/videoparsers/gstdiracparse.c
@@ -109,10 +109,10 @@
   gobject_class->dispose = gst_dirac_parse_dispose;
   gobject_class->finalize = gst_dirac_parse_finalize;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_dirac_parse_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_dirac_parse_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_dirac_parse_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_dirac_parse_sink_template);
 
   gst_element_class_set_static_metadata (element_class, "Dirac parser",
       "Codec/Parser/Video", "Parses Dirac streams",
diff --git a/gst/videoparsers/gsth263parse.c b/gst/videoparsers/gsth263parse.c
index 370cbb1..0f4d42e 100644
--- a/gst/videoparsers/gsth263parse.c
+++ b/gst/videoparsers/gsth263parse.c
@@ -73,10 +73,8 @@
 
   GST_DEBUG_CATEGORY_INIT (h263_parse_debug, "h263parse", 0, "h263 parser");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&srctemplate));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &srctemplate);
+  gst_element_class_add_static_pad_template (gstelement_class, &sinktemplate);
   gst_element_class_set_static_metadata (gstelement_class, "H.263 parser",
       "Codec/Parser/Video",
       "Parses H.263 streams",
diff --git a/gst/videoparsers/gsth264parse.c b/gst/videoparsers/gsth264parse.c
index 28e8f31..ebcb957 100644
--- a/gst/videoparsers/gsth264parse.c
+++ b/gst/videoparsers/gsth264parse.c
@@ -147,10 +147,8 @@
   parse_class->sink_event = GST_DEBUG_FUNCPTR (gst_h264_parse_event);
   parse_class->src_event = GST_DEBUG_FUNCPTR (gst_h264_parse_src_event);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&srctemplate));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &srctemplate);
+  gst_element_class_add_static_pad_template (gstelement_class, &sinktemplate);
 
   gst_element_class_set_static_metadata (gstelement_class, "H.264 parser",
       "Codec/Parser/Converter/Video",
diff --git a/gst/videoparsers/gsth265parse.c b/gst/videoparsers/gsth265parse.c
index 5a8f291..6029aa4 100644
--- a/gst/videoparsers/gsth265parse.c
+++ b/gst/videoparsers/gsth265parse.c
@@ -124,10 +124,8 @@
   parse_class->sink_event = GST_DEBUG_FUNCPTR (gst_h265_parse_event);
   parse_class->src_event = GST_DEBUG_FUNCPTR (gst_h265_parse_src_event);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&srctemplate));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &srctemplate);
+  gst_element_class_add_static_pad_template (gstelement_class, &sinktemplate);
 
   gst_element_class_set_static_metadata (gstelement_class, "H.265 parser",
       "Codec/Parser/Converter/Video",
diff --git a/gst/videoparsers/gstmpeg4videoparse.c b/gst/videoparsers/gstmpeg4videoparse.c
index a1fd3b2..83f6f94 100644
--- a/gst/videoparsers/gstmpeg4videoparse.c
+++ b/gst/videoparsers/gstmpeg4videoparse.c
@@ -154,10 +154,8 @@
           0, 3600, DEFAULT_CONFIG_INTERVAL,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (element_class, &src_template);
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
 
   gst_element_class_set_static_metadata (element_class,
       "MPEG 4 video elementary stream parser", "Codec/Parser/Video",
diff --git a/gst/videoparsers/gstmpegvideoparse.c b/gst/videoparsers/gstmpegvideoparse.c
index bf71a3e..6896339 100644
--- a/gst/videoparsers/gstmpegvideoparse.c
+++ b/gst/videoparsers/gstmpegvideoparse.c
@@ -146,10 +146,8 @@
           "Split frame when encountering GOP", DEFAULT_PROP_GOP_SPLIT,
           G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (element_class, &src_template);
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
 
   gst_element_class_set_static_metadata (element_class,
       "MPEG video elementary stream parser",
diff --git a/gst/videoparsers/gstpngparse.c b/gst/videoparsers/gstpngparse.c
index e9d0768..6df53bd 100644
--- a/gst/videoparsers/gstpngparse.c
+++ b/gst/videoparsers/gstpngparse.c
@@ -63,10 +63,8 @@
 
   GST_DEBUG_CATEGORY_INIT (png_parse_debug, "pngparse", 0, "png parser");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&srctemplate));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &srctemplate);
+  gst_element_class_add_static_pad_template (gstelement_class, &sinktemplate);
   gst_element_class_set_static_metadata (gstelement_class, "PNG parser",
       "Codec/Parser/Video/Image",
       "Parses PNG files", "Olivier Crete <olivier.crete@collabora.com>");
diff --git a/gst/videoparsers/gstvc1parse.c b/gst/videoparsers/gstvc1parse.c
index e72f4f6..915e0fc 100644
--- a/gst/videoparsers/gstvc1parse.c
+++ b/gst/videoparsers/gstvc1parse.c
@@ -222,10 +222,8 @@
 
   gobject_class->finalize = gst_vc1_parse_finalize;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&srctemplate));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (element_class, &srctemplate);
+  gst_element_class_add_static_pad_template (element_class, &sinktemplate);
 
   gst_element_class_set_static_metadata (element_class, "VC1 parser",
       "Codec/Parser/Converter/Video",
diff --git a/gst/vmnc/vmncdec.c b/gst/vmnc/vmncdec.c
index 34e63c7..c901b4f 100644
--- a/gst/vmnc/vmncdec.c
+++ b/gst/vmnc/vmncdec.c
@@ -90,13 +90,12 @@
   decoder_class->handle_frame = gst_vmnc_dec_handle_frame;
   decoder_class->set_format = gst_vmnc_dec_set_format;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&vmnc_dec_src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&vmnc_dec_sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &vmnc_dec_src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &vmnc_dec_sink_factory);
   gst_element_class_set_static_metadata (gstelement_class, "VMnc video decoder",
-      "Codec/Decoder/Video",
-      "Decode VmWare video to raw (RGB) video",
+      "Codec/Decoder/Video", "Decode VmWare video to raw (RGB) video",
       "Michael Smith <msmith@xiph.org>");
 
   GST_DEBUG_CATEGORY_INIT (vmnc_debug, "vmncdec", 0, "VMnc decoder");
diff --git a/gst/y4m/gsty4mdec.c b/gst/y4m/gsty4mdec.c
index c6b2065..30966b0 100644
--- a/gst/y4m/gsty4mdec.c
+++ b/gst/y4m/gsty4mdec.c
@@ -106,10 +106,10 @@
 
   element_class->change_state = GST_DEBUG_FUNCPTR (gst_y4m_dec_change_state);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_y4m_dec_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_y4m_dec_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_y4m_dec_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_y4m_dec_sink_template);
 
   gst_element_class_set_static_metadata (element_class,
       "YUV4MPEG demuxer/decoder", "Codec/Demuxer",
diff --git a/gst/yadif/gstyadif.c b/gst/yadif/gstyadif.c
index 1dcf2ca..b75894e 100644
--- a/gst/yadif/gstyadif.c
+++ b/gst/yadif/gstyadif.c
@@ -131,10 +131,10 @@
 
   /* Setting up pads and setting metadata should be moved to
      base_class_init if you intend to subclass this class. */
-  gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
-      gst_static_pad_template_get (&gst_yadif_sink_template));
-  gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
-      gst_static_pad_template_get (&gst_yadif_src_template));
+  gst_element_class_add_static_pad_template (GST_ELEMENT_CLASS (klass),
+      &gst_yadif_sink_template);
+  gst_element_class_add_static_pad_template (GST_ELEMENT_CLASS (klass),
+      &gst_yadif_src_template);
 
   gst_element_class_set_static_metadata (GST_ELEMENT_CLASS (klass),
       "YADIF deinterlacer", "Video/Filter",
diff --git a/sys/acmenc/acmenc.c b/sys/acmenc/acmenc.c
index 7a1c1ff..7fed6c7 100644
--- a/sys/acmenc/acmenc.c
+++ b/sys/acmenc/acmenc.c
@@ -485,10 +485,10 @@
       g_param_spec_int ("bitrate", "Bitrate", "Bitrate to encode at (in bps)",
           0, 1000000, DEFAULT_BITRATE, G_PARAM_READWRITE));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&acmenc_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&acmenc_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &acmenc_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &acmenc_src_template);
   params =
       (ACMEncParams *) g_type_get_qdata (G_OBJECT_CLASS_TYPE (klass),
       ACMENC_PARAMS_QDATA);
diff --git a/sys/acmmp3dec/acmmp3dec.c b/sys/acmmp3dec/acmmp3dec.c
index 7537691..4ec3385 100644
--- a/sys/acmmp3dec/acmmp3dec.c
+++ b/sys/acmmp3dec/acmmp3dec.c
@@ -417,13 +417,12 @@
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
   gobjectclass->dispose = acmmp3dec_dispose;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&acmmp3dec_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&acmmp3dec_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &acmmp3dec_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &acmmp3dec_src_template);
   gst_element_class_set_static_metadata (element_class, "ACM MP3 decoder",
-      "Codec/Decoder/Audio",
-      "Decode MP3 using ACM decoder",
+      "Codec/Decoder/Audio", "Decode MP3 using ACM decoder",
       "Pioneers of the Inevitable <songbird@songbirdnest.com");
 }
 
diff --git a/sys/androidmedia/gstahcsrc.c b/sys/androidmedia/gstahcsrc.c
index 5b7d276..7ebcb1b 100644
--- a/sys/androidmedia/gstahcsrc.c
+++ b/sys/androidmedia/gstahcsrc.c
@@ -287,8 +287,8 @@
 
   gstpushsrc_class->create = gst_ahc_src_create;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_ahc_src_pad_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_ahc_src_pad_template);
 
   /**
    * GstAHCSrc:device:
diff --git a/sys/applemedia-nonpublic/celvideosrc.c b/sys/applemedia-nonpublic/celvideosrc.c
index 90c1246..3639711 100644
--- a/sys/applemedia-nonpublic/celvideosrc.c
+++ b/sys/applemedia-nonpublic/celvideosrc.c
@@ -833,8 +833,7 @@
       "Reads frames from an iOS Celestial device",
       "Ole André Vadla Ravnås <oleavr@soundrop.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 }
 
 static void
diff --git a/sys/applemedia-nonpublic/miovideosrc.c b/sys/applemedia-nonpublic/miovideosrc.c
index 041d7eb..0b1313d 100644
--- a/sys/applemedia-nonpublic/miovideosrc.c
+++ b/sys/applemedia-nonpublic/miovideosrc.c
@@ -1133,8 +1133,7 @@
       "Reads frames from a Mac OS X MIO device",
       "Ole André Vadla Ravnås <oleavr@soundrop.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 }
 
 static void
diff --git a/sys/applemedia/atdec.c b/sys/applemedia/atdec.c
index c00f0b7..b14891f 100644
--- a/sys/applemedia/atdec.c
+++ b/sys/applemedia/atdec.c
@@ -93,10 +93,10 @@
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
   GstAudioDecoderClass *audio_decoder_class = GST_AUDIO_DECODER_CLASS (klass);
 
-  gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
-      gst_static_pad_template_get (&gst_atdec_src_template));
-  gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
-      gst_static_pad_template_get (&gst_atdec_sink_template));
+  gst_element_class_add_static_pad_template (GST_ELEMENT_CLASS (klass),
+      &gst_atdec_src_template);
+  gst_element_class_add_static_pad_template (GST_ELEMENT_CLASS (klass),
+      &gst_atdec_sink_template);
 
   gst_element_class_set_static_metadata (GST_ELEMENT_CLASS (klass),
       "AudioToolbox based audio decoder",
diff --git a/sys/applemedia/avfassetsrc.m b/sys/applemedia/avfassetsrc.m
index 40496a4..8731047 100644
--- a/sys/applemedia/avfassetsrc.m
+++ b/sys/applemedia/avfassetsrc.m
@@ -149,10 +149,8 @@
     "Read and decode samples from AVFoundation assets using the AVFAssetReader API",
     "Andoni Morales Alastruey amorales@fluendo.com");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&audio_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&video_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &audio_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &video_factory);
 
   gobject_class->set_property = gst_avf_asset_src_set_property;
   gobject_class->get_property = gst_avf_asset_src_get_property;
diff --git a/sys/applemedia/avfvideosrc.m b/sys/applemedia/avfvideosrc.m
index 529bd85..a0cc57b 100644
--- a/sys/applemedia/avfvideosrc.m
+++ b/sys/applemedia/avfvideosrc.m
@@ -1180,8 +1180,7 @@
       "Reads frames from an iOS AVFoundation device",
       "Ole André Vadla Ravnås <oleavr@soundrop.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
 
   g_object_class_install_property (gobject_class, PROP_DEVICE_INDEX,
       g_param_spec_int ("device-index", "Device Index",
diff --git a/sys/applemedia/avsamplevideosink.m b/sys/applemedia/avsamplevideosink.m
index 610b40a..a41ec3b 100644
--- a/sys/applemedia/avsamplevideosink.m
+++ b/sys/applemedia/avsamplevideosink.m
@@ -106,8 +106,7 @@
       "Sink/Video", "A videosink based on AVSampleBuffer's",
       "Matthew Waters <matthew@centricular.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_av_sample_video_sink_template));
+  gst_element_class_add_static_pad_template (element_class, &gst_av_sample_video_sink_template);
 
   gobject_class->finalize = gst_av_sample_video_sink_finalize;
 
diff --git a/sys/applemedia/iosassetsrc.m b/sys/applemedia/iosassetsrc.m
index 0539340..fd83657 100644
--- a/sys/applemedia/iosassetsrc.m
+++ b/sys/applemedia/iosassetsrc.m
@@ -129,8 +129,7 @@
       "Read from arbitrary point in a iOS asset",
       "Andoni Morales Alastruey <amorales@fluendo.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&srctemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &srctemplate);
 
   gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_ios_asset_src_start);
   gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_ios_asset_src_stop);
diff --git a/sys/applemedia/qtkitvideosrc.m b/sys/applemedia/qtkitvideosrc.m
index e6b427f..4017084 100644
--- a/sys/applemedia/qtkitvideosrc.m
+++ b/sys/applemedia/qtkitvideosrc.m
@@ -518,8 +518,7 @@
       "Reads frames from a Mac OS X QTKit device",
       "Ole André Vadla Ravnås <oleavr@soundrop.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
 
   gobject_class->finalize = gst_qtkit_video_src_finalize;
   gobject_class->get_property = gst_qtkit_video_src_get_property;
diff --git a/sys/applemedia/vtdec.c b/sys/applemedia/vtdec.c
index 82a656c..a0e7b68 100644
--- a/sys/applemedia/vtdec.c
+++ b/sys/applemedia/vtdec.c
@@ -126,8 +126,8 @@
 
   /* Setting up pads and setting metadata should be moved to
      base_class_init if you intend to subclass this class. */
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_vtdec_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_vtdec_sink_template);
   gst_element_class_add_pad_template (element_class,
       gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
           gst_caps_from_string (VIDEO_SRC_CAPS)));
diff --git a/sys/avc/gstavcsrc.cpp b/sys/avc/gstavcsrc.cpp
index 6d926dc..09d3f05 100644
--- a/sys/avc/gstavcsrc.cpp
+++ b/sys/avc/gstavcsrc.cpp
@@ -99,8 +99,7 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_avc_src_src_template));
+  gst_element_class_add_static_pad_template (element_class, &gst_avc_src_src_template);
 
   gst_element_class_set_static_metadata (element_class,
       "AVC Video Services Source", "Video/Source",
diff --git a/sys/bluez/gsta2dpsink.c b/sys/bluez/gsta2dpsink.c
index 424b56c..f252dc0 100644
--- a/sys/bluez/gsta2dpsink.c
+++ b/sys/bluez/gsta2dpsink.c
@@ -366,8 +366,8 @@
   GST_DEBUG_CATEGORY_INIT (gst_a2dp_sink_debug, "a2dpsink", 0,
       "A2DP sink element");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_a2dp_sink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_a2dp_sink_factory);
 }
 
 GstCaps *
diff --git a/sys/bluez/gstavdtpsink.c b/sys/bluez/gstavdtpsink.c
index 0f72a74..e91aed3 100644
--- a/sys/bluez/gstavdtpsink.c
+++ b/sys/bluez/gstavdtpsink.c
@@ -381,8 +381,8 @@
   GST_DEBUG_CATEGORY_INIT (avdtp_sink_debug, "avdtpsink", 0,
       "A2DP headset sink element");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&avdtp_sink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &avdtp_sink_factory);
 
   gst_element_class_set_static_metadata (element_class, "Bluetooth AVDTP sink",
       "Sink/Audio", "Plays audio to an A2DP device",
diff --git a/sys/bluez/gstavdtpsrc.c b/sys/bluez/gstavdtpsrc.c
index fee5505..00c807a 100644
--- a/sys/bluez/gstavdtpsrc.c
+++ b/sys/bluez/gstavdtpsrc.c
@@ -108,8 +108,8 @@
   GST_DEBUG_CATEGORY_INIT (avdtpsrc_debug, "avdtpsrc", 0,
       "Bluetooth AVDTP Source");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_avdtp_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_avdtp_src_template);
 }
 
 static void
diff --git a/sys/d3dvideosink/d3dvideosink.c b/sys/d3dvideosink/d3dvideosink.c
index a06d494..3429531 100644
--- a/sys/d3dvideosink/d3dvideosink.c
+++ b/sys/d3dvideosink/d3dvideosink.c
@@ -156,8 +156,7 @@
       "Display data using a Direct3D video renderer",
       "David Hoyt <dhoyt@hoytsoft.org>, Roland Krikava <info@bluedigits.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
 
   g_rec_mutex_init (&klass->lock);
 }
diff --git a/sys/decklink/gstdecklinkaudiosink.cpp b/sys/decklink/gstdecklinkaudiosink.cpp
index 1db9339..54cb257 100644
--- a/sys/decklink/gstdecklinkaudiosink.cpp
+++ b/sys/decklink/gstdecklinkaudiosink.cpp
@@ -561,8 +561,7 @@
           (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
               G_PARAM_CONSTRUCT)));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
 
   gst_element_class_set_static_metadata (element_class, "Decklink Audio Sink",
       "Audio/Sink", "Decklink Sink", "David Schleef <ds@entropywave.com>, "
diff --git a/sys/decklink/gstdecklinkaudiosrc.cpp b/sys/decklink/gstdecklinkaudiosrc.cpp
index 9a701ee..54fe85b 100644
--- a/sys/decklink/gstdecklinkaudiosrc.cpp
+++ b/sys/decklink/gstdecklinkaudiosrc.cpp
@@ -170,8 +170,7 @@
           G_MAXINT, DEFAULT_BUFFER_SIZE,
           (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
 
   gst_element_class_set_static_metadata (element_class, "Decklink Audio Source",
       "Audio/Src", "Decklink Source", "David Schleef <ds@entropywave.com>, "
diff --git a/sys/directsound/gstdirectsoundsrc.c b/sys/directsound/gstdirectsoundsrc.c
index b88e68e..e23486d 100644
--- a/sys/directsound/gstdirectsoundsrc.c
+++ b/sys/directsound/gstdirectsoundsrc.c
@@ -213,8 +213,8 @@
       "Capture from a soundcard via DirectSound",
       "Joni Valtanen <joni.valtanen@movial.fi>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&directsound_src_src_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &directsound_src_src_factory);
 
   g_object_class_install_property
       (gobject_class, PROP_DEVICE_NAME,
diff --git a/sys/dshowsrcwrapper/gstdshowaudiosrc.cpp b/sys/dshowsrcwrapper/gstdshowaudiosrc.cpp
index c4d33e5..d78f139 100644
--- a/sys/dshowsrcwrapper/gstdshowaudiosrc.cpp
+++ b/sys/dshowsrcwrapper/gstdshowaudiosrc.cpp
@@ -122,8 +122,7 @@
           "Human-readable name of the sound device", NULL,
           static_cast < GParamFlags > (G_PARAM_READWRITE)));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Directshow audio capture source", "Source/Audio",
diff --git a/sys/dshowsrcwrapper/gstdshowvideosrc.cpp b/sys/dshowsrcwrapper/gstdshowvideosrc.cpp
index 7725fcb..e4ade97 100644
--- a/sys/dshowsrcwrapper/gstdshowvideosrc.cpp
+++ b/sys/dshowsrcwrapper/gstdshowvideosrc.cpp
@@ -144,8 +144,7 @@
           "Human-readable name of the sound device", NULL,
           static_cast < GParamFlags > (G_PARAM_READWRITE)));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "DirectShow video capture source", "Source/Video",
diff --git a/sys/dshowvideosink/dshowvideosink.cpp b/sys/dshowvideosink/dshowvideosink.cpp
index c3d4bc3..cc9d332 100644
--- a/sys/dshowvideosink/dshowvideosink.cpp
+++ b/sys/dshowvideosink/dshowvideosink.cpp
@@ -206,8 +206,7 @@
       "Pioneers of the Inevitable <songbird@songbirdnest.com>, " \
       "FLUENDO S.A. <support@fluendo.com>");
 
-  gst_element_class_add_pad_template (e_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (e_class, &sink_template);
 
   e_class->change_state = GST_DEBUG_FUNCPTR (gst_dshowvideosink_change_state);
 
diff --git a/sys/dvb/dvbbasebin.c b/sys/dvb/dvbbasebin.c
index f003355..2970a88 100644
--- a/sys/dvb/dvbbasebin.c
+++ b/sys/dvb/dvbbasebin.c
@@ -335,10 +335,8 @@
   element_class->request_new_pad = dvb_base_bin_request_new_pad;
   element_class->release_pad = dvb_base_bin_release_pad;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&program_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &program_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   gst_element_class_set_static_metadata (element_class, "DVB bin",
       "Source/Bin/Video",
diff --git a/sys/dvb/gstdvbsrc.c b/sys/dvb/gstdvbsrc.c
index b93255f..d277277 100644
--- a/sys/dvb/gstdvbsrc.c
+++ b/sys/dvb/gstdvbsrc.c
@@ -614,8 +614,7 @@
 
   gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_dvbsrc_change_state);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&ts_src_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &ts_src_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "DVB Source",
       "Source/Video",
diff --git a/sys/dxr3/dxr3audiosink.c b/sys/dxr3/dxr3audiosink.c
index 5fb06cd..9638feb 100644
--- a/sys/dxr3/dxr3audiosink.c
+++ b/sys/dxr3/dxr3audiosink.c
@@ -149,10 +149,10 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&dxr3audiosink_pcm_sink_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&dxr3audiosink_ac3_sink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &dxr3audiosink_pcm_sink_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &dxr3audiosink_ac3_sink_factory);
   gst_element_class_set_static_metadata (element_class,
       "dxr3/Hollywood+ mpeg decoder board audio plugin", "Audio/Sink",
       "Feeds audio to Sigma Designs em8300 based boards",
diff --git a/sys/dxr3/dxr3spusink.c b/sys/dxr3/dxr3spusink.c
index 20f18be..fbf1cf5 100644
--- a/sys/dxr3/dxr3spusink.c
+++ b/sys/dxr3/dxr3spusink.c
@@ -126,8 +126,8 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&dxr3spusink_sink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &dxr3spusink_sink_factory);
   gst_element_class_set_static_metadata (element_class,
       "dxr3/Hollywood+ mpeg decoder board subpicture element", "Sink/Video",
       "Feeds subpicture information to Sigma Designs em8300 based boards",
diff --git a/sys/dxr3/dxr3videosink.c b/sys/dxr3/dxr3videosink.c
index 886bf64..486786b 100644
--- a/sys/dxr3/dxr3videosink.c
+++ b/sys/dxr3/dxr3videosink.c
@@ -152,8 +152,8 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&dxr3videosink_sink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &dxr3videosink_sink_factory);
   gst_element_class_set_static_metadata (element_class,
       "dxr3/Hollywood+ mpeg decoder board video element", "Sink/Video",
       "Feeds MPEG2 video to Sigma Designs em8300 based boards",
diff --git a/sys/fbdev/gstfbdevsink.c b/sys/fbdev/gstfbdevsink.c
index b559a7e..3f9ad88 100644
--- a/sys/fbdev/gstfbdevsink.c
+++ b/sys/fbdev/gstfbdevsink.c
@@ -227,7 +227,8 @@
   gst_structure_get_int (structure, "height", &fbdevsink->height);
 
   /* calculate centering and scanlengths for the video */
-  fbdevsink->bytespp = fbdevsink->fixinfo.line_length / fbdevsink->varinfo.xres_virtual;
+  fbdevsink->bytespp =
+      fbdevsink->fixinfo.line_length / fbdevsink->varinfo.xres_virtual;
 
   fbdevsink->cx = ((int) fbdevsink->varinfo.xres - fbdevsink->width) / 2;
   if (fbdevsink->cx < 0)
@@ -432,8 +433,7 @@
       "Sink/Video", "Linux framebuffer videosink",
       "Sean D'Epagnier <sean@depagnier.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
 }
 
 static void
diff --git a/sys/linsys/gstlinsyssdisink.c b/sys/linsys/gstlinsyssdisink.c
index b093bb5..a8edf37 100644
--- a/sys/linsys/gstlinsyssdisink.c
+++ b/sys/linsys/gstlinsyssdisink.c
@@ -99,8 +99,8 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_linsys_sdi_sink_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_linsys_sdi_sink_sink_template);
 
   gst_element_class_set_static_metadata (element_class, "SDI video sink",
       "Sink/Video", "Writes video from SDI transmit device",
diff --git a/sys/linsys/gstlinsyssdisrc.c b/sys/linsys/gstlinsyssdisrc.c
index 94a4e5a..43e2898 100644
--- a/sys/linsys/gstlinsyssdisrc.c
+++ b/sys/linsys/gstlinsyssdisrc.c
@@ -103,8 +103,8 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_linsys_sdi_src_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_linsys_sdi_src_src_template);
 
   gst_element_class_set_static_metadata (element_class, "SDI video source",
       "Source/Video", "Reads video from SDI capture device",
diff --git a/sys/nvenc/gstnvbaseenc.c b/sys/nvenc/gstnvbaseenc.c
index 1bbdfe3..d865e1e 100644
--- a/sys/nvenc/gstnvbaseenc.c
+++ b/sys/nvenc/gstnvbaseenc.c
@@ -144,8 +144,7 @@
   videoenc_class->finish = GST_DEBUG_FUNCPTR (gst_nv_base_enc_finish);
   videoenc_class->sink_query = GST_DEBUG_FUNCPTR (gst_nv_base_enc_sink_query);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 
   g_object_class_install_property (gobject_class, PROP_DEVICE_ID,
       g_param_spec_uint ("cuda-device-id",
diff --git a/sys/nvenc/gstnvh264enc.c b/sys/nvenc/gstnvh264enc.c
index 170e3f7..98274a2 100644
--- a/sys/nvenc/gstnvh264enc.c
+++ b/sys/nvenc/gstnvh264enc.c
@@ -89,8 +89,7 @@
   nvenc_class->set_src_caps = gst_nv_h264_enc_set_src_caps;
   nvenc_class->set_pic_params = gst_nv_h264_enc_set_pic_params;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
 
   gst_element_class_set_static_metadata (element_class,
       "NVENC H.264 Video Encoder",
diff --git a/sys/opensles/openslessink.c b/sys/opensles/openslessink.c
index c2ec806..2493853 100644
--- a/sys/opensles/openslessink.c
+++ b/sys/opensles/openslessink.c
@@ -272,8 +272,7 @@
           GST_TYPE_OPENSLES_STREAM_TYPE, DEFAULT_STREAM_TYPE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "OpenSL ES Sink",
       "Sink/Audio",
diff --git a/sys/opensles/openslessrc.c b/sys/opensles/openslessrc.c
index 6505ab1..f32984a 100644
--- a/sys/opensles/openslessrc.c
+++ b/sys/opensles/openslessrc.c
@@ -131,8 +131,7 @@
           GST_TYPE_OPENSLES_RECORDING_PRESET, DEFAULT_PRESET,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "OpenSL ES Src",
       "Source/Audio",
diff --git a/sys/pvr2d/gstpvrvideosink.c b/sys/pvr2d/gstpvrvideosink.c
index 7c10243..4e32a8c 100644
--- a/sys/pvr2d/gstpvrvideosink.c
+++ b/sys/pvr2d/gstpvrvideosink.c
@@ -1464,8 +1464,8 @@
       "A PVR videosink",
       "Luciana Fujii Pontello <luciana.fujii@collabora.co.uk");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_pvrvideosink_sink_template_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_pvrvideosink_sink_template_factory);
 
   gstelement_class->change_state = gst_pvrvideosink_change_state;
 
diff --git a/sys/qcam/gstqcamsrc.c b/sys/qcam/gstqcamsrc.c
index e4007de..dbe7740 100644
--- a/sys/qcam/gstqcamsrc.c
+++ b/sys/qcam/gstqcamsrc.c
@@ -148,11 +148,11 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_qcamsrc_src_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_qcamsrc_src_factory);
   gst_element_class_set_static_metadata (element_class, "QCam Source",
-      "Source/Video",
-      "Read from a QuickCam device", "Wim Taymans <wim.taymans@chello.be>");
+      "Source/Video", "Read from a QuickCam device",
+      "Wim Taymans <wim.taymans@chello.be>");
 }
 
 static void
diff --git a/sys/shm/gstshmsink.c b/sys/shm/gstshmsink.c
index 13d67bd..a44097b 100644
--- a/sys/shm/gstshmsink.c
+++ b/sys/shm/gstshmsink.c
@@ -419,8 +419,7 @@
       GST_TYPE_SHM_SINK, G_SIGNAL_RUN_LAST, 0, NULL, NULL,
       g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &sinktemplate);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Shared Memory Sink",
diff --git a/sys/shm/gstshmsrc.c b/sys/shm/gstshmsrc.c
index 3caf90b..1b14b42 100644
--- a/sys/shm/gstshmsrc.c
+++ b/sys/shm/gstshmsrc.c
@@ -138,8 +138,7 @@
           "The name of the shared memory area used to get buffers",
           NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&srctemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &srctemplate);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Shared Memory Source",
diff --git a/sys/tinyalsa/tinyalsasink.c b/sys/tinyalsa/tinyalsasink.c
index c29755e..7c7799c 100644
--- a/sys/tinyalsa/tinyalsasink.c
+++ b/sys/tinyalsa/tinyalsasink.c
@@ -473,8 +473,7 @@
       "Sink/Audio", "Plays audio to an ALSA device",
       "Arun Raghavan <arun@centricular.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
 
   g_object_class_install_property (gobject_class,
       PROP_CARD,
diff --git a/sys/uvch264/gstuvch264_mjpgdemux.c b/sys/uvch264/gstuvch264_mjpgdemux.c
index 1f9b1c4..e253a04 100644
--- a/sys/uvch264/gstuvch264_mjpgdemux.c
+++ b/sys/uvch264/gstuvch264_mjpgdemux.c
@@ -190,20 +190,16 @@
   gobject_class->get_property = gst_uvc_h264_mjpg_demux_get_property;
   gobject_class->dispose = gst_uvc_h264_mjpg_demux_dispose;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&mjpgsink_pad_template));
-
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&jpegsrc_pad_template));
-
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&h264src_pad_template));
-
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&yuy2src_pad_template));
-
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&nv12src_pad_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &mjpgsink_pad_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &jpegsrc_pad_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &h264src_pad_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &yuy2src_pad_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &nv12src_pad_template);
 
   gst_element_class_set_static_metadata (element_class,
       "UVC H264 MJPG Demuxer",
diff --git a/sys/uvch264/gstuvch264_src.c b/sys/uvch264/gstuvch264_src.c
index eae7d82..38397c3 100644
--- a/sys/uvch264/gstuvch264_src.c
+++ b/sys/uvch264/gstuvch264_src.c
@@ -281,14 +281,11 @@
       "UVC H264 Encoding camera source",
       "Youness Alaoui <youness.alaoui@collabora.co.uk>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&vidsrc_template));
-
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&imgsrc_template));
-
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&vfsrc_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &vidsrc_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &imgsrc_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &vfsrc_template);
 
   /* Properties */
   g_object_class_install_property (gobject_class, PROP_COLORSPACE_NAME,
diff --git a/sys/vcd/vcdsrc.c b/sys/vcd/vcdsrc.c
index 7372ac5..1bf3cc5 100644
--- a/sys/vcd/vcdsrc.c
+++ b/sys/vcd/vcdsrc.c
@@ -118,8 +118,7 @@
       "Source/File",
       "Asynchronous read from VCD disk", "Erik Walthinsen <omega@cse.ogi.edu>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&srctemplate));
+  gst_element_class_add_static_pad_template (element_class, &srctemplate);
 }
 
 static void
diff --git a/sys/vdpau/gstvdpsink.c b/sys/vdpau/gstvdpsink.c
index d694fe0..69b9b00 100644
--- a/sys/vdpau/gstvdpsink.c
+++ b/sys/vdpau/gstvdpsink.c
@@ -1390,8 +1390,7 @@
       "Sink/Video",
       "VDPAU Sink", "Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
 }
 
 static void
diff --git a/sys/vdpau/h264/gstvdph264dec.c b/sys/vdpau/h264/gstvdph264dec.c
index 3fa2488..ac56428 100644
--- a/sys/vdpau/h264/gstvdph264dec.c
+++ b/sys/vdpau/h264/gstvdph264dec.c
@@ -569,8 +569,7 @@
       "Decode h264 stream with vdpau",
       "Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
 
   video_decoder_class->start = gst_vdp_h264_dec_start;
   video_decoder_class->stop = gst_vdp_h264_dec_stop;
diff --git a/sys/vdpau/mpeg/gstvdpmpegdec.c b/sys/vdpau/mpeg/gstvdpmpegdec.c
index e6f6f95..1bcf9d9 100644
--- a/sys/vdpau/mpeg/gstvdpmpegdec.c
+++ b/sys/vdpau/mpeg/gstvdpmpegdec.c
@@ -525,8 +525,7 @@
       "Decode mpeg stream with vdpau",
       "Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
 
   video_decoder_class->start = gst_vdp_mpeg_dec_start;
   video_decoder_class->stop = gst_vdp_mpeg_dec_stop;
diff --git a/sys/vdpau/mpeg4/gstvdpmpeg4dec.c b/sys/vdpau/mpeg4/gstvdpmpeg4dec.c
index a959ae7..ccbdbc6 100644
--- a/sys/vdpau/mpeg4/gstvdpmpeg4dec.c
+++ b/sys/vdpau/mpeg4/gstvdpmpeg4dec.c
@@ -445,8 +445,7 @@
       "Decode mpeg4 stream with vdpau",
       "Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
 }
 
 /* initialize the vdpaumpeg4decoder's class */
diff --git a/sys/wasapi/gstwasapisink.c b/sys/wasapi/gstwasapisink.c
index 53f5c45..5b35b8e 100644
--- a/sys/wasapi/gstwasapisink.c
+++ b/sys/wasapi/gstwasapisink.c
@@ -77,8 +77,7 @@
   gobject_class->dispose = gst_wasapi_sink_dispose;
   gobject_class->finalize = gst_wasapi_sink_finalize;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
   gst_element_class_set_static_metadata (gstelement_class, "WasapiSrc",
       "Sink/Audio",
       "Stream audio to an audio capture device through WASAPI",
diff --git a/sys/wasapi/gstwasapisrc.c b/sys/wasapi/gstwasapisrc.c
index 402875f..20c3929 100644
--- a/sys/wasapi/gstwasapisrc.c
+++ b/sys/wasapi/gstwasapisrc.c
@@ -50,13 +50,15 @@
 static void gst_wasapi_src_dispose (GObject * object);
 static void gst_wasapi_src_finalize (GObject * object);
 
-static GstCaps * gst_wasapi_src_get_caps (GstBaseSrc * bsrc, GstCaps * filter);
+static GstCaps *gst_wasapi_src_get_caps (GstBaseSrc * bsrc, GstCaps * filter);
 
 static gboolean gst_wasapi_src_open (GstAudioSrc * asrc);
 static gboolean gst_wasapi_src_close (GstAudioSrc * asrc);
-static gboolean gst_wasapi_src_prepare (GstAudioSrc * asrc, GstAudioRingBufferSpec * spec);
+static gboolean gst_wasapi_src_prepare (GstAudioSrc * asrc,
+    GstAudioRingBufferSpec * spec);
 static gboolean gst_wasapi_src_unprepare (GstAudioSrc * asrc);
-static guint gst_wasapi_src_read (GstAudioSrc * asrc, gpointer data, guint length, GstClockTime * timestamp);
+static guint gst_wasapi_src_read (GstAudioSrc * asrc, gpointer data,
+    guint length, GstClockTime * timestamp);
 static guint gst_wasapi_src_delay (GstAudioSrc * asrc);
 static void gst_wasapi_src_reset (GstAudioSrc * asrc);
 
@@ -76,8 +78,7 @@
   gobject_class->dispose = gst_wasapi_src_dispose;
   gobject_class->finalize = gst_wasapi_src_finalize;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
   gst_element_class_set_static_metadata (gstelement_class, "WasapiSrc",
       "Source/Audio",
       "Stream audio from an audio capture device through WASAPI",
@@ -89,8 +90,7 @@
   gstaudiosrc_class->close = GST_DEBUG_FUNCPTR (gst_wasapi_src_close);
   gstaudiosrc_class->read = GST_DEBUG_FUNCPTR (gst_wasapi_src_read);
   gstaudiosrc_class->prepare = GST_DEBUG_FUNCPTR (gst_wasapi_src_prepare);
-  gstaudiosrc_class->unprepare =
-      GST_DEBUG_FUNCPTR (gst_wasapi_src_unprepare);
+  gstaudiosrc_class->unprepare = GST_DEBUG_FUNCPTR (gst_wasapi_src_unprepare);
   gstaudiosrc_class->delay = GST_DEBUG_FUNCPTR (gst_wasapi_src_delay);
   gstaudiosrc_class->reset = GST_DEBUG_FUNCPTR (gst_wasapi_src_reset);
 
@@ -147,9 +147,10 @@
 {
   GstWasapiSrc *self = GST_WASAPI_SRC (asrc);
   gboolean res = FALSE;
-  IAudioClient * client = NULL;
+  IAudioClient *client = NULL;
 
-  if (!gst_wasapi_util_get_default_device_client (GST_ELEMENT (self), TRUE, &client)) {
+  if (!gst_wasapi_util_get_default_device_client (GST_ELEMENT (self), TRUE,
+          &client)) {
     GST_ELEMENT_ERROR (self, RESOURCE, OPEN_READ, (NULL),
         ("Failed to get default device"));
     goto beach;
@@ -197,8 +198,9 @@
   gst_wasapi_util_audio_info_to_waveformatex (&spec->info, &format);
   self->info = spec->info;
 
-  hr = IAudioClient_Initialize (self->client, AUDCLNT_SHAREMODE_SHARED, AUDCLNT_STREAMFLAGS_EVENTCALLBACK,
-      spec->buffer_time / 100, 0, (WAVEFORMATEX *) & format, NULL);
+  hr = IAudioClient_Initialize (self->client, AUDCLNT_SHAREMODE_SHARED,
+      AUDCLNT_STREAMFLAGS_EVENTCALLBACK, spec->buffer_time / 100, 0,
+      (WAVEFORMATEX *) & format, NULL);
   if (hr != S_OK) {
     GST_ELEMENT_ERROR (self, RESOURCE, OPEN_READ, (NULL),
         ("IAudioClient::Initialize () failed: %s",
diff --git a/sys/wininet/gstwininetsrc.c b/sys/wininet/gstwininetsrc.c
index 4cd9bf3..60d2944 100644
--- a/sys/wininet/gstwininetsrc.c
+++ b/sys/wininet/gstwininetsrc.c
@@ -83,8 +83,7 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (gclass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   gst_element_class_set_static_metadata (element_class,
       "Windows Network Source", "Source/Network",
diff --git a/sys/winscreencap/gstdx9screencapsrc.c b/sys/winscreencap/gstdx9screencapsrc.c
index 0f889b2..af1b89f 100644
--- a/sys/winscreencap/gstdx9screencapsrc.c
+++ b/sys/winscreencap/gstdx9screencapsrc.c
@@ -139,8 +139,7 @@
           "Height of screen capture area (0 = maximum)",
           0, G_MAXINT, 0, G_PARAM_READWRITE));
 
-  gst_element_class_add_pad_template (e_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (e_class, &src_template);
 
   gst_element_class_set_static_metadata (e_class,
       "DirectX 9 screen capture source", "Source/Video", "Captures screen",
diff --git a/sys/winscreencap/gstgdiscreencapsrc.c b/sys/winscreencap/gstgdiscreencapsrc.c
index 55bd4b5..65f0bd9 100644
--- a/sys/winscreencap/gstgdiscreencapsrc.c
+++ b/sys/winscreencap/gstgdiscreencapsrc.c
@@ -146,8 +146,7 @@
           "Height of screen capture area (0 = maximum)",
           0, G_MAXINT, 0, G_PARAM_READWRITE));
 
-  gst_element_class_add_pad_template (e_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (e_class, &src_template);
   gst_element_class_set_static_metadata (e_class,
       "GDI screen capture source", "Source/Video", "Captures screen",
       "Haakon Sporsheim <hakon.sporsheim@tandberg.com>");
diff --git a/tests/check/elements/autoconvert.c b/tests/check/elements/autoconvert.c
index 532f6b8..51e4c5e 100644
--- a/tests/check/elements/autoconvert.c
+++ b/tests/check/elements/autoconvert.c
@@ -202,13 +202,9 @@
 test_element1_class_init (TestElement1Class * klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
-  GstPadTemplate *src_template, *sink_template;
 
-  src_template = gst_static_pad_template_get (&src_factory);
-  gst_element_class_add_pad_template (element_class, src_template);
-
-  sink_template = gst_static_pad_template_get (&sink_factory);
-  gst_element_class_add_pad_template (element_class, sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 }
 
 static void
@@ -221,13 +217,10 @@
 test_element2_class_init (TestElement2Class * klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
-  GstPadTemplate *src_template, *sink_template;
 
-  src_template = gst_static_pad_template_get (&src_factory);
-  gst_element_class_add_pad_template (element_class, src_template);
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
 
-  sink_template = gst_static_pad_template_get (&sink_factory);
-  gst_element_class_add_pad_template (element_class, sink_template);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 }
 
 static void
diff --git a/tests/check/elements/camerabin.c b/tests/check/elements/camerabin.c
index 3458cac..f5b30ba 100644
--- a/tests/check/elements/camerabin.c
+++ b/tests/check/elements/camerabin.c
@@ -162,12 +162,11 @@
       "Some test camera src",
       "Thiago Santos <thiago.sousa.santos@collabora.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&vidsrc_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&imgsrc_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&vfsrc_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &vidsrc_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &imgsrc_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &vfsrc_template);
 }
 
 static void
@@ -372,8 +371,7 @@
       "Video/Src",
       "Test camera video src", "Thiago Santos <thiagoss@osg.samsung.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
 
   gobject_class->get_property = gst_test_video_src_get_property;
   gobject_class->set_property = gst_test_video_src_set_property;
diff --git a/tests/check/elements/test_http_src.c b/tests/check/elements/test_http_src.c
index 915bb51..09fc9b1 100644
--- a/tests/check/elements/test_http_src.c
+++ b/tests/check/elements/test_http_src.c
@@ -192,8 +192,8 @@
       "Test HTTP source element for unit tests",
       "Source/Network",
       "Use in unit tests", "Alex Ashley <alex.ashley@youview.com>");
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_dashdemux_test_source_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_dashdemux_test_source_template);
 
   gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_test_http_src_start);
   gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_test_http_src_stop);
diff --git a/tests/check/libs/aggregator.c b/tests/check/libs/aggregator.c
index 16355b9..877c4fb 100644
--- a/tests/check/libs/aggregator.c
+++ b/tests/check/libs/aggregator.c
@@ -152,11 +152,9 @@
       GST_STATIC_PAD_TEMPLATE ("sink_%u", GST_PAD_SINK, GST_PAD_REQUEST,
       GST_STATIC_CAPS_ANY);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &_src_template);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "Aggregator",
       "Testing", "Combine N buffers", "Stefan Sauer <ensonic@users.sf.net>");
diff --git a/tools/element-templates/sinkpad b/tools/element-templates/sinkpad
index 6d3bad1..ec8a980 100644
--- a/tools/element-templates/sinkpad
+++ b/tools/element-templates/sinkpad
@@ -30,8 +30,8 @@
     );
 
 % base-init
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_replace_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_replace_sink_template);
 % instance-init
 
   replace->sinkpad = gst_pad_new_from_static_template (&gst_replace_sink_template
diff --git a/tools/element-templates/sinkpad-audio b/tools/element-templates/sinkpad-audio
index 3af5072..13d52d7 100644
--- a/tools/element-templates/sinkpad-audio
+++ b/tools/element-templates/sinkpad-audio
@@ -13,8 +13,8 @@
     );
 
 % base-init
-  gst_element_class_add_pad_template (GST_ELEMENT_CLASS(klass),
-      gst_static_pad_template_get (&gst_replace_sink_template));
+  gst_element_class_add_static_pad_template (GST_ELEMENT_CLASS(klass),
+      &gst_replace_sink_template);
 % instance-init
 % methods
 % end
diff --git a/tools/element-templates/sinkpad-simple b/tools/element-templates/sinkpad-simple
index 2500e3f..9d7619b 100644
--- a/tools/element-templates/sinkpad-simple
+++ b/tools/element-templates/sinkpad-simple
@@ -11,8 +11,8 @@
     );
 
 % base-init
-  gst_element_class_add_pad_template (GST_ELEMENT_CLASS(klass),
-      gst_static_pad_template_get (&gst_replace_sink_template));
+  gst_element_class_add_static_pad_template (GST_ELEMENT_CLASS(klass),
+      &gst_replace_sink_template);
 % instance-init
 % methods
 % end
diff --git a/tools/element-templates/sinkpad-template b/tools/element-templates/sinkpad-template
index 785365d..b06b346 100644
--- a/tools/element-templates/sinkpad-template
+++ b/tools/element-templates/sinkpad-template
@@ -11,8 +11,8 @@
     );
 
 % base-init
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_replace_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_replace_sink_template);
 % instance-init
 % methods
 % end
diff --git a/tools/element-templates/srcpad b/tools/element-templates/srcpad
index 1afd7e7..82e0eea 100644
--- a/tools/element-templates/srcpad
+++ b/tools/element-templates/srcpad
@@ -28,8 +28,8 @@
     );
 
 % base-init
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_replace_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_replace_src_template);
 % instance-init
 
   replace->srcpad = gst_pad_new_from_static_template (&gst_replace_src_template
diff --git a/tools/element-templates/srcpad-audio b/tools/element-templates/srcpad-audio
index 047c7c7..18698dd 100644
--- a/tools/element-templates/srcpad-audio
+++ b/tools/element-templates/srcpad-audio
@@ -13,8 +13,8 @@
     );
 
 % base-init
-  gst_element_class_add_pad_template (GST_ELEMENT_CLASS(klass),
-      gst_static_pad_template_get (&gst_replace_src_template));
+  gst_element_class_add_static_pad_template (GST_ELEMENT_CLASS(klass),
+      &gst_replace_src_template);
 % instance-init
 % methods
 % end
diff --git a/tools/element-templates/srcpad-simple b/tools/element-templates/srcpad-simple
index 5971809..e705f80 100644
--- a/tools/element-templates/srcpad-simple
+++ b/tools/element-templates/srcpad-simple
@@ -11,8 +11,8 @@
     );
 
 % base-init
-  gst_element_class_add_pad_template (GST_ELEMENT_CLASS(klass),
-      gst_static_pad_template_get (&gst_replace_src_template));
+  gst_element_class_add_static_pad_template (GST_ELEMENT_CLASS(klass),
+      &gst_replace_src_template);
 % instance-init
 % methods
 % end
diff --git a/tools/element-templates/srcpad-template b/tools/element-templates/srcpad-template
index 020f6a2..dd0842b 100644
--- a/tools/element-templates/srcpad-template
+++ b/tools/element-templates/srcpad-template
@@ -11,8 +11,8 @@
     );
 
 % base-init
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_replace_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_replace_src_template);
 % instance-init
 % methods
 % end