blob: 34bc7d51f7ce8ce8330dfb301de500a5499051d7 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<title>video-orientation-canvas</title>
<script src="video-test.js"></script>
<script>
let redColor = new Uint8ClampedArray([210, 0, 0, 255]);
var context;
function arraysAreApproximatelyEqual(arrayString, expected, tolerance) {
try {
var observed = eval(arrayString);
} catch (ex) {
consoleWrite(ex);
return;
}
if (observed.length != expected.length) {
logResult(Failed, `EXPECTED (<em>${ arrayString }.length</em> == <em>${ expected.length }</em>, OBSERVED '<em>${ observed.length }</em>'`);
return;
}
for (var index in observed) {
if (Math.abs(observed[index] - expected[index]) <= tolerance)
continue;
logResult(Failed, `EXPECTED (<em>${ arrayString }</em> == <em>[${ expected }]</em>
with tolerance <em>${ tolerance }</em>, OBSERVED '<em>[${ observed }]</em>'`);
return;
}
logResult(true, `EXPECTED (<em>${ arrayString }</em> == <em>[${ expected }]</em> with tolerance <em>${ tolerance }</em>`)
}
window.addEventListener('load', async event => {
video1 = document.createElement('video');
video1.src = 'content/rotation-90.mp4';
await waitFor(video1, 'canplay', true);
let canvas1 = document.querySelector('#canvas1');
canvas1.width = video1.videoWidth;
canvas1.height = video1.videoHeight;
context = canvas1.getContext('2d');
context.drawImage(video1, 0, 0);
arraysAreApproximatelyEqual('context.getImageData(88, 115, 1, 1).data', redColor, 5);
video2 = document.createElement('video');
video2.src = 'content/rotation-180.mp4';
await waitFor(video2, 'canplay', true);
let canvas2 = document.querySelector('#canvas2');
canvas2.width = video2.videoWidth;
canvas2.height = video2.videoHeight;
context = canvas2.getContext('2d');
context.drawImage(video2, 0, 0);
arraysAreApproximatelyEqual('context.getImageData(237, 88, 1, 1).data', redColor, 5);
video3 = document.createElement('video');
video3.src = 'content/rotation-270.mp4';
await waitFor(video3, 'canplay', true);
let canvas3 = document.querySelector('#canvas3');
canvas3.width = video3.videoWidth;
canvas3.height = video3.videoHeight;
context = canvas3.getContext('2d');
context.drawImage(video3, 0, 0);
arraysAreApproximatelyEqual('context.getImageData(200, 237, 1, 1).data', redColor, 5);
endTest();
});
</script>
</head>
<body>
<canvas id=canvas1></canvas>
<canvas id=canvas2></canvas>
<canvas id=canvas3></canvas>
</body>
</html>