haikuwebkit/LayoutTests/fast/mediastream/RTCPeerConnection-inspect-o...

701 lines
20 KiB
Plaintext
Raw Permalink Normal View History

[WebRTC][OpenWebRTC] Add support for SDP BUNDLE ("a:group:BUNDLE" and "a=bundle-only" lines) https://bugs.webkit.org/show_bug.cgi?id=170157 Reviewed by Alejandro G. Castro. Source/WebCore: This implements support on the SDPProcessor for generating an "a=group:BUNDLE" attribute with the MID identifiers specified in the bundle group in the most recent answer. It also implements support for generating "a=bundle-only" attributes on the "m=" sections of the SDP according to the bundlePolicy defined. Test: fast/mediastream/RTCPeerConnection-inspect-offer-bundlePolicy-bundle-only.html * Modules/mediastream/MediaEndpointPeerConnection.cpp: (WebCore::MediaEndpointPeerConnection::createOfferTask): (WebCore::MediaEndpointPeerConnection::createAnswerTask): * Modules/mediastream/SDPProcessor.cpp: (WebCore::getBundlePolicyName): (WebCore::configurationToJSON): * Modules/mediastream/sdp.js: (SDP.generate): * platform/mediastream/MediaEndpointSessionConfiguration.h: (WebCore::MediaEndpointSessionConfiguration::bundlePolicy): (WebCore::MediaEndpointSessionConfiguration::setBundlePolicy): (WebCore::MediaEndpointSessionConfiguration::clone): LayoutTests: The test fast/mediastream/RTCPeerConnection-inspect-offer-bundlePolicy-bundle-only.html is used to check that we generate the "a=bundle-only" lines on the "m=" sections according to the bundlePolicy. The 3 possible values of bundlePolicy are tested. To properly test bundlePolicy:"balanced" we generate 5 extra tracks (6 in total) for each one of the audio media type and video media type. * TestExpectations: Set RTCPeerConnection-inspect-offer-bundlePolicy-bundle-only.html as failing in the general TestExpectations, because the libwebrtc backend currently doesn't generate the expected a=bundle-only lines. On the GTK+ port TestExpectations file this is overriden, and the test is marked to pass. The whole fast/mediastream directory is already overriden to pass. * fast/mediastream/RTCPeerConnection-inspect-offer-bundlePolicy-bundle-only-expected.txt: Added. * fast/mediastream/RTCPeerConnection-inspect-offer-bundlePolicy-bundle-only.html: Added. * fast/mediastream/resources/sdp-utils.js: (printComparableSessionDescription): Validate the a=group:BUNDLE line to contain the required MID identifiers. * platform/gtk/fast/mediastream/RTCPeerConnection-inspect-answer-expected.txt: Added. Rebaseline with the expected a=group:BUNDLE line. * platform/gtk/fast/mediastream/RTCPeerConnection-inspect-offer-expected.txt: Added. Rebaseline with the expected a=group:BUNDLE line. Canonical link: https://commits.webkit.org/187441@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214960 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-04-05 19:14:36 +00:00
Inspect that the SDP offer contains the correct number of a=bundle-only lines according to the bundlePolicy value.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS Start promise chain for bundlePolicy: max-compat
PASS Generated SDP offer for bundlePolicy: max-compat
=== RTCSessionDescription ===
type: offer, sdp:
v=0
o=- {session-id:OK} 0 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE {bundle:OK}
a=msid-semantic:WMS {media-stream-id:OK}
m=audio 9 UDP/TLS/RTP/SAVPF 111 8 0
c=IN IP4 0.0.0.0
a=rtcp-mux
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:111 OPUS/48000/2
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=video 9 UDP/TLS/RTP/SAVPF 103 100 120
c=IN IP4 0.0.0.0
a=rtcp-mux
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:103 H264/90000
a=rtpmap:100 VP8/90000
a=rtpmap:120 RTX/90000
a=fmtp:103 packetization-mode=1
a=fmtp:120 apt=100;rtx-time=200
a=rtcp-fb:100 nack
a=rtcp-fb:103 nack pli
a=rtcp-fb:100 nack pli
a=rtcp-fb:103 ccm fir
a=rtcp-fb:100 ccm fir
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=audio 9 UDP/TLS/RTP/SAVPF 111 8 0
c=IN IP4 0.0.0.0
a=rtcp-mux
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:111 OPUS/48000/2
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=video 9 UDP/TLS/RTP/SAVPF 103 100 120
c=IN IP4 0.0.0.0
a=rtcp-mux
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:103 H264/90000
a=rtpmap:100 VP8/90000
a=rtpmap:120 RTX/90000
a=fmtp:103 packetization-mode=1
a=fmtp:120 apt=100;rtx-time=200
a=rtcp-fb:100 nack
a=rtcp-fb:103 nack pli
a=rtcp-fb:100 nack pli
a=rtcp-fb:103 ccm fir
a=rtcp-fb:100 ccm fir
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=audio 9 UDP/TLS/RTP/SAVPF 111 8 0
c=IN IP4 0.0.0.0
a=rtcp-mux
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:111 OPUS/48000/2
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=video 9 UDP/TLS/RTP/SAVPF 103 100 120
c=IN IP4 0.0.0.0
a=rtcp-mux
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:103 H264/90000
a=rtpmap:100 VP8/90000
a=rtpmap:120 RTX/90000
a=fmtp:103 packetization-mode=1
a=fmtp:120 apt=100;rtx-time=200
a=rtcp-fb:100 nack
a=rtcp-fb:103 nack pli
a=rtcp-fb:100 nack pli
a=rtcp-fb:103 ccm fir
a=rtcp-fb:100 ccm fir
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=audio 9 UDP/TLS/RTP/SAVPF 111 8 0
c=IN IP4 0.0.0.0
a=rtcp-mux
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:111 OPUS/48000/2
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=video 9 UDP/TLS/RTP/SAVPF 103 100 120
c=IN IP4 0.0.0.0
a=rtcp-mux
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:103 H264/90000
a=rtpmap:100 VP8/90000
a=rtpmap:120 RTX/90000
a=fmtp:103 packetization-mode=1
a=fmtp:120 apt=100;rtx-time=200
a=rtcp-fb:100 nack
a=rtcp-fb:103 nack pli
a=rtcp-fb:100 nack pli
a=rtcp-fb:103 ccm fir
a=rtcp-fb:100 ccm fir
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=audio 9 UDP/TLS/RTP/SAVPF 111 8 0
c=IN IP4 0.0.0.0
a=rtcp-mux
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:111 OPUS/48000/2
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=video 9 UDP/TLS/RTP/SAVPF 103 100 120
c=IN IP4 0.0.0.0
a=rtcp-mux
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:103 H264/90000
a=rtpmap:100 VP8/90000
a=rtpmap:120 RTX/90000
a=fmtp:103 packetization-mode=1
a=fmtp:120 apt=100;rtx-time=200
a=rtcp-fb:100 nack
a=rtcp-fb:103 nack pli
a=rtcp-fb:100 nack pli
a=rtcp-fb:103 ccm fir
a=rtcp-fb:100 ccm fir
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=audio 9 UDP/TLS/RTP/SAVPF 111 8 0
c=IN IP4 0.0.0.0
a=rtcp-mux
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:111 OPUS/48000/2
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=video 9 UDP/TLS/RTP/SAVPF 103 100 120
c=IN IP4 0.0.0.0
a=rtcp-mux
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:103 H264/90000
a=rtpmap:100 VP8/90000
a=rtpmap:120 RTX/90000
a=fmtp:103 packetization-mode=1
a=fmtp:120 apt=100;rtx-time=200
a=rtcp-fb:100 nack
a=rtcp-fb:103 nack pli
a=rtcp-fb:100 nack pli
a=rtcp-fb:103 ccm fir
a=rtcp-fb:100 ccm fir
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
===
PASS Generated SDP offer for bundlePolicy: max-compat. Got the expected number of a=bundle-only lines: 0
PASS Start promise chain for bundlePolicy: balanced
PASS Generated SDP offer for bundlePolicy: balanced
=== RTCSessionDescription ===
type: offer, sdp:
v=0
o=- {session-id:OK} 0 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE {bundle:OK}
a=msid-semantic:WMS {media-stream-id:OK}
m=audio 9 UDP/TLS/RTP/SAVPF 111 8 0
c=IN IP4 0.0.0.0
a=rtcp-mux
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:111 OPUS/48000/2
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=video 9 UDP/TLS/RTP/SAVPF 103 100 120
c=IN IP4 0.0.0.0
a=rtcp-mux
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:103 H264/90000
a=rtpmap:100 VP8/90000
a=rtpmap:120 RTX/90000
a=fmtp:103 packetization-mode=1
a=fmtp:120 apt=100;rtx-time=200
a=rtcp-fb:100 nack
a=rtcp-fb:103 nack pli
a=rtcp-fb:100 nack pli
a=rtcp-fb:103 ccm fir
a=rtcp-fb:100 ccm fir
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=audio 9 UDP/TLS/RTP/SAVPF 111 8 0
c=IN IP4 0.0.0.0
a=rtcp-mux
a=bundle-only
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:111 OPUS/48000/2
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=video 9 UDP/TLS/RTP/SAVPF 103 100 120
c=IN IP4 0.0.0.0
a=rtcp-mux
a=bundle-only
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:103 H264/90000
a=rtpmap:100 VP8/90000
a=rtpmap:120 RTX/90000
a=fmtp:103 packetization-mode=1
a=fmtp:120 apt=100;rtx-time=200
a=rtcp-fb:100 nack
a=rtcp-fb:103 nack pli
a=rtcp-fb:100 nack pli
a=rtcp-fb:103 ccm fir
a=rtcp-fb:100 ccm fir
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=audio 9 UDP/TLS/RTP/SAVPF 111 8 0
c=IN IP4 0.0.0.0
a=rtcp-mux
a=bundle-only
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:111 OPUS/48000/2
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=video 9 UDP/TLS/RTP/SAVPF 103 100 120
c=IN IP4 0.0.0.0
a=rtcp-mux
a=bundle-only
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:103 H264/90000
a=rtpmap:100 VP8/90000
a=rtpmap:120 RTX/90000
a=fmtp:103 packetization-mode=1
a=fmtp:120 apt=100;rtx-time=200
a=rtcp-fb:100 nack
a=rtcp-fb:103 nack pli
a=rtcp-fb:100 nack pli
a=rtcp-fb:103 ccm fir
a=rtcp-fb:100 ccm fir
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=audio 9 UDP/TLS/RTP/SAVPF 111 8 0
c=IN IP4 0.0.0.0
a=rtcp-mux
a=bundle-only
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:111 OPUS/48000/2
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=video 9 UDP/TLS/RTP/SAVPF 103 100 120
c=IN IP4 0.0.0.0
a=rtcp-mux
a=bundle-only
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:103 H264/90000
a=rtpmap:100 VP8/90000
a=rtpmap:120 RTX/90000
a=fmtp:103 packetization-mode=1
a=fmtp:120 apt=100;rtx-time=200
a=rtcp-fb:100 nack
a=rtcp-fb:103 nack pli
a=rtcp-fb:100 nack pli
a=rtcp-fb:103 ccm fir
a=rtcp-fb:100 ccm fir
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=audio 9 UDP/TLS/RTP/SAVPF 111 8 0
c=IN IP4 0.0.0.0
a=rtcp-mux
a=bundle-only
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:111 OPUS/48000/2
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=video 9 UDP/TLS/RTP/SAVPF 103 100 120
c=IN IP4 0.0.0.0
a=rtcp-mux
a=bundle-only
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:103 H264/90000
a=rtpmap:100 VP8/90000
a=rtpmap:120 RTX/90000
a=fmtp:103 packetization-mode=1
a=fmtp:120 apt=100;rtx-time=200
a=rtcp-fb:100 nack
a=rtcp-fb:103 nack pli
a=rtcp-fb:100 nack pli
a=rtcp-fb:103 ccm fir
a=rtcp-fb:100 ccm fir
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=audio 9 UDP/TLS/RTP/SAVPF 111 8 0
c=IN IP4 0.0.0.0
a=rtcp-mux
a=bundle-only
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:111 OPUS/48000/2
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=video 9 UDP/TLS/RTP/SAVPF 103 100 120
c=IN IP4 0.0.0.0
a=rtcp-mux
a=bundle-only
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:103 H264/90000
a=rtpmap:100 VP8/90000
a=rtpmap:120 RTX/90000
a=fmtp:103 packetization-mode=1
a=fmtp:120 apt=100;rtx-time=200
a=rtcp-fb:100 nack
a=rtcp-fb:103 nack pli
a=rtcp-fb:100 nack pli
a=rtcp-fb:103 ccm fir
a=rtcp-fb:100 ccm fir
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
===
PASS Generated SDP offer for bundlePolicy: balanced. Got the expected number of a=bundle-only lines: 10
PASS Start promise chain for bundlePolicy: max-bundle
PASS Generated SDP offer for bundlePolicy: max-bundle
=== RTCSessionDescription ===
type: offer, sdp:
v=0
o=- {session-id:OK} 0 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE {bundle:OK}
a=msid-semantic:WMS {media-stream-id:OK}
m=audio 9 UDP/TLS/RTP/SAVPF 111 8 0
c=IN IP4 0.0.0.0
a=rtcp-mux
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:111 OPUS/48000/2
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=video 9 UDP/TLS/RTP/SAVPF 103 100 120
c=IN IP4 0.0.0.0
a=rtcp-mux
a=bundle-only
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:103 H264/90000
a=rtpmap:100 VP8/90000
a=rtpmap:120 RTX/90000
a=fmtp:103 packetization-mode=1
a=fmtp:120 apt=100;rtx-time=200
a=rtcp-fb:100 nack
a=rtcp-fb:103 nack pli
a=rtcp-fb:100 nack pli
a=rtcp-fb:103 ccm fir
a=rtcp-fb:100 ccm fir
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=audio 9 UDP/TLS/RTP/SAVPF 111 8 0
c=IN IP4 0.0.0.0
a=rtcp-mux
a=bundle-only
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:111 OPUS/48000/2
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=video 9 UDP/TLS/RTP/SAVPF 103 100 120
c=IN IP4 0.0.0.0
a=rtcp-mux
a=bundle-only
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:103 H264/90000
a=rtpmap:100 VP8/90000
a=rtpmap:120 RTX/90000
a=fmtp:103 packetization-mode=1
a=fmtp:120 apt=100;rtx-time=200
a=rtcp-fb:100 nack
a=rtcp-fb:103 nack pli
a=rtcp-fb:100 nack pli
a=rtcp-fb:103 ccm fir
a=rtcp-fb:100 ccm fir
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=audio 9 UDP/TLS/RTP/SAVPF 111 8 0
c=IN IP4 0.0.0.0
a=rtcp-mux
a=bundle-only
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:111 OPUS/48000/2
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=video 9 UDP/TLS/RTP/SAVPF 103 100 120
c=IN IP4 0.0.0.0
a=rtcp-mux
a=bundle-only
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:103 H264/90000
a=rtpmap:100 VP8/90000
a=rtpmap:120 RTX/90000
a=fmtp:103 packetization-mode=1
a=fmtp:120 apt=100;rtx-time=200
a=rtcp-fb:100 nack
a=rtcp-fb:103 nack pli
a=rtcp-fb:100 nack pli
a=rtcp-fb:103 ccm fir
a=rtcp-fb:100 ccm fir
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=audio 9 UDP/TLS/RTP/SAVPF 111 8 0
c=IN IP4 0.0.0.0
a=rtcp-mux
a=bundle-only
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:111 OPUS/48000/2
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=video 9 UDP/TLS/RTP/SAVPF 103 100 120
c=IN IP4 0.0.0.0
a=rtcp-mux
a=bundle-only
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:103 H264/90000
a=rtpmap:100 VP8/90000
a=rtpmap:120 RTX/90000
a=fmtp:103 packetization-mode=1
a=fmtp:120 apt=100;rtx-time=200
a=rtcp-fb:100 nack
a=rtcp-fb:103 nack pli
a=rtcp-fb:100 nack pli
a=rtcp-fb:103 ccm fir
a=rtcp-fb:100 ccm fir
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=audio 9 UDP/TLS/RTP/SAVPF 111 8 0
c=IN IP4 0.0.0.0
a=rtcp-mux
a=bundle-only
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:111 OPUS/48000/2
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=video 9 UDP/TLS/RTP/SAVPF 103 100 120
c=IN IP4 0.0.0.0
a=rtcp-mux
a=bundle-only
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:103 H264/90000
a=rtpmap:100 VP8/90000
a=rtpmap:120 RTX/90000
a=fmtp:103 packetization-mode=1
a=fmtp:120 apt=100;rtx-time=200
a=rtcp-fb:100 nack
a=rtcp-fb:103 nack pli
a=rtcp-fb:100 nack pli
a=rtcp-fb:103 ccm fir
a=rtcp-fb:100 ccm fir
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=audio 9 UDP/TLS/RTP/SAVPF 111 8 0
c=IN IP4 0.0.0.0
a=rtcp-mux
a=bundle-only
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:111 OPUS/48000/2
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
m=video 9 UDP/TLS/RTP/SAVPF 103 100 120
c=IN IP4 0.0.0.0
a=rtcp-mux
a=bundle-only
a=sendrecv
a=mid:{mid:OK}
a=rtpmap:103 H264/90000
a=rtpmap:100 VP8/90000
a=rtpmap:120 RTX/90000
a=fmtp:103 packetization-mode=1
a=fmtp:120 apt=100;rtx-time=200
a=rtcp-fb:100 nack
a=rtcp-fb:103 nack pli
a=rtcp-fb:100 nack pli
a=rtcp-fb:103 ccm fir
a=rtcp-fb:100 ccm fir
a=ssrc:{ssrc:OK} cname:{cname:OK}
a=msid:{media-stream-id:OK} {media-stream-track-id:OK}
a=ice-ufrag:{ice-ufrag:OK}
a=ice-pwd:{ice-password:OK}
a=fingerprint:sha-256 8B:87:09:8A:5D:C2:F3:33:EF:C5:B1:F6:84:3A:3D:D6:A3:E2:9C:17:4C:E7:46:3B:1B:CE:84:98:DD:8E:AF:7B
a=setup:actpass
===
PASS Generated SDP offer for bundlePolicy: max-bundle. Got the expected number of a=bundle-only lines: 11
PASS Tested the following bundlePolicy values: max-compat balanced max-bundle
PASS successfullyParsed is true
TEST COMPLETE