gstreamer: Ensure we free the template
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9044>
This commit is contained in:
parent
75cf21d834
commit
99aba78c88
@ -449,6 +449,7 @@ gst_wpe_src_init (GstWpeSrc * src)
|
||||
GstPad *pad;
|
||||
GstPad *ghost_pad;
|
||||
GstProxyPad *proxy_pad;
|
||||
GstPadTemplate *pad_template;
|
||||
|
||||
gst_bin_set_suppressed_flags (GST_BIN_CAST (src),
|
||||
static_cast<GstElementFlags>(GST_ELEMENT_FLAG_SOURCE | GST_ELEMENT_FLAG_SINK));
|
||||
@ -461,9 +462,9 @@ gst_wpe_src_init (GstWpeSrc * src)
|
||||
|
||||
gst_bin_add (GST_BIN_CAST (src), src->video_src);
|
||||
|
||||
pad_template = gst_static_pad_template_get (&video_src_factory);
|
||||
pad = gst_element_get_static_pad (GST_ELEMENT_CAST (src->video_src), "src");
|
||||
ghost_pad = gst_ghost_pad_new_from_template ("video", pad,
|
||||
gst_static_pad_template_get (&video_src_factory));
|
||||
ghost_pad = gst_ghost_pad_new_from_template ("video", pad, pad_template);
|
||||
proxy_pad = gst_proxy_pad_get_internal (GST_PROXY_PAD (ghost_pad));
|
||||
gst_pad_set_active (GST_PAD_CAST (proxy_pad), TRUE);
|
||||
|
||||
@ -473,6 +474,7 @@ gst_wpe_src_init (GstWpeSrc * src)
|
||||
|
||||
gst_object_unref (proxy_pad);
|
||||
gst_object_unref (pad);
|
||||
gst_object_unref (pad_template);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@ -558,6 +558,7 @@ gst_rist_sink_init (GstRistSink * sink)
|
||||
GstCaps *ssrc_caps;
|
||||
GstStructure *sdes = NULL;
|
||||
RistSenderBond *bond;
|
||||
GstPadTemplate *pad_template;
|
||||
|
||||
sink->rtpext = gst_element_factory_make ("ristrtpext", "ristrtpext");
|
||||
|
||||
@ -616,12 +617,14 @@ gst_rist_sink_init (GstRistSink * sink)
|
||||
g_object_set (sink->ssrc_filter, "caps", ssrc_caps, NULL);
|
||||
gst_caps_unref (ssrc_caps);
|
||||
|
||||
pad_template = gst_static_pad_template_get (&sink_templ);
|
||||
ssrc_filter_sinkpad = gst_element_get_static_pad (sink->ssrc_filter, "sink");
|
||||
sink->sinkpad = gst_ghost_pad_new_from_template ("sink", ssrc_filter_sinkpad,
|
||||
gst_static_pad_template_get (&sink_templ));
|
||||
pad_template);
|
||||
gst_pad_set_event_function (sink->sinkpad, gst_rist_sink_event);
|
||||
gst_element_add_pad (GST_ELEMENT (sink), sink->sinkpad);
|
||||
gst_object_unref (ssrc_filter_sinkpad);
|
||||
gst_object_unref (pad_template);
|
||||
|
||||
gst_pad_add_probe (sink->sinkpad, GST_PAD_PROBE_TYPE_EVENT_UPSTREAM,
|
||||
gst_rist_sink_fix_collision, sink, NULL);
|
||||
|
@ -105,13 +105,15 @@ pad_added_cb (GstElement * element, GstPad * pad, gpointer user_data)
|
||||
{
|
||||
GstSdpSrc *self = GST_SDP_SRC_CAST (user_data);
|
||||
GstPad *ghost;
|
||||
GstPadTemplate *pad_template;
|
||||
|
||||
pad_template = gst_static_pad_template_get (&src_template);
|
||||
ghost =
|
||||
gst_ghost_pad_new_from_template (GST_PAD_NAME (pad), pad,
|
||||
gst_static_pad_template_get (&src_template));
|
||||
gst_ghost_pad_new_from_template (GST_PAD_NAME (pad), pad, pad_template);
|
||||
gst_pad_set_active (ghost, TRUE);
|
||||
gst_element_add_pad (GST_ELEMENT_CAST (self), ghost);
|
||||
g_object_set_data (G_OBJECT (pad), "GstSdpSrc.ghostpad", ghost);
|
||||
gst_object_unref (pad_template);
|
||||
}
|
||||
|
||||
static void
|
||||
|
Loading…
x
Reference in New Issue
Block a user