Fix memleak with gst_static_pad_template_get().
authorEdward Hervey <bilboed@bilboed.com>
Wed, 15 Mar 2006 16:17:12 +0000 (16:17 +0000)
committerEdward Hervey <bilboed@bilboed.com>
Wed, 15 Mar 2006 16:17:12 +0000 (16:17 +0000)
Original commit message from CVS:
* ext/cairo/gsttextoverlay.c: (gst_text_overlay_init):
* ext/dv/gstdvdemux.c: (gst_dvdemux_init), (gst_dvdemux_add_pads):
* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_init):
* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_init),
(gst_jpeg_dec_setcaps):
* ext/jpeg/gstjpegenc.c: (gst_jpegenc_init):
* ext/jpeg/gstsmokedec.c: (gst_smokedec_init):
* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_init):
* ext/libmng/gstmngdec.c: (gst_mngdec_init),
(gst_mngdec_src_getcaps):
* ext/libpng/gstpngdec.c: (gst_pngdec_init),
(gst_pngdec_caps_create_and_set):
* ext/libpng/gstpngenc.c: (gst_pngenc_init):
* ext/mikmod/gstmikmod.c: (gst_mikmod_init):
* ext/speex/gstspeexdec.c: (gst_speex_dec_init):
* gst/alpha/gstalpha.c: (gst_alpha_init):
* gst/auparse/gstauparse.c: (gst_au_parse_init):
* gst/avi/gstavidemux.c: (gst_avi_demux_init),
(gst_avi_demux_handle_src_event), (gst_avi_demux_parse_stream):
* gst/cutter/gstcutter.c: (gst_cutter_init):
* gst/debug/efence.c: (gst_efence_init), (gst_efence_getrange),
(gst_efence_checkgetrange):
* gst/debug/negotiation.c: (gst_negotiation_init):
* gst/flx/gstflxdec.c: (gst_flxdec_init):
* gst/goom/gstgoom.c: (gst_goom_init):
* gst/rtp/gstasteriskh263.c: (gst_asteriskh263_init):
* gst/rtp/gstrtpL16depay.c: (gst_rtp_L16depay_init):
* gst/rtp/gstrtpL16pay.c: (gst_rtpL16pay_init):
* gst/rtp/gstrtpamrdepay.c: (gst_rtp_amr_depay_init):
* gst/rtp/gstrtpdepay.c: (gst_rtp_depay_init):
* gst/rtp/gstrtpmpadepay.c: (gst_rtp_mpa_depay_init):
* gst/rtsp/gstrtpdec.c: (gst_rtpdec_init):
* gst/smpte/gstsmpte.c: (gst_smpte_init):
* gst/wavparse/gstwavparse.c: (gst_wavparse_init),
(gst_wavparse_create_sourcepad):
Fix memleak with gst_static_pad_template_get().
This uses gst_pad_new_from_static_template() instead.
Fixes #333512

30 files changed:
ChangeLog
ext/cairo/gsttextoverlay.c
ext/dv/gstdvdemux.c
ext/gdk_pixbuf/gstgdkpixbuf.c
ext/jpeg/gstjpegdec.c
ext/jpeg/gstjpegenc.c
ext/jpeg/gstsmokedec.c
ext/jpeg/gstsmokeenc.c
ext/libmng/gstmngdec.c
ext/libpng/gstpngdec.c
ext/libpng/gstpngenc.c
ext/mikmod/gstmikmod.c
ext/speex/gstspeexdec.c
gst/alpha/gstalpha.c
gst/auparse/gstauparse.c
gst/avi/gstavidemux.c
gst/cutter/gstcutter.c
gst/debug/efence.c
gst/debug/negotiation.c
gst/flx/gstflxdec.c
gst/goom/gstgoom.c
gst/rtp/gstasteriskh263.c
gst/rtp/gstrtpL16depay.c
gst/rtp/gstrtpL16pay.c
gst/rtp/gstrtpamrdepay.c
gst/rtp/gstrtpdepay.c
gst/rtp/gstrtpmpadepay.c
gst/rtsp/gstrtpdec.c
gst/smpte/gstsmpte.c
gst/wavparse/gstwavparse.c

index 35116df..926bf34 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,44 @@
+2006-03-15  Edward Hervey  <edward@fluendo.com>
+
+       * ext/cairo/gsttextoverlay.c: (gst_text_overlay_init):
+       * ext/dv/gstdvdemux.c: (gst_dvdemux_init), (gst_dvdemux_add_pads):
+       * ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_init):
+       * ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_init),
+       (gst_jpeg_dec_setcaps):
+       * ext/jpeg/gstjpegenc.c: (gst_jpegenc_init):
+       * ext/jpeg/gstsmokedec.c: (gst_smokedec_init):
+       * ext/jpeg/gstsmokeenc.c: (gst_smokeenc_init):
+       * ext/libmng/gstmngdec.c: (gst_mngdec_init),
+       (gst_mngdec_src_getcaps):
+       * ext/libpng/gstpngdec.c: (gst_pngdec_init),
+       (gst_pngdec_caps_create_and_set):
+       * ext/libpng/gstpngenc.c: (gst_pngenc_init):
+       * ext/mikmod/gstmikmod.c: (gst_mikmod_init):
+       * ext/speex/gstspeexdec.c: (gst_speex_dec_init):
+       * gst/alpha/gstalpha.c: (gst_alpha_init):
+       * gst/auparse/gstauparse.c: (gst_au_parse_init):
+       * gst/avi/gstavidemux.c: (gst_avi_demux_init),
+       (gst_avi_demux_handle_src_event), (gst_avi_demux_parse_stream):
+       * gst/cutter/gstcutter.c: (gst_cutter_init):
+       * gst/debug/efence.c: (gst_efence_init), (gst_efence_getrange),
+       (gst_efence_checkgetrange):
+       * gst/debug/negotiation.c: (gst_negotiation_init):
+       * gst/flx/gstflxdec.c: (gst_flxdec_init):
+       * gst/goom/gstgoom.c: (gst_goom_init):
+       * gst/rtp/gstasteriskh263.c: (gst_asteriskh263_init):
+       * gst/rtp/gstrtpL16depay.c: (gst_rtp_L16depay_init):
+       * gst/rtp/gstrtpL16pay.c: (gst_rtpL16pay_init):
+       * gst/rtp/gstrtpamrdepay.c: (gst_rtp_amr_depay_init):
+       * gst/rtp/gstrtpdepay.c: (gst_rtp_depay_init):
+       * gst/rtp/gstrtpmpadepay.c: (gst_rtp_mpa_depay_init):
+       * gst/rtsp/gstrtpdec.c: (gst_rtpdec_init):
+       * gst/smpte/gstsmpte.c: (gst_smpte_init):
+       * gst/wavparse/gstwavparse.c: (gst_wavparse_init),
+       (gst_wavparse_create_sourcepad):
+       Fix memleak with gst_static_pad_template_get().
+       This uses gst_pad_new_from_static_template() instead.
+       Fixes #333512
+
 2006-03-14  Tim-Philipp Müller  <tim at centricular dot net>
 
        * configure.ac:
index 34137ad..73f539d 100644 (file)
@@ -211,8 +211,8 @@ gst_text_overlay_init (GstCairoTextOverlay * overlay,
 {
   /* video sink */
   overlay->video_sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&video_sink_template_factory), "video_sink");
+      gst_pad_new_from_static_template (&video_sink_template_factory,
+      "video_sink");
   gst_pad_set_getcaps_function (overlay->video_sinkpad,
       GST_DEBUG_FUNCPTR (gst_text_overlay_getcaps));
   gst_pad_set_setcaps_function (overlay->video_sinkpad,
@@ -221,8 +221,8 @@ gst_text_overlay_init (GstCairoTextOverlay * overlay,
 
   /* text sink */
   overlay->text_sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&text_sink_template_factory), "text_sink");
+      gst_pad_new_from_static_template (&text_sink_template_factory,
+      "text_sink");
   gst_pad_set_link_function (overlay->text_sinkpad,
       GST_DEBUG_FUNCPTR (gst_text_overlay_text_pad_linked));
   gst_pad_set_unlink_function (overlay->text_sinkpad,
@@ -231,8 +231,8 @@ gst_text_overlay_init (GstCairoTextOverlay * overlay,
 
   /* (video) source */
   overlay->srcpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&cairo_text_overlay_src_template_factory), "src");
+      gst_pad_new_from_static_template
+      (&cairo_text_overlay_src_template_factory, "src");
   gst_pad_set_getcaps_function (overlay->srcpad,
       GST_DEBUG_FUNCPTR (gst_text_overlay_getcaps));
   gst_element_add_pad (GST_ELEMENT (overlay), overlay->srcpad);
index eb5b98b..221a12c 100644 (file)
@@ -215,9 +215,7 @@ gst_dvdemux_init (GstDVDemux * dvdemux, GstDVDemuxClass * g_class)
 {
   gint i;
 
-  dvdemux->sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get (&sink_temp),
-      "sink");
+  dvdemux->sinkpad = gst_pad_new_from_static_template (&sink_temp, "sink");
   /* we can operate in pull and push mode so we install
    * a custom activate function */
   gst_pad_set_activate_function (dvdemux->sinkpad,
@@ -297,8 +295,7 @@ static void
 gst_dvdemux_add_pads (GstDVDemux * dvdemux)
 {
   dvdemux->videosrcpad =
-      gst_pad_new_from_template (gst_static_pad_template_get (&video_src_temp),
-      "video");
+      gst_pad_new_from_static_template (&video_src_temp, "video");
   gst_pad_set_query_function (dvdemux->videosrcpad,
       GST_DEBUG_FUNCPTR (gst_dvdemux_src_query));
   gst_pad_set_query_type_function (dvdemux->videosrcpad,
@@ -309,8 +306,7 @@ gst_dvdemux_add_pads (GstDVDemux * dvdemux)
   gst_element_add_pad (GST_ELEMENT (dvdemux), dvdemux->videosrcpad);
 
   dvdemux->audiosrcpad =
-      gst_pad_new_from_template (gst_static_pad_template_get (&audio_src_temp),
-      "audio");
+      gst_pad_new_from_static_template (&audio_src_temp, "audio");
   gst_pad_set_query_function (dvdemux->audiosrcpad,
       GST_DEBUG_FUNCPTR (gst_dvdemux_src_query));
   gst_pad_set_query_type_function (dvdemux->audiosrcpad,
index 3ddf1d2..4f65677 100644 (file)
@@ -227,8 +227,7 @@ static void
 gst_gdk_pixbuf_init (GstGdkPixbuf * filter, GstGdkPixbufClass * klass)
 {
   filter->sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_gdk_pixbuf_sink_template), "sink");
+      gst_pad_new_from_static_template (&gst_gdk_pixbuf_sink_template, "sink");
   gst_pad_set_setcaps_function (filter->sinkpad, gst_gdk_pixbuf_sink_setcaps);
   gst_pad_set_getcaps_function (filter->sinkpad, gst_gdk_pixbuf_sink_getcaps);
 
@@ -241,8 +240,8 @@ gst_gdk_pixbuf_init (GstGdkPixbuf * filter, GstGdkPixbufClass * klass)
   gst_element_add_pad (GST_ELEMENT (filter), filter->sinkpad);
 
 
-  filter->srcpad = gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_gdk_pixbuf_src_template), "src");
+  filter->srcpad =
+      gst_pad_new_from_static_template (&gst_gdk_pixbuf_src_template, "src");
 
   gst_pad_use_fixed_caps (filter->srcpad);
   gst_element_add_pad (GST_ELEMENT (filter), filter->srcpad);
index 472b352..492831f 100644 (file)
@@ -232,8 +232,8 @@ gst_jpeg_dec_init (GstJpegDec * dec)
 
   /* create the sink and src pads */
   dec->sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_jpeg_dec_sink_pad_template), "sink");
+      gst_pad_new_from_static_template (&gst_jpeg_dec_sink_pad_template,
+      "sink");
   gst_element_add_pad (GST_ELEMENT (dec), dec->sinkpad);
   gst_pad_set_setcaps_function (dec->sinkpad,
       GST_DEBUG_FUNCPTR (gst_jpeg_dec_setcaps));
@@ -241,8 +241,7 @@ gst_jpeg_dec_init (GstJpegDec * dec)
       GST_DEBUG_FUNCPTR (gst_jpeg_dec_chain));
 
   dec->srcpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_jpeg_dec_src_pad_template), "src");
+      gst_pad_new_from_static_template (&gst_jpeg_dec_src_pad_template, "src");
   gst_element_add_pad (GST_ELEMENT (dec), dec->srcpad);
 
   /* setup jpeglib */
@@ -606,6 +605,9 @@ gst_jpeg_dec_setcaps (GstPad * pad, GstCaps * caps)
   /* do not extract width/height here. we do that in the chain
    * function on a per-frame basis (including the line[] array
    * setup) */
+
+  /* But we can take the framerate values and set them on the src pad */
+
   return TRUE;
 }
 
index b76b620..59fc102 100644 (file)
@@ -205,16 +205,14 @@ gst_jpegenc_init (GstJpegEnc * jpegenc)
 {
   /* create the sink and src pads */
   jpegenc->sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_jpegenc_sink_pad_template), "sink");
+      gst_pad_new_from_static_template (&gst_jpegenc_sink_pad_template, "sink");
   gst_pad_set_chain_function (jpegenc->sinkpad, gst_jpegenc_chain);
   gst_pad_set_getcaps_function (jpegenc->sinkpad, gst_jpegenc_getcaps);
   gst_pad_set_setcaps_function (jpegenc->sinkpad, gst_jpegenc_setcaps);
   gst_element_add_pad (GST_ELEMENT (jpegenc), jpegenc->sinkpad);
 
   jpegenc->srcpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_jpegenc_src_pad_template), "src");
+      gst_pad_new_from_static_template (&gst_jpegenc_src_pad_template, "src");
   gst_pad_set_getcaps_function (jpegenc->sinkpad, gst_jpegenc_getcaps);
   /*gst_pad_set_setcaps_function (jpegenc->sinkpad, gst_jpegenc_setcaps); */
   gst_pad_use_fixed_caps (jpegenc->sinkpad);
index 72ed8fe..ddeb036 100644 (file)
@@ -131,14 +131,13 @@ gst_smokedec_init (GstSmokeDec * smokedec)
   /* create the sink and src pads */
 
   smokedec->sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_smokedec_sink_pad_template), "sink");
+      gst_pad_new_from_static_template (&gst_smokedec_sink_pad_template,
+      "sink");
   gst_pad_set_chain_function (smokedec->sinkpad, gst_smokedec_chain);
   gst_element_add_pad (GST_ELEMENT (smokedec), smokedec->sinkpad);
 
   smokedec->srcpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_smokedec_src_pad_template), "src");
+      gst_pad_new_from_static_template (&gst_smokedec_src_pad_template, "src");
   gst_pad_use_fixed_caps (smokedec->srcpad);
   gst_element_add_pad (GST_ELEMENT (smokedec), smokedec->srcpad);
 
index cd499f8..c1d94cb 100644 (file)
@@ -168,16 +168,15 @@ gst_smokeenc_init (GstSmokeEnc * smokeenc)
 {
   /* create the sink and src pads */
   smokeenc->sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_smokeenc_sink_pad_template), "sink");
+      gst_pad_new_from_static_template (&gst_smokeenc_sink_pad_template,
+      "sink");
   gst_pad_set_chain_function (smokeenc->sinkpad, gst_smokeenc_chain);
   gst_pad_set_getcaps_function (smokeenc->sinkpad, gst_smokeenc_getcaps);
   gst_pad_set_setcaps_function (smokeenc->sinkpad, gst_smokeenc_setcaps);
   gst_element_add_pad (GST_ELEMENT (smokeenc), smokeenc->sinkpad);
 
   smokeenc->srcpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_smokeenc_src_pad_template), "src");
+      gst_pad_new_from_static_template (&gst_smokeenc_src_pad_template, "src");
   gst_pad_set_getcaps_function (smokeenc->sinkpad, gst_smokeenc_getcaps);
   gst_pad_use_fixed_caps (smokeenc->sinkpad);
   /*gst_pad_set_link_function (smokeenc->sinkpad, gst_smokeenc_link); */
index dab5c04..97e9ff9 100644 (file)
@@ -149,12 +149,12 @@ gst_mngdec_sinklink (GstPad * pad, const GstCaps * caps)
 static void
 gst_mngdec_init (GstMngDec * mngdec)
 {
-  mngdec->sinkpad = gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_mngdec_sink_pad_template), "sink");
+  mngdec->sinkpad =
+      gst_pad_new_from_static_template (&gst_mngdec_sink_pad_template, "sink");
   gst_element_add_pad (GST_ELEMENT (mngdec), mngdec->sinkpad);
 
-  mngdec->srcpad = gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_mngdec_src_pad_template), "src");
+  mngdec->srcpad =
+      gst_pad_new_from_static_template (&gst_mngdec_src_pad_template, "src");
   gst_element_add_pad (GST_ELEMENT (mngdec), mngdec->srcpad);
 
   gst_pad_set_link_function (mngdec->sinkpad, gst_mngdec_sinklink);
@@ -229,6 +229,7 @@ gst_mngdec_src_getcaps (GstPad * pad)
   }
 
   gst_object_unref (mngdec);
+  gst_object_unref (templ);
 
   return caps;
 }
index bbdda42..6842328 100644 (file)
@@ -127,8 +127,8 @@ gst_pngdec_class_init (GstPngDecClass * klass)
 static void
 gst_pngdec_init (GstPngDec * pngdec)
 {
-  pngdec->sinkpad = gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_pngdec_sink_pad_template), "sink");
+  pngdec->sinkpad =
+      gst_pad_new_from_static_template (&gst_pngdec_sink_pad_template, "sink");
   gst_pad_set_activate_function (pngdec->sinkpad, gst_pngdec_sink_activate);
   gst_pad_set_activatepush_function (pngdec->sinkpad,
       gst_pngdec_sink_activate_push);
@@ -138,8 +138,8 @@ gst_pngdec_init (GstPngDec * pngdec)
   gst_pad_set_event_function (pngdec->sinkpad, gst_pngdec_sink_event);
   gst_element_add_pad (GST_ELEMENT (pngdec), pngdec->sinkpad);
 
-  pngdec->srcpad = gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_pngdec_src_pad_template), "src");
+  pngdec->srcpad =
+      gst_pad_new_from_static_template (&gst_pngdec_src_pad_template, "src");
   gst_pad_use_fixed_caps (pngdec->srcpad);
   gst_element_add_pad (GST_ELEMENT (pngdec), pngdec->srcpad);
 
@@ -364,6 +364,7 @@ gst_pngdec_caps_create_and_set (GstPngDec * pngdec)
   res = gst_caps_intersect (caps, gst_pad_template_get_caps (templ));
 
   gst_caps_unref (caps);
+  gst_object_unref (templ);
 
   if (!gst_pad_set_caps (pngdec->srcpad, res)) {
     ret = GST_FLOW_ERROR;
index f52e57b..be0830a 100644 (file)
@@ -186,8 +186,8 @@ static void
 gst_pngenc_init (GstPngEnc * pngenc, GstPngEncClass * g_class)
 {
   /* sinkpad */
-  pngenc->sinkpad = gst_pad_new_from_template
-      (gst_static_pad_template_get (&pngenc_sink_template), "sink");
+  pngenc->sinkpad = gst_pad_new_from_static_template
+      (&pngenc_sink_template, "sink");
   gst_pad_set_chain_function (pngenc->sinkpad, gst_pngenc_chain);
   /*   gst_pad_set_link_function (pngenc->sinkpad, gst_pngenc_sinklink); */
   /*   gst_pad_set_getcaps_function (pngenc->sinkpad, gst_pngenc_sink_getcaps); */
@@ -195,8 +195,8 @@ gst_pngenc_init (GstPngEnc * pngenc, GstPngEncClass * g_class)
   gst_element_add_pad (GST_ELEMENT (pngenc), pngenc->sinkpad);
 
   /* srcpad */
-  pngenc->srcpad = gst_pad_new_from_template
-      (gst_static_pad_template_get (&pngenc_src_template), "src");
+  pngenc->srcpad = gst_pad_new_from_static_template
+      (&pngenc_src_template, "src");
   /*   pngenc->srcpad = gst_pad_new ("src", GST_PAD_SRC); */
   /*   gst_pad_set_getcaps_function (pngenc->srcpad, gst_pngenc_src_getcaps); */
   /*   gst_pad_set_setcaps_function (pngenc->srcpad, gst_pngenc_setcaps); */
index 4226467..55692f1 100644 (file)
@@ -208,11 +208,9 @@ static void
 gst_mikmod_init (GstMikMod * filter)
 {
   filter->sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&mikmod_sink_factory), "sink");
+      gst_pad_new_from_static_template (&mikmod_sink_factory, "sink");
   filter->srcpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&mikmod_src_factory), "src");
+      gst_pad_new_from_static_template (&mikmod_src_factory, "src");
 
   gst_element_add_pad (GST_ELEMENT (filter), filter->sinkpad);
   gst_element_add_pad (GST_ELEMENT (filter), filter->srcpad);
index d213f9b..035e8b7 100644 (file)
@@ -129,15 +129,13 @@ static void
 gst_speex_dec_init (GstSpeexDec * dec, GstSpeexDecClass * g_class)
 {
   dec->sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&speex_dec_sink_factory), "sink");
+      gst_pad_new_from_static_template (&speex_dec_sink_factory, "sink");
   gst_pad_set_chain_function (dec->sinkpad, speex_dec_chain);
   gst_pad_set_event_function (dec->sinkpad, speex_dec_event);
   gst_element_add_pad (GST_ELEMENT (dec), dec->sinkpad);
 
   dec->srcpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&speex_dec_src_factory), "src");
+      gst_pad_new_from_static_template (&speex_dec_src_factory, "src");
   gst_pad_use_fixed_caps (dec->srcpad);
   gst_pad_set_event_function (dec->srcpad, speex_dec_src_event);
   gst_pad_set_query_type_function (dec->srcpad, speex_get_query_types);
index 9596c0b..5237706 100644 (file)
@@ -267,15 +267,13 @@ gst_alpha_init (GstAlpha * alpha)
 {
   /* create the sink and src pads */
   alpha->sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_alpha_sink_template), "sink");
+      gst_pad_new_from_static_template (&gst_alpha_sink_template, "sink");
   gst_element_add_pad (GST_ELEMENT (alpha), alpha->sinkpad);
   gst_pad_set_chain_function (alpha->sinkpad, gst_alpha_chain);
   gst_pad_set_setcaps_function (alpha->sinkpad, gst_alpha_sink_setcaps);
 
   alpha->srcpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_alpha_src_template), "src");
+      gst_pad_new_from_static_template (&gst_alpha_src_template, "src");
   gst_element_add_pad (GST_ELEMENT (alpha), alpha->srcpad);
 
   alpha->alpha = DEFAULT_ALPHA;
index 071cb37..018ee50 100644 (file)
@@ -112,13 +112,12 @@ static void
 gst_au_parse_init (GstAuParse * auparse, GstAuParseClass * klass)
 {
   auparse->sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_au_parse_sink_template), "sink");
+      gst_pad_new_from_static_template (&gst_au_parse_sink_template, "sink");
   gst_element_add_pad (GST_ELEMENT (auparse), auparse->sinkpad);
   gst_pad_set_chain_function (auparse->sinkpad, gst_au_parse_chain);
 
-  auparse->srcpad = gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_au_parse_src_template), "src");
+  auparse->srcpad =
+      gst_pad_new_from_static_template (&gst_au_parse_src_template, "src");
   gst_pad_use_fixed_caps (auparse->srcpad);
   gst_element_add_pad (GST_ELEMENT (auparse), auparse->srcpad);
 
index 77278fd..484288c 100644 (file)
@@ -144,9 +144,7 @@ gst_avi_demux_class_init (GstAviDemuxClass * klass)
 static void
 gst_avi_demux_init (GstAviDemux * avi)
 {
-  avi->sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get (&sink_templ),
-      "sink");
+  avi->sinkpad = gst_pad_new_from_static_template (&sink_templ, "sink");
   gst_pad_set_activate_function (avi->sinkpad, gst_avi_demux_sink_activate);
   gst_pad_set_activatepull_function (avi->sinkpad,
       gst_avi_demux_sink_activate_pull);
@@ -561,6 +559,7 @@ gst_avi_demux_handle_src_event (GstPad * pad, GstEvent * event)
 done:
   gst_event_unref (event);
 
+  GST_DEBUG_OBJECT (avi, "returning %d", res);
   return res;
 }
 
@@ -1128,6 +1127,7 @@ gst_avi_demux_parse_stream (GstElement * element, GstBuffer * buf)
   if (stream->pad)
     gst_object_unref (stream->pad);
   pad = stream->pad = gst_pad_new_from_template (templ, padname);
+  gst_object_unref (templ);
   stream->last_flow = GST_FLOW_OK;
   stream->idx_duration = GST_CLOCK_TIME_NONE;
   g_free (padname);
index ec56cdd..9b302cd 100644 (file)
@@ -137,11 +137,9 @@ static void
 gst_cutter_init (GstCutter * filter, GstCutterClass * g_class)
 {
   filter->sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&cutter_sink_factory), "sink");
+      gst_pad_new_from_static_template (&cutter_sink_factory, "sink");
   filter->srcpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&cutter_src_factory), "src");
+      gst_pad_new_from_static_template (&cutter_src_factory, "src");
 
   filter->threshold_level = CUTTER_DEFAULT_THRESHOLD_LEVEL;
   filter->threshold_length = CUTTER_DEFAULT_THRESHOLD_LENGTH;
index 078a0e3..9093259 100644 (file)
@@ -180,10 +180,8 @@ gst_efence_class_init (GstEFenceClass * klass)
 static void
 gst_efence_init (GstEFence * filter)
 {
-  GstPadTemplate *tmpl;
-
-  tmpl = gst_static_pad_template_get (&gst_efence_sink_factory);
-  filter->sinkpad = gst_pad_new_from_template (tmpl, "sink");
+  filter->sinkpad =
+      gst_pad_new_from_static_template (&gst_efence_sink_factory, "sink");
   gst_pad_set_getcaps_function (filter->sinkpad,
       GST_DEBUG_FUNCPTR (gst_pad_proxy_getcaps));
   gst_pad_set_setcaps_function (filter->sinkpad,
@@ -193,10 +191,9 @@ gst_efence_init (GstEFence * filter)
   gst_pad_set_bufferalloc_function (filter->sinkpad,
       GST_DEBUG_FUNCPTR (gst_efence_buffer_alloc));
   gst_element_add_pad (GST_ELEMENT (filter), filter->sinkpad);
-  gst_object_unref (tmpl);
 
-  tmpl = gst_static_pad_template_get (&gst_efence_src_factory);
-  filter->srcpad = gst_pad_new_from_template (tmpl, "src");
+  filter->srcpad =
+      gst_pad_new_from_static_template (&gst_efence_src_factory, "src");
   gst_pad_set_getcaps_function (filter->srcpad,
       GST_DEBUG_FUNCPTR (gst_pad_proxy_getcaps));
   gst_pad_set_setcaps_function (filter->srcpad,
@@ -209,7 +206,6 @@ gst_efence_init (GstEFence * filter)
       GST_DEBUG_FUNCPTR (gst_efence_activate_src_pull));
 
   gst_element_add_pad (GST_ELEMENT (filter), filter->srcpad);
-  gst_object_unref (tmpl);
 
   filter->fence_top = TRUE;
 }
index da8a303..c3f2314 100644 (file)
@@ -179,13 +179,11 @@ static void
 gst_negotiation_init (GstNegotiation * filter)
 {
   filter->sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_negotiation_sink_factory), "sink");
+      gst_pad_new_from_static_template (&gst_negotiation_sink_factory, "sink");
   gst_pad_set_getcaps_function (filter->sinkpad, gst_negotiation_getcaps);
   gst_pad_set_link_function (filter->sinkpad, gst_negotiation_pad_link);
   filter->srcpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_negotiation_src_factory), "src");
+      gst_pad_new_from_static_template (&gst_negotiation_src_factory, "src");
   gst_pad_set_getcaps_function (filter->srcpad, gst_negotiation_getcaps);
   gst_pad_set_link_function (filter->srcpad, gst_negotiation_pad_link);
 
index 1b8d448..d6db1bb 100644 (file)
@@ -152,16 +152,12 @@ gst_flxdec_class_init (GstFlxDecClass * klass)
 static void
 gst_flxdec_init (GstFlxDec * flxdec)
 {
-  flxdec->sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get (&sink_factory),
-      "sink");
+  flxdec->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink");
   gst_element_add_pad (GST_ELEMENT (flxdec), flxdec->sinkpad);
   gst_pad_set_chain_function (flxdec->sinkpad, gst_flxdec_chain);
   gst_pad_set_event_function (flxdec->sinkpad, gst_flxdec_sink_event_handler);
 
-  flxdec->srcpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&src_video_factory), "src");
+  flxdec->srcpad = gst_pad_new_from_static_template (&src_video_factory, "src");
   gst_element_add_pad (GST_ELEMENT (flxdec), flxdec->srcpad);
   gst_pad_set_query_function (flxdec->srcpad, gst_flxdec_src_query_handler);
   gst_pad_set_event_function (flxdec->srcpad, gst_flxdec_src_event_handler);
index d5bcb77..54425aa 100644 (file)
@@ -156,12 +156,8 @@ static void
 gst_goom_init (GstGoom * goom)
 {
   /* create the sink and src pads */
-  goom->sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get (&sink_template),
-      "sink");
-  goom->srcpad =
-      gst_pad_new_from_template (gst_static_pad_template_get (&src_template),
-      "src");
+  goom->sinkpad = gst_pad_new_from_static_template (&sink_template, "sink");
+  goom->srcpad = gst_pad_new_from_static_template (&src_template, "src");
   gst_element_add_pad (GST_ELEMENT (goom), goom->sinkpad);
   gst_element_add_pad (GST_ELEMENT (goom), goom->srcpad);
 
index df93cfe..3fe3326 100644 (file)
@@ -158,13 +158,12 @@ static void
 gst_asteriskh263_init (GstAsteriskh263 * asteriskh263)
 {
   asteriskh263->srcpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_asteriskh263_src_template), "src");
+      gst_pad_new_from_static_template (&gst_asteriskh263_src_template, "src");
   gst_element_add_pad (GST_ELEMENT (asteriskh263), asteriskh263->srcpad);
 
   asteriskh263->sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_asteriskh263_sink_template), "sink");
+      gst_pad_new_from_static_template (&gst_asteriskh263_sink_template,
+      "sink");
   gst_pad_set_chain_function (asteriskh263->sinkpad, gst_asteriskh263_chain);
   gst_element_add_pad (GST_ELEMENT (asteriskh263), asteriskh263->sinkpad);
 
index d133fe9..60e2bcd 100644 (file)
@@ -140,11 +140,10 @@ static void
 gst_rtp_L16depay_init (GstRtpL16Depay * rtpL16depay)
 {
   rtpL16depay->srcpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_rtp_L16depay_src_template), "src");
+      gst_pad_new_from_static_template (&gst_rtp_L16depay_src_template, "src");
   rtpL16depay->sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_rtp_L16depay_sink_template), "sink");
+      gst_pad_new_from_static_template (&gst_rtp_L16depay_sink_template,
+      "sink");
   gst_element_add_pad (GST_ELEMENT (rtpL16depay), rtpL16depay->srcpad);
   gst_element_add_pad (GST_ELEMENT (rtpL16depay), rtpL16depay->sinkpad);
   gst_pad_set_chain_function (rtpL16depay->sinkpad, gst_rtp_L16depay_chain);
index f68425c..3f61d73 100644 (file)
@@ -137,11 +137,9 @@ static void
 gst_rtpL16pay_init (GstRtpL16Pay * rtpL16enc)
 {
   rtpL16enc->sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_rtpL16pay_sink_template), "sink");
+      gst_pad_new_from_static_template (&gst_rtpL16pay_sink_template, "sink");
   rtpL16enc->srcpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_rtpL16pay_src_template), "src");
+      gst_pad_new_from_static_template (&gst_rtpL16pay_src_template, "src");
   gst_element_add_pad (GST_ELEMENT (rtpL16enc), rtpL16enc->sinkpad);
   gst_element_add_pad (GST_ELEMENT (rtpL16enc), rtpL16enc->srcpad);
   gst_pad_set_chain_function (rtpL16enc->sinkpad, gst_rtpL16pay_chain);
index aa410aa..3eb08d3 100644 (file)
@@ -159,14 +159,13 @@ static void
 gst_rtp_amr_depay_init (GstRtpAMRDepay * rtpamrdepay)
 {
   rtpamrdepay->srcpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_rtp_amr_depay_src_template), "src");
+      gst_pad_new_from_static_template (&gst_rtp_amr_depay_src_template, "src");
 
   gst_element_add_pad (GST_ELEMENT (rtpamrdepay), rtpamrdepay->srcpad);
 
   rtpamrdepay->sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_rtp_amr_depay_sink_template), "sink");
+      gst_pad_new_from_static_template (&gst_rtp_amr_depay_sink_template,
+      "sink");
   gst_pad_set_setcaps_function (rtpamrdepay->sinkpad,
       gst_rtp_amr_depay_sink_setcaps);
   gst_pad_set_chain_function (rtpamrdepay->sinkpad, gst_rtp_amr_depay_chain);
index b525ca9..531f871 100644 (file)
@@ -154,30 +154,30 @@ gst_rtp_depay_init (GstRTPDepay * rtpdepay)
 {
   /* the input rtp pad */
   rtpdepay->sink_rtp =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_rtp_depay_sink_rtp_template), "sinkrtp");
+      gst_pad_new_from_static_template (&gst_rtp_depay_sink_rtp_template,
+      "sinkrtp");
   gst_element_add_pad (GST_ELEMENT (rtpdepay), rtpdepay->sink_rtp);
   gst_pad_set_getcaps_function (rtpdepay->sink_rtp, gst_rtp_depay_getcaps);
   gst_pad_set_chain_function (rtpdepay->sink_rtp, gst_rtp_depay_chain_rtp);
 
   /* the input rtcp pad */
   rtpdepay->sink_rtcp =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_rtp_depay_sink_rtcp_template), "sinkrtcp");
+      gst_pad_new_from_static_template (&gst_rtp_depay_sink_rtcp_template,
+      "sinkrtcp");
   gst_element_add_pad (GST_ELEMENT (rtpdepay), rtpdepay->sink_rtcp);
   gst_pad_set_chain_function (rtpdepay->sink_rtcp, gst_rtp_depay_chain_rtcp);
 
   /* the output rtp pad */
   rtpdepay->src_rtp =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_rtp_depay_src_rtp_template), "srcrtp");
+      gst_pad_new_from_static_template (&gst_rtp_depay_src_rtp_template,
+      "srcrtp");
   gst_pad_set_getcaps_function (rtpdepay->src_rtp, gst_rtp_depay_getcaps);
   gst_element_add_pad (GST_ELEMENT (rtpdepay), rtpdepay->src_rtp);
 
   /* the output rtcp pad */
   rtpdepay->src_rtcp =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_rtp_depay_src_rtcp_template), "srcrtcp");
+      gst_pad_new_from_static_template (&gst_rtp_depay_src_rtcp_template,
+      "srcrtcp");
   gst_element_add_pad (GST_ELEMENT (rtpdepay), rtpdepay->src_rtcp);
 }
 
index 3a6e7fe..046efe9 100644 (file)
@@ -134,13 +134,12 @@ static void
 gst_rtp_mpa_depay_init (GstRtpMPADepay * rtpmpadepay)
 {
   rtpmpadepay->srcpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_rtp_mpa_depay_src_template), "src");
+      gst_pad_new_from_static_template (&gst_rtp_mpa_depay_src_template, "src");
   gst_element_add_pad (GST_ELEMENT (rtpmpadepay), rtpmpadepay->srcpad);
 
   rtpmpadepay->sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_rtp_mpa_depay_sink_template), "sink");
+      gst_pad_new_from_static_template (&gst_rtp_mpa_depay_sink_template,
+      "sink");
   gst_pad_set_chain_function (rtpmpadepay->sinkpad, gst_rtp_mpa_depay_chain);
   gst_element_add_pad (GST_ELEMENT (rtpmpadepay), rtpmpadepay->sinkpad);
 }
index 7484ad3..02785ef 100644 (file)
@@ -151,30 +151,29 @@ gst_rtpdec_init (GstRTPDec * rtpdec)
 {
   /* the input rtp pad */
   rtpdec->sink_rtp =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_rtpdec_sink_rtp_template), "sinkrtp");
+      gst_pad_new_from_static_template (&gst_rtpdec_sink_rtp_template,
+      "sinkrtp");
   gst_element_add_pad (GST_ELEMENT (rtpdec), rtpdec->sink_rtp);
   gst_pad_set_getcaps_function (rtpdec->sink_rtp, gst_rtpdec_getcaps);
   gst_pad_set_chain_function (rtpdec->sink_rtp, gst_rtpdec_chain_rtp);
 
   /* the input rtcp pad */
   rtpdec->sink_rtcp =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_rtpdec_sink_rtcp_template), "sinkrtcp");
+      gst_pad_new_from_static_template (&gst_rtpdec_sink_rtcp_template,
+      "sinkrtcp");
   gst_element_add_pad (GST_ELEMENT (rtpdec), rtpdec->sink_rtcp);
   gst_pad_set_chain_function (rtpdec->sink_rtcp, gst_rtpdec_chain_rtcp);
 
   /* the output rtp pad */
   rtpdec->src_rtp =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_rtpdec_src_rtp_template), "srcrtp");
+      gst_pad_new_from_static_template (&gst_rtpdec_src_rtp_template, "srcrtp");
   gst_pad_set_getcaps_function (rtpdec->src_rtp, gst_rtpdec_getcaps);
   gst_element_add_pad (GST_ELEMENT (rtpdec), rtpdec->src_rtp);
 
   /* the output rtcp pad */
   rtpdec->src_rtcp =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_rtpdec_src_rtcp_template), "srcrtcp");
+      gst_pad_new_from_static_template (&gst_rtpdec_src_rtcp_template,
+      "srcrtcp");
   gst_element_add_pad (GST_ELEMENT (rtpdec), rtpdec->src_rtcp);
 }
 
index bf5ed28..a87b4d9 100644 (file)
@@ -262,20 +262,17 @@ static void
 gst_smpte_init (GstSMPTE * smpte)
 {
   smpte->sinkpad1 =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_smpte_sink1_template), "sink1");
+      gst_pad_new_from_static_template (&gst_smpte_sink1_template, "sink1");
   gst_pad_set_setcaps_function (smpte->sinkpad1, gst_smpte_setcaps);
   gst_element_add_pad (GST_ELEMENT (smpte), smpte->sinkpad1);
 
   smpte->sinkpad2 =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_smpte_sink2_template), "sink2");
+      gst_pad_new_from_static_template (&gst_smpte_sink2_template, "sink2");
   gst_pad_set_setcaps_function (smpte->sinkpad2, gst_smpte_setcaps);
   gst_element_add_pad (GST_ELEMENT (smpte), smpte->sinkpad2);
 
   smpte->srcpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&gst_smpte_src_template), "src");
+      gst_pad_new_from_static_template (&gst_smpte_src_template, "src");
   gst_element_add_pad (GST_ELEMENT (smpte), smpte->srcpad);
 
   smpte->collect = gst_collect_pads_new ();
index 98256ed..6ad82ae 100644 (file)
@@ -221,8 +221,7 @@ gst_wavparse_init (GstWavParse * wavparse)
 
   /* sink */
   wavparse->sinkpad =
-      gst_pad_new_from_template (gst_static_pad_template_get
-      (&sink_template_factory), "sink");
+      gst_pad_new_from_static_template (&sink_template_factory, "sink");
   gst_pad_set_activate_function (wavparse->sinkpad,
       GST_DEBUG_FUNCPTR (gst_wavparse_sink_activate));
   gst_pad_set_activatepull_function (wavparse->sinkpad,
@@ -242,15 +241,12 @@ gst_wavparse_destroy_sourcepad (GstWavParse * wavparse)
 static void
 gst_wavparse_create_sourcepad (GstWavParse * wavparse)
 {
-  GstPadTemplate *templ;
-
   /* destroy previous one */
   gst_wavparse_destroy_sourcepad (wavparse);
 
   /* source */
-  templ = gst_static_pad_template_get (&src_template_factory);
-  wavparse->srcpad = gst_pad_new_from_template (templ, "src");
-  gst_object_unref (templ);
+  wavparse->srcpad =
+      gst_pad_new_from_static_template (&src_template_factory, "src");
   gst_pad_use_fixed_caps (wavparse->srcpad);
   gst_pad_set_query_type_function (wavparse->srcpad,
       GST_DEBUG_FUNCPTR (gst_wavparse_get_query_types));