diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /dom/media/webrtc/tests/mochitests/test_peerConnection_twoAudioVideoStreamsCombined.html | |
parent | Initial commit. (diff) | |
download | thunderbird-upstream.tar.xz thunderbird-upstream.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/media/webrtc/tests/mochitests/test_peerConnection_twoAudioVideoStreamsCombined.html')
-rw-r--r-- | dom/media/webrtc/tests/mochitests/test_peerConnection_twoAudioVideoStreamsCombined.html | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/dom/media/webrtc/tests/mochitests/test_peerConnection_twoAudioVideoStreamsCombined.html b/dom/media/webrtc/tests/mochitests/test_peerConnection_twoAudioVideoStreamsCombined.html new file mode 100644 index 0000000000..fcc9c6c8fa --- /dev/null +++ b/dom/media/webrtc/tests/mochitests/test_peerConnection_twoAudioVideoStreamsCombined.html @@ -0,0 +1,70 @@ +<!DOCTYPE HTML> +<html> +<head> + <script type="application/javascript" src="pc.js"></script> + <script type="application/javascript" src="stats.js"></script> +</head> +<body> +<pre id="test"> +<script type="application/javascript"> + + createHTML({ + bug: "1091242", + title: "Multistream: Two audio/video streams" + }); + + runNetworkTest(async (options) => { + // Disable platform encodre for SW MFT encoder causes some stats + // exceeding the test thresholds. + // E.g. inbound-rtp.packetsDiscarded value=118 >= 100. + await matchPlatformH264CodecPrefs(); + + const test = new PeerConnectionTest(options); + test.setMediaConstraints([{audio: true, video: true}, + {audio: true, video: true}], + [{audio: true, video: true}, + {audio: true, video: true}]); + + // Test stats, including coalescing of codec stats. + test.chain.insertAfter("PC_LOCAL_WAIT_FOR_MEDIA_FLOW", + [PC_LOCAL_TEST_LOCAL_STATS]); + + test.chain.insertAfter("PC_REMOTE_WAIT_FOR_MEDIA_FLOW", + [PC_REMOTE_TEST_REMOTE_STATS]); + + const testCoalescedCodecStats = stats => { + is([...stats.values()].filter(({type}) => type.endsWith("rtp")).length, + 16, + "Expected: 4 outbound, 4 remote-inbound, 4 inbound, 4 remote-inbound"); + const codecs = [...stats.values()] + .filter(({type}) => type == "codec") + .sort((a, b) => a.mimeType > b.mimeType); + is(codecs.length, 2, "Should have registered two codecs (coalesced)"); + is(new Set(codecs.map(({transportId}) => transportId)).size, 1, + "Should have registered only one transport with BUNDLE"); + const codecTypes = new Set(codecs.map(({codecType}) => codecType)); + is(codecTypes.size, 1, + "Should have identical encode and decode configurations (and stats)"); + is(codecTypes[0], undefined, + "Should have identical encode and decode configurations (and stats)"); + is(codecs[0].mimeType.slice(0, 5), "audio", + "Should have registered an audio codec"); + is(codecs[1].mimeType.slice(0, 5), "video", + "Should have registered a video codec"); + }; + + test.chain.append([ + async function PC_LOCAL_TEST_COALESCED_CODEC_STATS() { + testCoalescedCodecStats(await test.pcLocal._pc.getStats()); + }, + async function PC_REMOTE_TEST_COALESCED_CODEC_STATS() { + testCoalescedCodecStats(await test.pcRemote._pc.getStats()); + }, + ]); + + return test.run(); + }); +</script> +</pre> +</body> +</html> |