summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorJohan Sternerup <johast@axis.com>2021-05-03 10:45:42 +0200
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>2021-08-25 13:20:22 +0000
commit7f9bb150555606230f00b2caa0894243859f19d8 (patch)
treeeec31554c802562b38dbb57d3a527d8e6ed5c191 /ext
parent67a49be61fadaf264daf08619d66e92d86d9a333 (diff)
downloadgstreamer-plugins-bad-7f9bb150555606230f00b2caa0894243859f19d8.tar.gz
webrtcbin: Expose SCTP Transport
Being able to access the SCTP Transport object from the application means the application can access the associated DTLS Transport object and its ICE Transport object. This means we can observe the ICE state also for a data-channel-only session. The collated ice-connection-state on webrtcbin only includes the ICE Transport objects that resides on the RTP transceivers (which is exactly how it is specified in https://w3c.github.io/webrtc-pc/#rtciceconnectionstate-enum). For the consent freshness functionality (RFC 7675) to work the ICE state must be accessible and consequently the SCTP transport must be accessible for enabling consent freshness checking for a data-channel-only session. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2214>
Diffstat (limited to 'ext')
-rw-r--r--ext/webrtc/gstwebrtcbin.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/ext/webrtc/gstwebrtcbin.c b/ext/webrtc/gstwebrtcbin.c
index fdc53f52c..c6855fc7f 100644
--- a/ext/webrtc/gstwebrtcbin.c
+++ b/ext/webrtc/gstwebrtcbin.c
@@ -467,7 +467,8 @@ enum
PROP_BUNDLE_POLICY,
PROP_ICE_TRANSPORT_POLICY,
PROP_ICE_AGENT,
- PROP_LATENCY
+ PROP_LATENCY,
+ PROP_SCTP_TRANSPORT,
};
static guint gst_webrtc_bin_signals[LAST_SIGNAL] = { 0 };
@@ -6914,6 +6915,9 @@ gst_webrtc_bin_get_property (GObject * object, guint prop_id,
case PROP_LATENCY:
g_value_set_uint (value, webrtc->priv->jb_latency);
break;
+ case PROP_SCTP_TRANSPORT:
+ g_value_set_object (value, webrtc->priv->sctp_transport);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -7192,6 +7196,19 @@ gst_webrtc_bin_class_init (GstWebRTCBinClass * klass)
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
/**
+ * GstWebRTCBin:sctp-transport:
+ *
+ * The WebRTC SCTP Transport
+ *
+ * Since: 1.20
+ */
+ g_object_class_install_property (gobject_class,
+ PROP_SCTP_TRANSPORT,
+ g_param_spec_object ("sctp-transport", "WebRTC SCTP Transport",
+ "The WebRTC SCTP Transport",
+ GST_TYPE_OBJECT, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+
+ /**
* GstWebRTCBin::create-offer:
* @object: the #webrtcbin
* @options: (nullable): create-offer options