| Index: content/test/data/media/depth_stream_test_utilities.js
|
| diff --git a/content/test/data/media/depth_stream_test_utilities.js b/content/test/data/media/depth_stream_test_utilities.js
|
| index ab358f564be1f5afbfc2b19b350bd0dbd9e058f3..c48df6d08f9e3144fa051e6e03d8e80be4ba7a75 100644
|
| --- a/content/test/data/media/depth_stream_test_utilities.js
|
| +++ b/content/test/data/media/depth_stream_test_utilities.js
|
| @@ -32,80 +32,44 @@ function getFake16bitStream() {
|
| });
|
| }
|
|
|
| -function testVideoToImageBitmap(videoElementName, success, error)
|
| -{
|
| - var bitmaps = {};
|
| - var video = $(videoElementName);
|
| - var canvas = document.createElement('canvas');
|
| - canvas.width = 96;
|
| - canvas.height = 96;
|
| - document.body.appendChild(canvas);
|
| - var p1 = createImageBitmap(video).then(function(imageBitmap) {
|
| - return runImageBitmapTest(imageBitmap, canvas, false); });
|
| - var p2 = createImageBitmap(video,
|
| - {imageOrientation: "none", premultiplyAlpha: "premultiply"}).then(
|
| - function(imageBitmap) {
|
| - return runImageBitmapTest(imageBitmap, canvas, false); });
|
| - var p3 = createImageBitmap(video,
|
| - {imageOrientation: "none", premultiplyAlpha: "default"}).then(
|
| - function(imageBitmap) {
|
| - return runImageBitmapTest(imageBitmap, canvas, false); });
|
| - var p4 = createImageBitmap(video,
|
| - {imageOrientation: "none", premultiplyAlpha: "none"}).then(
|
| - function(imageBitmap) {
|
| - return runImageBitmapTest(imageBitmap, canvas, false); });
|
| - var p5 = createImageBitmap(video,
|
| - {imageOrientation: "flipY", premultiplyAlpha: "premultiply"}).then(
|
| - function(imageBitmap) {
|
| - return runImageBitmapTest(imageBitmap, canvas, true); });
|
| - var p6 = createImageBitmap(video,
|
| - {imageOrientation: "flipY", premultiplyAlpha: "default"}).then(
|
| - function(imageBitmap) {
|
| - return runImageBitmapTest(imageBitmap, canvas, true); });
|
| - var p7 = createImageBitmap(video,
|
| - {imageOrientation: "flipY", premultiplyAlpha: "none"}).then(
|
| - function(imageBitmap) {
|
| - return runImageBitmapTest(imageBitmap, canvas, true); });
|
| - return Promise.all([p1, p2, p3, p4, p5, p6, p7]).then(success(), reason => {
|
| - return error({name: reason});
|
| - });
|
| -}
|
| -
|
| -function runImageBitmapTest(bitmap, canvas, flipped) {
|
| - var context = canvas.getContext('2d');
|
| - context.drawImage(bitmap,0,0);
|
| - var imageData = context.getImageData(0, 0, canvas.width, canvas.height);
|
| - // Fake capture device 96x96 depth image is gradient. See also
|
| - // Draw16BitGradient in fake_video_capture_device.cc.
|
| - var color_step = 255.0 / (canvas.width + canvas.height);
|
| +// Data is RGBA array data and could be used with different formats:
|
| +// e.g. Uint8Array, Uint8ClampedArray, Float32Array...
|
| +// Value at point (row, column) is calculated as
|
| +// (top_left_value + (row + column) * step) % wrap_around. wrap_around is 255
|
| +// (for Uint8) or 1.0 for float. See FakeVideoCaptureDevice for details.
|
| +function verifyPixels(
|
| + data, width, height, flip_y, step, wrap_around, tolerance, test_name) {
|
| var rowsColumnsToCheck = [[1, 1],
|
| - [0, canvas.width - 1],
|
| - [canvas.height - 1, 0],
|
| - [canvas.height - 1, canvas.width - 1],
|
| - [canvas.height - 3, canvas.width - 4]];
|
| + [0, width - 1],
|
| + [height - 1, 0],
|
| + [height - 1, width - 1],
|
| + [height - 3, width - 3]];
|
|
|
| // Same value is expected for all color components.
|
| - if (imageData.data[0] != imageData.data[1] ||
|
| - imageData.data[0] != imageData.data[2])
|
| - return Promise.reject("Values " + imageData.data[0] + ", " +
|
| - imageData.data[1] + ", " + imageData.data[2] + " differ at top left");
|
| + if (data[0] != data[1] || data[0] != data[2]) {
|
| + return Promise.reject(test_name + ": values " + data[0] + ", " + data[1] +
|
| + ", " + data[2] + " differ at top left.");
|
| + }
|
|
|
| // Calculate all reference points based on top left and compare.
|
| for (var j = 0; j < rowsColumnsToCheck.length; ++j) {
|
| var row = rowsColumnsToCheck[j][0];
|
| var column = rowsColumnsToCheck[j][1];
|
| - var i = (canvas.width * row + column) * 4;
|
| - if (imageData.data[i] != imageData.data[i + 1] ||
|
| - imageData.data[i] != imageData.data[i + 2])
|
| - return Promise.reject("Values " + imageData.data[i] + ", " +
|
| - imageData.data[i + 1] + ", " + imageData.data[i + 2] +
|
| - " differ at index " + i);
|
| - var calculated = (imageData.data[0] +
|
| - color_step * ((flipped ? -row : row) + column)) % 255;
|
| - if (Math.abs(calculated - imageData.data[i]) > 2)
|
| - return Promise.reject("Reference value " + imageData.data[i] +
|
| - " differs from calculated: " + calculated + " at index " + i +
|
| - ". TopLeft value:" + imageData.data[0]);
|
| + var i = (width * row + column) * 4;
|
| + if (data[i] != data[i + 1] || data[i] != data[i + 2]) {
|
| + return Promise.reject(test_name + ": values " + data[i] + ", " +
|
| + data[i + 1] + ", " + data[i + 2] +
|
| + " differ at index " + i);
|
| + }
|
| + var calculated = (data[0] +
|
| + step * ((flip_y ? -row : row) + column)) % wrap_around;
|
| + if (Math.abs(calculated - data[i]) > tolerance) {
|
| + return Promise.reject(test_name + ": reference value " + data[i] +
|
| + " differs from calculated: " + calculated +
|
| + " at index (row, column) " + i + " (" + row + ", " + column +
|
| + "). TopLeft value:" + data[0] + ", step:" + step + ", flip_y:" +
|
| + flip_y);
|
| + }
|
| }
|
| return true;
|
| -}
|
| +}
|
|
|