blob: c6dbd7a955febb6d76221c25887ddf215c3ad399 [file] [edit]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
</head>
<body>
<video id="video" width=320></video>
<script>
promise_test(async (test) => {
test.add_cleanup(() => {
video.srcObject.getVideoTracks()[0].stop();
});
video.srcObject = await navigator.mediaDevices.getUserMedia({ video: { powerEfficient: true, facingMode: "user" } });
const track = video.srcObject.getVideoTracks()[0];
assert_array_equals(track.getCapabilities().powerEfficient, [false]);
assert_false(track.getSettings().powerEfficient);
}, "Selecting a non power efficient source");
promise_test(async (test) => {
test.add_cleanup(() => {
video.srcObject.getVideoTracks()[0].stop();
});
video.srcObject = await navigator.mediaDevices.getUserMedia({ video: { powerEfficient: false, facingMode: "environment" } });
const track = video.srcObject.getVideoTracks()[0];
assert_equals(track.getSettings().width, 640);
assert_equals(track.getSettings().height, 480);
assert_array_equals(track.getCapabilities().powerEfficient, [false, true]);
assert_false(track.getSettings().powerEfficient);
}, "Selecting a non power efficient preset");
promise_test(async (test) => {
test.add_cleanup(() => {
video.srcObject.getVideoTracks()[0].stop();
});
video.srcObject = await navigator.mediaDevices.getUserMedia({ video: { powerEfficient: true, facingMode: "environment" } });
const track = video.srcObject.getVideoTracks()[0];
assert_equals(track.getSettings().width, 640);
assert_equals(track.getSettings().height, 360);
await video.play();
assert_array_equals(track.getCapabilities().powerEfficient, [false, true]);
assert_equals(true, track.getSettings().powerEfficient);
}, "Selecting a power efficient preset");
promise_test(async (test) => {
test.add_cleanup(() => {
video.srcObject.getVideoTracks()[0].stop();
stream.getVideoTracks()[0].stop();
stream2.getVideoTracks()[0].stop();
});
const stream = await navigator.mediaDevices.getUserMedia({ video: { powerEfficient: true, facingMode: "environment" } });
const stream2 = stream.clone();
await stream2.getVideoTracks()[0].applyConstraints({ width: 1000 });
video.srcObject = stream.clone();
await video.srcObject.getVideoTracks()[0].applyConstraints({ width: 1920 });
await video.play();
assert_array_equals(stream.getVideoTracks()[0].getCapabilities().powerEfficient, [false, true]);
assert_true(stream.getVideoTracks()[0].getSettings().powerEfficient, "first track");
assert_true(stream2.getVideoTracks()[0].getSettings().powerEfficient, "second track");
assert_true(video.srcObject.getVideoTracks()[0].getSettings().powerEfficient);
}, "Selecting a power efficient preset and check clones");
</script>
</body>
</html>