diff options
author | Matthew Waters <matthew@centricular.com> | 2020-05-01 00:47:53 +1000 |
---|---|---|
committer | GStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2020-05-01 03:13:46 +0000 |
commit | ce9b41f5d4443cdf4825ec3e23794471ce4d6ba6 (patch) | |
tree | 98a34799cc7dcdae54d0dd4b9cecf4c6ec0611d7 /ext/webrtc/webrtcsdp.c | |
parent | 2510052d124288abb3c282eccc1a3b641e040990 (diff) | |
download | gstreamer-plugins-bad-ce9b41f5d4443cdf4825ec3e23794471ce4d6ba6.tar.gz |
webrtcbin: fix bundle none case with remote offer bundling
If the remote is bundling, but we are not and remote is offering.
we cannot put the remote media sections into a bundled transport as that
is not how we are going to respond.
This specific failure case was that the remote ICE credentials were
never set on the ice stream and so ice connectivity would fail.
Technically, this whole bunde-policy=none handling should be removed
eventually when we implement bundle-policy=balanced. Until such time,
we have this workaround.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1231>
Diffstat (limited to 'ext/webrtc/webrtcsdp.c')
-rw-r--r-- | ext/webrtc/webrtcsdp.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/ext/webrtc/webrtcsdp.c b/ext/webrtc/webrtcsdp.c index c6cdf0414..a93a1068e 100644 --- a/ext/webrtc/webrtcsdp.c +++ b/ext/webrtc/webrtcsdp.c @@ -919,3 +919,19 @@ _get_bundle_index (GstSDPMessage * sdp, GStrv bundled, guint * idx) return ret; } + +gboolean +_media_is_bundle_only (const GstSDPMedia * media) +{ + int i; + + for (i = 0; i < gst_sdp_media_attributes_len (media); i++) { + const GstSDPAttribute *attr = gst_sdp_media_get_attribute (media, i); + + if (g_strcmp0 (attr->key, "bundle-only") == 0) { + return TRUE; + } + } + + return FALSE; +} |