blob: 7505ce08c345a030d7492e29b9b03ba1cd640a4f [file] [edit]
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Testing video rotation</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../webrtc/routines.js"></script>
</head>
<body>
<video id=video autoplay playsInline controls></video>
<script>
async function testRotation(testName)
{
if (!window.testRunner)
return;
testRunner.setMockCameraOrientation(90, internals.mediaStreamTrackPersistentId(video.srcObject.getVideoTracks()[0]));
await waitForVideoSize(video, 200, 400, testName + " 90");
testRunner.setMockCameraOrientation(0, internals.mediaStreamTrackPersistentId(video.srcObject.getVideoTracks()[0]));
await waitForVideoSize(video, 400, 200, testName + " 0");
}
promise_test(async test => {
video.srcObject = await navigator.mediaDevices.getUserMedia({video: {width: 400, height: 200} });
test.add_cleanup(() => video.srcObject.getTracks().forEach(track => track.stop()));
await video.play();
const clone = video.srcObject.getVideoTracks()[0].clone();
await testRotation("before clone stopped");
clone.stop();
await new Promise(resolve => setTimeout(resolve, 500));
await testRotation("after clone stopped");
}, "Stopping a track clone should not prevent rotation handling");
</script>
</body>
</html>