mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-11 18:05:37 +00:00
Plug leaks.
Original commit message from CVS: Plug leaks.
This commit is contained in:
parent
533d7d68c3
commit
4f08d8649d
3 changed files with 37 additions and 16 deletions
|
@ -1,3 +1,11 @@
|
|||
2005-11-15 Johan Dahlin <johan@gnome.org>
|
||||
|
||||
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_typefind),
|
||||
(gst_ogg_demux_init), (gst_ogg_demux_finalize):
|
||||
* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_base_init),
|
||||
(gst_vorbis_dec_init):
|
||||
Fix pad template leaks.
|
||||
|
||||
2005-11-15 Tim-Philipp Müller <tim at centricular dot net>
|
||||
|
||||
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_change_state):
|
||||
|
|
|
@ -637,6 +637,8 @@ gst_ogg_pad_typefind (GstOggPad * pad, ogg_packet * packet)
|
|||
gst_element_factory_create (GST_ELEMENT_FACTORY (factories->data),
|
||||
NULL);
|
||||
if (element) {
|
||||
GstPadTemplate *template;
|
||||
|
||||
/* this is ours */
|
||||
gst_object_ref (element);
|
||||
gst_object_sink (GST_OBJECT (element));
|
||||
|
@ -644,9 +646,9 @@ gst_ogg_pad_typefind (GstOggPad * pad, ogg_packet * packet)
|
|||
/* FIXME, it might not be named "sink" */
|
||||
pad->elem_pad = gst_element_get_pad (element, "sink");
|
||||
gst_element_set_state (element, GST_STATE_PAUSED);
|
||||
pad->elem_out =
|
||||
gst_pad_new_from_template (gst_static_pad_template_get
|
||||
(&internaltemplate), "internal");
|
||||
template = gst_static_pad_template_get (&internaltemplate);
|
||||
pad->elem_out = gst_pad_new_from_template (template, "internal");
|
||||
g_object_unref (template);
|
||||
gst_pad_set_chain_function (pad->elem_out, gst_ogg_pad_internal_chain);
|
||||
gst_pad_set_element_private (pad->elem_out, pad);
|
||||
gst_pad_set_active (pad->elem_out, TRUE);
|
||||
|
@ -1131,9 +1133,11 @@ static void
|
|||
gst_ogg_demux_init (GstOggDemux * ogg, GstOggDemuxClass * g_class)
|
||||
{
|
||||
/* create the sink pad */
|
||||
ogg->sinkpad =
|
||||
gst_pad_new_from_template (gst_static_pad_template_get
|
||||
(&ogg_demux_sink_template_factory), "sink");
|
||||
GstPadTemplate *template = gst_static_pad_template_get
|
||||
(&ogg_demux_sink_template_factory);
|
||||
ogg->sinkpad = gst_pad_new_from_template (template, "sink");
|
||||
g_object_unref (template);
|
||||
|
||||
gst_pad_set_event_function (ogg->sinkpad, gst_ogg_demux_handle_event);
|
||||
gst_pad_set_chain_function (ogg->sinkpad, gst_ogg_demux_chain);
|
||||
gst_pad_set_activate_function (ogg->sinkpad, gst_ogg_demux_sink_activate);
|
||||
|
|
|
@ -95,11 +95,16 @@ static void
|
|||
gst_vorbis_dec_base_init (gpointer g_class)
|
||||
{
|
||||
GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
|
||||
GstPadTemplate *src_template, *sink_template;
|
||||
|
||||
src_template = gst_static_pad_template_get (&vorbis_dec_src_factory);
|
||||
gst_element_class_add_pad_template (element_class, src_template);
|
||||
g_object_unref (src_template);
|
||||
|
||||
sink_template = gst_static_pad_template_get (&vorbis_dec_sink_factory);
|
||||
gst_element_class_add_pad_template (element_class, sink_template);
|
||||
g_object_unref (sink_template);
|
||||
|
||||
gst_element_class_add_pad_template (element_class,
|
||||
gst_static_pad_template_get (&vorbis_dec_src_factory));
|
||||
gst_element_class_add_pad_template (element_class,
|
||||
gst_static_pad_template_get (&vorbis_dec_sink_factory));
|
||||
gst_element_class_set_details (element_class, &vorbis_dec_details);
|
||||
}
|
||||
|
||||
|
@ -162,17 +167,21 @@ vorbis_get_query_types (GstPad * pad)
|
|||
static void
|
||||
gst_vorbis_dec_init (GstVorbisDec * dec, GstVorbisDecClass * g_class)
|
||||
{
|
||||
dec->sinkpad =
|
||||
gst_pad_new_from_template (gst_static_pad_template_get
|
||||
(&vorbis_dec_sink_factory), "sink");
|
||||
GstPadTemplate *template;
|
||||
|
||||
template = gst_static_pad_template_get (&vorbis_dec_sink_factory);
|
||||
dec->sinkpad = gst_pad_new_from_template (template, "sink");
|
||||
g_object_unref (template);
|
||||
|
||||
gst_pad_set_event_function (dec->sinkpad, vorbis_dec_sink_event);
|
||||
gst_pad_set_chain_function (dec->sinkpad, vorbis_dec_chain);
|
||||
gst_pad_set_query_function (dec->sinkpad, vorbis_dec_sink_query);
|
||||
gst_element_add_pad (GST_ELEMENT (dec), dec->sinkpad);
|
||||
|
||||
dec->srcpad =
|
||||
gst_pad_new_from_template (gst_static_pad_template_get
|
||||
(&vorbis_dec_src_factory), "src");
|
||||
template = gst_static_pad_template_get (&vorbis_dec_src_factory);
|
||||
dec->srcpad = gst_pad_new_from_template (template, "src");
|
||||
g_object_unref (template);
|
||||
|
||||
gst_pad_set_event_function (dec->srcpad, vorbis_dec_src_event);
|
||||
gst_pad_set_query_type_function (dec->srcpad, vorbis_get_query_types);
|
||||
gst_pad_set_query_function (dec->srcpad, vorbis_dec_src_query);
|
||||
|
|
Loading…
Reference in a new issue