From 50f4eb876a9d272847e22e3349309ce3f7ac42dc Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Wed, 15 Mar 2006 16:17:12 +0000 Subject: [PATCH] Fix memleak with gst_static_pad_template_get(). 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 --- ChangeLog | 41 +++++++++++++++++++++++++++++++++++ ext/cairo/gsttextoverlay.c | 12 +++++----- ext/dv/gstdvdemux.c | 10 +++------ ext/gdk_pixbuf/gstgdkpixbuf.c | 7 +++--- ext/jpeg/gstjpegdec.c | 10 +++++---- ext/jpeg/gstjpegenc.c | 6 ++--- ext/jpeg/gstsmokedec.c | 7 +++--- ext/jpeg/gstsmokeenc.c | 7 +++--- ext/libmng/gstmngdec.c | 9 ++++---- ext/libpng/gstpngdec.c | 9 ++++---- ext/libpng/gstpngenc.c | 8 +++---- ext/mikmod/gstmikmod.c | 6 ++--- ext/speex/gstspeexdec.c | 6 ++--- gst/alpha/gstalpha.c | 6 ++--- gst/auparse/gstauparse.c | 7 +++--- gst/avi/gstavidemux.c | 6 ++--- gst/cutter/gstcutter.c | 6 ++--- gst/debug/efence.c | 12 ++++------ gst/debug/negotiation.c | 6 ++--- gst/flx/gstflxdec.c | 8 ++----- gst/goom/gstgoom.c | 8 ++----- gst/rtp/gstasteriskh263.c | 7 +++--- gst/rtp/gstrtpL16depay.c | 7 +++--- gst/rtp/gstrtpL16pay.c | 6 ++--- gst/rtp/gstrtpamrdepay.c | 7 +++--- gst/rtp/gstrtpdepay.c | 16 +++++++------- gst/rtp/gstrtpmpadepay.c | 7 +++--- gst/rtsp/gstrtpdec.c | 15 ++++++------- gst/smpte/gstsmpte.c | 9 +++----- gst/wavparse/gstwavparse.c | 10 +++------ 30 files changed, 140 insertions(+), 141 deletions(-) diff --git a/ChangeLog b/ChangeLog index 35116df0e7..926bf3412f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,44 @@ +2006-03-15 Edward Hervey + + * 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 * configure.ac: diff --git a/ext/cairo/gsttextoverlay.c b/ext/cairo/gsttextoverlay.c index 34137ad907..73f539d917 100644 --- a/ext/cairo/gsttextoverlay.c +++ b/ext/cairo/gsttextoverlay.c @@ -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); diff --git a/ext/dv/gstdvdemux.c b/ext/dv/gstdvdemux.c index eb5b98b4d0..221a12c0d4 100644 --- a/ext/dv/gstdvdemux.c +++ b/ext/dv/gstdvdemux.c @@ -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, diff --git a/ext/gdk_pixbuf/gstgdkpixbuf.c b/ext/gdk_pixbuf/gstgdkpixbuf.c index 3ddf1d2ed5..4f65677a9b 100644 --- a/ext/gdk_pixbuf/gstgdkpixbuf.c +++ b/ext/gdk_pixbuf/gstgdkpixbuf.c @@ -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); diff --git a/ext/jpeg/gstjpegdec.c b/ext/jpeg/gstjpegdec.c index 472b35205e..492831fc34 100644 --- a/ext/jpeg/gstjpegdec.c +++ b/ext/jpeg/gstjpegdec.c @@ -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; } diff --git a/ext/jpeg/gstjpegenc.c b/ext/jpeg/gstjpegenc.c index b76b6205bb..59fc1022ba 100644 --- a/ext/jpeg/gstjpegenc.c +++ b/ext/jpeg/gstjpegenc.c @@ -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); diff --git a/ext/jpeg/gstsmokedec.c b/ext/jpeg/gstsmokedec.c index 72ed8fe0d4..ddeb0367f6 100644 --- a/ext/jpeg/gstsmokedec.c +++ b/ext/jpeg/gstsmokedec.c @@ -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); diff --git a/ext/jpeg/gstsmokeenc.c b/ext/jpeg/gstsmokeenc.c index cd499f852b..c1d94cbcf5 100644 --- a/ext/jpeg/gstsmokeenc.c +++ b/ext/jpeg/gstsmokeenc.c @@ -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); */ diff --git a/ext/libmng/gstmngdec.c b/ext/libmng/gstmngdec.c index dab5c0444a..97e9ff9c55 100644 --- a/ext/libmng/gstmngdec.c +++ b/ext/libmng/gstmngdec.c @@ -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; } diff --git a/ext/libpng/gstpngdec.c b/ext/libpng/gstpngdec.c index bbdda42b02..684232888c 100644 --- a/ext/libpng/gstpngdec.c +++ b/ext/libpng/gstpngdec.c @@ -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; diff --git a/ext/libpng/gstpngenc.c b/ext/libpng/gstpngenc.c index f52e57b4b6..be0830ab1e 100644 --- a/ext/libpng/gstpngenc.c +++ b/ext/libpng/gstpngenc.c @@ -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); */ diff --git a/ext/mikmod/gstmikmod.c b/ext/mikmod/gstmikmod.c index 4226467fc0..55692f1c2f 100644 --- a/ext/mikmod/gstmikmod.c +++ b/ext/mikmod/gstmikmod.c @@ -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); diff --git a/ext/speex/gstspeexdec.c b/ext/speex/gstspeexdec.c index d213f9b39c..035e8b77a9 100644 --- a/ext/speex/gstspeexdec.c +++ b/ext/speex/gstspeexdec.c @@ -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); diff --git a/gst/alpha/gstalpha.c b/gst/alpha/gstalpha.c index 9596c0ba8b..5237706d40 100644 --- a/gst/alpha/gstalpha.c +++ b/gst/alpha/gstalpha.c @@ -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; diff --git a/gst/auparse/gstauparse.c b/gst/auparse/gstauparse.c index 071cb37d1a..018ee50093 100644 --- a/gst/auparse/gstauparse.c +++ b/gst/auparse/gstauparse.c @@ -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); diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c index 77278fd09d..484288cb3d 100644 --- a/gst/avi/gstavidemux.c +++ b/gst/avi/gstavidemux.c @@ -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); diff --git a/gst/cutter/gstcutter.c b/gst/cutter/gstcutter.c index ec56cdd528..9b302cd8ee 100644 --- a/gst/cutter/gstcutter.c +++ b/gst/cutter/gstcutter.c @@ -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; diff --git a/gst/debug/efence.c b/gst/debug/efence.c index 078a0e3279..909325988e 100644 --- a/gst/debug/efence.c +++ b/gst/debug/efence.c @@ -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; } diff --git a/gst/debug/negotiation.c b/gst/debug/negotiation.c index da8a303366..c3f2314dec 100644 --- a/gst/debug/negotiation.c +++ b/gst/debug/negotiation.c @@ -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); diff --git a/gst/flx/gstflxdec.c b/gst/flx/gstflxdec.c index 1b8d448265..d6db1bb4fa 100644 --- a/gst/flx/gstflxdec.c +++ b/gst/flx/gstflxdec.c @@ -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); diff --git a/gst/goom/gstgoom.c b/gst/goom/gstgoom.c index d5bcb77fc3..54425aa64d 100644 --- a/gst/goom/gstgoom.c +++ b/gst/goom/gstgoom.c @@ -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); diff --git a/gst/rtp/gstasteriskh263.c b/gst/rtp/gstasteriskh263.c index df93cfe4be..3fe3326ff7 100644 --- a/gst/rtp/gstasteriskh263.c +++ b/gst/rtp/gstasteriskh263.c @@ -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); diff --git a/gst/rtp/gstrtpL16depay.c b/gst/rtp/gstrtpL16depay.c index d133fe9a4b..60e2bcd556 100644 --- a/gst/rtp/gstrtpL16depay.c +++ b/gst/rtp/gstrtpL16depay.c @@ -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); diff --git a/gst/rtp/gstrtpL16pay.c b/gst/rtp/gstrtpL16pay.c index f68425c094..3f61d73d13 100644 --- a/gst/rtp/gstrtpL16pay.c +++ b/gst/rtp/gstrtpL16pay.c @@ -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); diff --git a/gst/rtp/gstrtpamrdepay.c b/gst/rtp/gstrtpamrdepay.c index aa410aa7ef..3eb08d35ff 100644 --- a/gst/rtp/gstrtpamrdepay.c +++ b/gst/rtp/gstrtpamrdepay.c @@ -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); diff --git a/gst/rtp/gstrtpdepay.c b/gst/rtp/gstrtpdepay.c index b525ca96d8..531f871000 100644 --- a/gst/rtp/gstrtpdepay.c +++ b/gst/rtp/gstrtpdepay.c @@ -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); } diff --git a/gst/rtp/gstrtpmpadepay.c b/gst/rtp/gstrtpmpadepay.c index 3a6e7fe4b2..046efe93eb 100644 --- a/gst/rtp/gstrtpmpadepay.c +++ b/gst/rtp/gstrtpmpadepay.c @@ -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); } diff --git a/gst/rtsp/gstrtpdec.c b/gst/rtsp/gstrtpdec.c index 7484ad330a..02785ef7ca 100644 --- a/gst/rtsp/gstrtpdec.c +++ b/gst/rtsp/gstrtpdec.c @@ -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); } diff --git a/gst/smpte/gstsmpte.c b/gst/smpte/gstsmpte.c index bf5ed282ed..a87b4d95de 100644 --- a/gst/smpte/gstsmpte.c +++ b/gst/smpte/gstsmpte.c @@ -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 (); diff --git a/gst/wavparse/gstwavparse.c b/gst/wavparse/gstwavparse.c index 98256ed974..6ad82ae232 100644 --- a/gst/wavparse/gstwavparse.c +++ b/gst/wavparse/gstwavparse.c @@ -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));