summaryrefslogtreecommitdiffstats
path: root/dom/media/webrtc/tests/mochitests/test_peerConnection_setParameters_maxFramerate.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/media/webrtc/tests/mochitests/test_peerConnection_setParameters_maxFramerate.html')
-rw-r--r--dom/media/webrtc/tests/mochitests/test_peerConnection_setParameters_maxFramerate.html63
1 files changed, 63 insertions, 0 deletions
diff --git a/dom/media/webrtc/tests/mochitests/test_peerConnection_setParameters_maxFramerate.html b/dom/media/webrtc/tests/mochitests/test_peerConnection_setParameters_maxFramerate.html
new file mode 100644
index 0000000000..8047719775
--- /dev/null
+++ b/dom/media/webrtc/tests/mochitests/test_peerConnection_setParameters_maxFramerate.html
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <script type="application/javascript" src="pc.js"></script>
+</head>
+<body>
+<pre id="test">
+<script type="application/javascript">
+createHTML({
+ bug: "1611957",
+ title: "Live-updating maxFramerate"
+});
+
+let sender, receiver;
+
+async function checkMaxFrameRate(rate) {
+ const parameters = sender.getParameters();
+ parameters.encodings[0].maxFramerate = rate;
+ await sender.setParameters(parameters);
+ await wait(2000);
+ const stats = Array.from((await receiver.getStats()).values());
+ const inboundRtp = stats.find(stat => stat.type == "inbound-rtp");
+ info(`inbound-rtp stats: ${JSON.stringify(inboundRtp)}`);
+ const fps = inboundRtp.framesPerSecond;
+ ok(fps <= (rate * 1.1) + 1,
+ `fps is an appropriate value (${fps}) for rate (${rate})`);
+}
+
+runNetworkTest(async function (options) {
+ let test = new PeerConnectionTest(options);
+ test.setMediaConstraints([{video: true}], []);
+ test.chain.append([
+ function CHECK_PRECONDITIONS() {
+ is(test.pcLocal._pc.getSenders().length, 1,
+ "Should have 1 local sender");
+ is(test.pcRemote._pc.getReceivers().length, 1,
+ "Should have 1 remote receiver");
+
+ sender = test.pcLocal._pc.getSenders()[0];
+ receiver = test.pcRemote._pc.getReceivers()[0];
+ },
+ function PC_LOCAL_SET_MAX_FRAMERATE_2() {
+ return checkMaxFrameRate(2);
+ },
+ function PC_LOCAL_SET_MAX_FRAMERATE_4() {
+ return checkMaxFrameRate(4);
+ },
+ function PC_LOCAL_SET_MAX_FRAMERATE_15() {
+ return checkMaxFrameRate(15);
+ },
+ function PC_LOCAL_SET_MAX_FRAMERATE_8() {
+ return checkMaxFrameRate(8);
+ },
+ function PC_LOCAL_SET_MAX_FRAMERATE_1() {
+ return checkMaxFrameRate(1);
+ },
+ ]);
+ await test.run();
+});
+</script>
+</pre>
+</body>
+</html>