Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(207)

Unified Diff: content/test/data/media/depth_stream_test_utilities.js

Issue 2476693002: WebGL & 16-bit video stream: upload to FLOAT texture. (Closed)
Patch Set: Nits. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
-}
+}

Powered by Google App Engine
This is Rietveld 408576698