rtptransceiver: Store the SSRC of the current stream
authorOlivier Crête <olivier.crete@collabora.com>
Thu, 9 Jul 2020 17:42:35 +0000 (13:42 -0400)
committerOlivier Crête <olivier.crete@collabora.com>
Tue, 6 Oct 2020 20:49:08 +0000 (16:49 -0400)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1425>

ext/webrtc/gstwebrtcbin.c
ext/webrtc/webrtctransceiver.h

index 75d02a4..b054a72 100644 (file)
@@ -277,6 +277,14 @@ gst_webrtcbin_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
     GST_DEBUG_OBJECT (parent,
         "On %" GST_PTR_FORMAT " checking negotiation? %u, caps %"
         GST_PTR_FORMAT, pad, check_negotiation, caps);
+
+    if (check_negotiation) {
+      WebRTCTransceiver *trans = WEBRTC_TRANSCEIVER (wpad->trans);
+      const GstStructure *s;
+
+      s = gst_caps_get_structure (caps, 0);
+      gst_structure_get_uint (s, "ssrc", &trans->current_ssrc);
+    }
   } else if (GST_EVENT_TYPE (event) == GST_EVENT_EOS) {
     check_negotiation = TRUE;
   }
index c037304..f834fd3 100644 (file)
@@ -39,6 +39,7 @@ struct _WebRTCTransceiver
 
   TransportStream          *stream;
   GstStructure             *local_rtx_ssrc_map;
+  guint                     current_ssrc;
 
   /* Properties */
   GstWebRTCFECType         fec_type;