webrtc: improve matching on the correct jitterbuffer
authorMatthew Waters <matthew@centricular.com>
Thu, 6 May 2021 12:22:12 +0000 (22:22 +1000)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Mon, 16 Aug 2021 16:15:44 +0000 (16:15 +0000)
commit18314764fc53a0267935472e2e505f7b04139b31
treeed79dc5aca8f2e73e74f56e988295c9c2660403c
parentfbf6bfd4d8270d110ad6a8657d3b0879994d524b
webrtc: improve matching on the correct jitterbuffer

The mapping between an RTP session and the SDP m= line is not always the
same, especially when BUNDLEing is used.

This causes a failure in a specific case where if when bundling,
if mline 0 is a data channel, and mline 1 an audio/video section,
then retrieving the transceiver at mline 0 (rtp session used) will fail
and cause an assertion.

This fix is actually potentially a regression for cases where the remote
part does not provide the a=ssrc: media level SDP attributes as is now
becoming common, especially when simulcast is involved.

The correct fix actually requires reading out header extensions as used
with bundle for signalling in the actual data, what media and therefore
transceiver is being used.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2467>
ext/webrtc/gstwebrtcbin.c