From: Xavier Claessens Date: Thu, 6 Oct 2016 15:47:50 +0000 (-0400) Subject: stream: Fix randomly missing streams from SDP with dynamic elements X-Git-Tag: 1.19.3~495^2~472 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c0f24fea8381c0d35a4f255edbfd5d53463338bf;p=platform%2Fupstream%2Fgstreamer.git stream: Fix randomly missing streams from SDP with dynamic elements When using dynamic elements, gst_rtsp_stream_join_bin() is called from "pad-added" signal. In that case priv->srcpad could already have its caps, and they'll be sent to priv->send_src[0] pad. That means that when it connects "notify::caps" signal, that pad could already have received its caps and the signal won't be emitted anymore. In that case priv->caps stay to NULL and when building the SDP that stream gets ignored. Leading to missing video or audio when playing in client side. https://bugzilla.gnome.org/show_bug.cgi?id=772478 --- diff --git a/gst/rtsp-server/rtsp-stream.c b/gst/rtsp-server/rtsp-stream.c index 9125314..9fd3e00 100644 --- a/gst/rtsp-server/rtsp-stream.c +++ b/gst/rtsp-server/rtsp-stream.c @@ -2759,6 +2759,7 @@ gst_rtsp_stream_join_bin (GstRTSPStream * stream, GstBin * bin, /* be notified of caps changes */ priv->caps_sig = g_signal_connect (priv->send_src[0], "notify::caps", (GCallback) caps_notify, stream); + priv->caps = gst_pad_get_current_caps (priv->send_src[0]); } priv->joined_bin = bin;