Commit 88d7141b authored by Jan Alexander Steffens's avatar Jan Alexander Steffens Committed by GStreamer Marge Bot
Browse files

rtpsink: Return proper pad from _request_new_pad

Bizarrely, it returned a pad from the child rtpbin. I noticed because
our application leaked the implicitly created ghost pad. Make an
explicit ghost pad so this works properly.

Part-of: <!2227>
parent ddac6ab9
Pipeline #315682 waiting for manual action with stages
in 49 seconds
...@@ -241,7 +241,7 @@ gst_rtp_sink_request_new_pad (GstElement * element, ...@@ -241,7 +241,7 @@ gst_rtp_sink_request_new_pad (GstElement * element,
GstPadTemplate * templ, const gchar * name, const GstCaps * caps) GstPadTemplate * templ, const gchar * name, const GstCaps * caps)
{ {
GstRtpSink *self = GST_RTP_SINK (element); GstRtpSink *self = GST_RTP_SINK (element);
GstPad *pad = NULL; GstPad *rpad, *pad = NULL;
if (self->rtpbin == NULL) { if (self->rtpbin == NULL) {
GST_ELEMENT_ERROR (self, CORE, MISSING_PLUGIN, (NULL), GST_ELEMENT_ERROR (self, CORE, MISSING_PLUGIN, (NULL),
...@@ -253,7 +253,12 @@ gst_rtp_sink_request_new_pad (GstElement * element, ...@@ -253,7 +253,12 @@ gst_rtp_sink_request_new_pad (GstElement * element,
return NULL; return NULL;
GST_RTP_SINK_LOCK (self); GST_RTP_SINK_LOCK (self);
pad = gst_element_request_pad_simple (self->rtpbin, "send_rtp_sink_%u"); rpad = gst_element_request_pad_simple (self->rtpbin, "send_rtp_sink_%u");
if (rpad) {
pad = gst_ghost_pad_new (GST_PAD_NAME (rpad), rpad);
gst_element_add_pad (element, pad);
gst_clear_object (&rpad);
}
GST_RTP_SINK_UNLOCK (self); GST_RTP_SINK_UNLOCK (self);
g_return_val_if_fail (pad != NULL, NULL); g_return_val_if_fail (pad != NULL, NULL);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment