rtpbin: Keep jb signals handler
authorOlivier CrĂȘte <olivier.crete@collabora.co.uk>
Thu, 21 May 2009 23:16:11 +0000 (01:16 +0200)
committerWim Taymans <wim@metal.(none)>
Thu, 21 May 2009 23:16:11 +0000 (01:16 +0200)
Keep the signal handlers so they can be disconnected at release time

See #561752

gst/rtpmanager/gstrtpbin.c

index 9ab50888b2ff1714ff3a3e0bf4afa6b69b89c42b..977fd787607ffcc3e3a8a1aeee79e8c346420c8f 100644 (file)
@@ -297,6 +297,9 @@ struct _GstRtpBinStream
 
   /* the jitterbuffer of the SSRC */
   GstElement *buffer;
+  gulong buffer_handlesync_sig;
+  gulong buffer_ptreq_sig;
+  gulong buffer_ntpstop_sig;
 
   /* the PT demuxer of the SSRC */
   GstElement *demux;
@@ -1096,9 +1099,10 @@ create_stream (GstRtpBinSession * session, guint32 ssrc)
   session->streams = g_slist_prepend (session->streams, stream);
 
   /* provide clock_rate to the jitterbuffer when needed */
-  g_signal_connect (buffer, "request-pt-map",
+  stream->buffer_ptreq_sig = g_signal_connect (buffer, "request-pt-map",
       (GCallback) pt_map_requested, session);
-  g_signal_connect (buffer, "on-npt-stop", (GCallback) on_npt_stop, stream);
+  stream->buffer_ntpstop_sig = g_signal_connect (buffer, "on-npt-stop",
+      (GCallback) on_npt_stop, stream);
 
   /* configure latency and packet lost */
   g_object_set (buffer, "latency", session->bin->latency, NULL);
@@ -1950,7 +1954,7 @@ new_ssrc_pad_found (GstElement * element, guint ssrc, GstPad * pad,
 
   /* connect to the RTCP sync signal from the jitterbuffer */
   GST_DEBUG_OBJECT (rtpbin, "connecting sync signal");
-  g_signal_connect (stream->buffer,
+  stream->buffer_handlesync_sig = g_signal_connect (stream->buffer,
       "handle-sync", (GCallback) gst_rtp_bin_handle_sync, stream);
 
   /* connect to the new-pad signal of the payload demuxer, this will expose the