<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Adapt camera track framerate</title>
    <script src="../../resources/testharness.js"></script>
    <script src="../../resources/testharnessreport.js"></script>
    <script src ="../../webrtc/routines.js"></script>
</head>
<body>
    <video autoplay id="video"></video>
    <script>
promise_test(async (t) => {
    const stream1 = await navigator.mediaDevices.getUserMedia({ video: { width: 720, frameRate : 30 } });
    const stream2 = stream1.clone();

    await stream2.getVideoTracks()[0].applyConstraints({ width : 160, frameRate : 5 });

    // We adapt frame rate after 1 second of samples.
    await new Promise(resolve => setTimeout(resolve, 1000));

    let frameRate = await computeFrameRate(stream1, video);

    // On heavily loaded bots, our mock capture source might not be able to deliver 30 fps. Our test only makes sense if we have sufficient fps.
    if (frameRate <= 10)
        return;

    assert_greater_than(frameRate, 10, "stream1 frame rate above 10");
    assert_less_than(frameRate, 60, "stream1 frame rate below 60");

    frameRate = await computeFrameRate(stream2, video);
    assert_greater_than(frameRate, 1, "stream2 frame rate above 1");
    assert_less_than(frameRate, 10, "stream2 frame rate below 10");
}, "clone and applyConstraints to decrease frame rate");
    </script>
</body>
</html>
