Add source elements to the pipeline before activation
authorPatricia Muscalu <patricia@axis.com>
Wed, 5 Dec 2018 14:07:25 +0000 (15:07 +0100)
committerSebastian Dröge <slomo@coaxion.net>
Thu, 6 Dec 2018 08:59:04 +0000 (08:59 +0000)
In plug_src we changed the element state before adding it to
the owner container. This prevented the pipeline from intercepting
a GST_STREAM_STATUS_TYPE_CREATE message from the pad in order
to assign a custom task pool.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/issues/53

gst/rtsp-server/rtsp-stream.c

index 83291d6..33eeb50 100644 (file)
@@ -3401,6 +3401,9 @@ plug_src (GstRTSPStream * stream, GstBin * bin, GstElement * src,
 
   priv = stream->priv;
 
+  /* add src */
+  gst_bin_add (bin, src);
+
   pad = gst_element_get_static_pad (src, "src");
   if (priv->srcpad) {
     /* block pad so src can't push data while it's not yet linked */
@@ -3412,9 +3415,6 @@ plug_src (GstRTSPStream * stream, GstBin * bin, GstElement * src,
     gst_element_set_locked_state (src, TRUE);
   }
 
-  /* add src */
-  gst_bin_add (bin, src);
-
   /* and link to the funnel */
   selpad = gst_element_get_request_pad (funnel, "sink_%u");
   gst_pad_link (pad, selpad);