File: test_peerConnection_setParameters_maxFramerate.html

package info (click to toggle)
thunderbird 1%3A128.14.0esr-1~deb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 4,334,824 kB
  • sloc: cpp: 7,391,917; javascript: 5,617,271; ansic: 3,833,216; python: 1,230,742; xml: 619,690; asm: 456,022; java: 179,892; sh: 118,796; makefile: 21,908; perl: 14,825; objc: 12,399; yacc: 4,583; pascal: 2,973; lex: 1,720; ruby: 1,190; exp: 762; sql: 674; awk: 580; php: 436; lisp: 430; sed: 70; csh: 10
file content (63 lines) | stat: -rw-r--r-- 1,784 bytes parent folder | download | duplicates (18)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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>