Diff
Modified: trunk/LayoutTests/ChangeLog (275197 => 275198)
--- trunk/LayoutTests/ChangeLog 2021-03-30 06:35:13 UTC (rev 275197)
+++ trunk/LayoutTests/ChangeLog 2021-03-30 07:23:54 UTC (rev 275198)
@@ -1,3 +1,27 @@
+2021-03-30 Kimmo Kinnunen <[email protected]>
+
+ Update WebGL conformance test suite 2021-03-24
+ https://bugs.webkit.org/show_bug.cgi?id=223736
+
+ Reviewed by Dean Jackson.
+
+ To commit 44ac38b3b23be26fa8812334ec3e9bf67ecb5a9f Fix whitespace by rerunning IDL extraction scripts. (#3265)
+ As per it looks like there's been a significant recent regression in the video-related conformance tests
+ in the test suite.
+
+ * webgl/2.0.y/conformance2/textures/misc/immutable-tex-render-feedback-expected.txt: Added.
+ * webgl/2.0.y/conformance2/textures/misc/immutable-tex-render-feedback.html: Added.
+ * webgl/resources/webgl_test_files/conformance/extensions/webgl-webcodecs-video-frame.html:
+ * webgl/resources/webgl_test_files/conformance/textures/misc/video-rotation.html:
+ * webgl/resources/webgl_test_files/conformance2/extensions/oes-draw-buffers-indexed.html:
+ * webgl/resources/webgl_test_files/conformance2/textures/misc/immutable-tex-render-feedback.html: Added.
+ * webgl/resources/webgl_test_files/js/webgl-test-utils.js:
+ (destroyContext):
+ * webgl/resources/webgl_test_files/resources/video-rotation-0.vp9.mp4: Added.
+ * webgl/resources/webgl_test_files/resources/video-rotation-180.vp9.mp4: Added.
+ * webgl/resources/webgl_test_files/resources/video-rotation-270.vp9.mp4: Added.
+ * webgl/resources/webgl_test_files/resources/video-rotation-90.vp9.mp4: Added.
+
2021-03-29 Amir Mark Jr <[email protected]>
[MacOS Debug] http/tests/security/contentSecurityPolicy/frame-src-cross-origin-load.html is a flakey failure
Added: trunk/LayoutTests/webgl/2.0.y/conformance2/textures/misc/immutable-tex-render-feedback-expected.txt (0 => 275198)
--- trunk/LayoutTests/webgl/2.0.y/conformance2/textures/misc/immutable-tex-render-feedback-expected.txt (rev 0)
+++ trunk/LayoutTests/webgl/2.0.y/conformance2/textures/misc/immutable-tex-render-feedback-expected.txt 2021-03-30 07:23:54 UTC (rev 275198)
@@ -0,0 +1,4 @@
+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
+
+Test: ../../../../resources/webgl_test_files/conformance2/textures/misc/immutable-tex-render-feedback.html?webglVersion=2
+[ PASS ] All tests passed
Added: trunk/LayoutTests/webgl/2.0.y/conformance2/textures/misc/immutable-tex-render-feedback.html (0 => 275198)
--- trunk/LayoutTests/webgl/2.0.y/conformance2/textures/misc/immutable-tex-render-feedback.html (rev 0)
+++ trunk/LayoutTests/webgl/2.0.y/conformance2/textures/misc/immutable-tex-render-feedback.html 2021-03-30 07:23:54 UTC (rev 275198)
@@ -0,0 +1,18 @@
+<!-- This file is auto-generated by Tools/Scripts/update-webgl-conformance-tests. DO NOT EDIT -->
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>WebGL Conformance Test Wrapper for immutable-tex-render-feedback.html</title>
+<script type="text/_javascript_" src=""
+<script type="text/_javascript_" src=""
+</head>
+<body>
+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p>
+Test: <a href=""
+<div id="iframe">
+<iframe src="" width="800" height="600"></iframe>
+</div>
+<div id="result"></div>
+</body>
+</html>
Modified: trunk/LayoutTests/webgl/resources/webgl_test_files/conformance/extensions/webgl-webcodecs-video-frame.html (275197 => 275198)
--- trunk/LayoutTests/webgl/resources/webgl_test_files/conformance/extensions/webgl-webcodecs-video-frame.html 2021-03-30 06:35:13 UTC (rev 275197)
+++ trunk/LayoutTests/webgl/resources/webgl_test_files/conformance/extensions/webgl-webcodecs-video-frame.html 2021-03-30 07:23:54 UTC (rev 275198)
@@ -91,7 +91,7 @@
let fps = 60;
let pending_outputs = 0;
let stream = cnv.captureStream(fps);
- let vtr = new VideoTrackReader(stream.getVideoTracks()[0]);
+ let processor = new MediaStreamTrackProcessor(stream.getVideoTracks()[0]);
const init = {
output: (chunk) => {
@@ -117,14 +117,24 @@
let encoder = new VideoEncoder(init);
encoder.configure(config);
- vtr.start((frame) => {
+ const frame_reader = processor.readable.getReader();
+ frame_reader.read().then(function processFrame({done, value}) {
+ if (done)
+ return;
+
if (pending_outputs > 30) {
console.log("drop this frame");
// Too many frames in flight, encoder is overwhelmed
// let's drop this frame.
+ value.close();
+ frame_reader.read().then(processFrame);
return;
}
- if (frame_counter == kMaxFrame) {
+
+ if(frame_counter == kMaxFrame) {
+ frame_reader.releaseLock();
+ processor.readable.cancel();
+ value.close();
return;
}
@@ -131,7 +141,9 @@
frame_counter++;
pending_outputs++;
const insert_keyframe = (frame_counter % 150) == 0;
- encoder.encode(frame, { keyFrame: insert_keyframe });
+ encoder.encode(value, { keyFrame: insert_keyframe });
+
+ frame_reader.read().then(processFrame);
});
}
Modified: trunk/LayoutTests/webgl/resources/webgl_test_files/conformance/textures/misc/video-rotation.html (275197 => 275198)
--- trunk/LayoutTests/webgl/resources/webgl_test_files/conformance/textures/misc/video-rotation.html 2021-03-30 06:35:13 UTC (rev 275197)
+++ trunk/LayoutTests/webgl/resources/webgl_test_files/conformance/textures/misc/video-rotation.html 2021-03-30 07:23:54 UTC (rev 275198)
@@ -29,7 +29,7 @@
let gl = wtu.create3DContext(canvas);
let program = tiu.setupTexturedQuad(gl, gl.RGBA);
const resourcePath = "../../../resources/";
- const tolerance = 5;
+ const tolerance = 10;
const expectedColors = {
top: { location: [0.5, 0.25], color: [255, 0, 0] },
@@ -89,11 +89,12 @@
return;
}
- const type = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"';
- if (!video.canPlayType(type).replace(/no/, '')) {
- debug(type + " unsupported");
+ let supports_h264 = !!video.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/no/, '');
+ let supports_vp9 = !!video.canPlayType('video/mp4; codecs="vp09.00.10.08"').replace(/no/, '');
+ if (!supports_h264 && !supports_vp9) {
+ testFailed("No supported video types.");
return;
- };
+ }
let tex = gl.createTexture();
// Bind the texture to the default texture unit 0
@@ -107,29 +108,46 @@
// These files were created by converting exif-orientation-test-1-normal.jpg to mp4
// files, rotating them using the transpose filter, and adding rotate metadata, all
// using the ffmpeg command-line tool.
+ //
+ // From sdk/tests/resources/ directory:
+ //
// 0:
- // ffmpeg -noautorotate -i sdk/tests/resources/exif-orientation-test-1-normal.jpg -pix_fmt yuv420p temp.mp4 &&
- // ffmpeg -i temp.mp4 -c copy -metadata:s:v:0 rotate=0 sdk/tests/resources/video-rotation-0.mp
+ // ffmpeg -noautorotate -i exif-orientation-test-1-normal.jpg -pix_fmt yuv420p -y temp.mp4 &&
+ // ffmpeg -i temp.mp4 -c copy -metadata:s:v:0 rotate=0 video-rotation-0.mp4
+ // ffmpeg -noautorotate -i exif-orientation-test-1-normal.jpg -pix_fmt yuv420p -crf 0 -vcodec libvpx-vp9 -y temp.mp4 &&
+ // ffmpeg -i temp.mp4 -c copy -metadata:s:v:0 rotate=0 video-rotation-0.vp9.mp4
// 90:
- // ffmpeg -noautorotate -i sdk/tests/resources/exif-orientation-test-1-normal.jpg -vf "transpose=2" -pix_fmt yuv420p temp.mp4 &&
- // ffmpeg -i temp.mp4 -c copy -metadata:s:v:0 rotate=270 sdk/tests/resources/video-rotation-90.mp4
+ // ffmpeg -noautorotate -i exif-orientation-test-1-normal.jpg -vf "transpose=2" -pix_fmt yuv420p -y temp.mp4 &&
+ // ffmpeg -i temp.mp4 -c copy -metadata:s:v:0 rotate=270 video-rotation-90.mp4
+ // ffmpeg -noautorotate -i exif-orientation-test-1-normal.jpg -vf "transpose=2" -pix_fmt yuv420p -crf 0 -vcodec libvpx-vp9 -y temp.mp4 &&
+ // ffmpeg -i temp.mp4 -c copy -metadata:s:v:0 rotate=270 video-rotation-90.vp9.mp4
// 180:
- // ffmpeg -noautorotate -i sdk/tests/resources/exif-orientation-test-1-normal.jpg -vf "transpose=2,transpose=2" -pix_fmt yuv420p temp.mp4 &&
- // ffmpeg -i temp.mp4 -c copy -metadata:s:v:0 rotate=180 sdk/tests/resources/video-rotation-180.mp4
+ // ffmpeg -noautorotate -i exif-orientation-test-1-normal.jpg -vf "transpose=2,transpose=2" -pix_fmt yuv420p -y temp.mp4 &&
+ // ffmpeg -i temp.mp4 -c copy -metadata:s:v:0 rotate=180 video-rotation-180.mp4
+ // ffmpeg -noautorotate -i exif-orientation-test-1-normal.jpg -vf "transpose=2,transpose=2" -pix_fmt yuv420p -crf 0 -vcodec libvpx-vp9 -y temp.mp4 &&
+ // ffmpeg -i temp.mp4 -c copy -metadata:s:v:0 rotate=180 video-rotation-180.vp9.mp4
// 270:
- // ffmpeg -noautorotate -i sdk/tests/resources/exif-orientation-test-1-normal.jpg -vf "transpose=1" -pix_fmt yuv420p temp.mp4 &&
- // ffmpeg -i temp.mp4 -c copy -metadata:s:v:0 rotate=90 sdk/tests/resources/video-rotation-270.mp4
+ // ffmpeg -noautorotate -i exif-orientation-test-1-normal.jpg -vf "transpose=1" -pix_fmt yuv420p -y temp.mp4 &&
+ // ffmpeg -i temp.mp4 -c copy -metadata:s:v:0 rotate=90 video-rotation-270.mp4
+ // ffmpeg -noautorotate -i exif-orientation-test-1-normal.jpg -vf "transpose=1" -pix_fmt yuv420p -crf 0 -vcodec libvpx-vp9 -y temp.mp4 &&
+ // ffmpeg -i temp.mp4 -c copy -metadata:s:v:0 rotate=90 video-rotation-270.vp9.mp4
const filenames = [
- "video-rotation-0.mp4",
- "video-rotation-90.mp4",
- "video-rotation-180.mp4",
- "video-rotation-270.mp4",
+ "video-rotation-0",
+ "video-rotation-90",
+ "video-rotation-180",
+ "video-rotation-270",
];
- for (let fn of filenames) {
- await testVideoElement(fn);
+ if (supports_h264) {
+ for (let fn of filenames)
+ await testVideoElement(fn + ".mp4");
}
+ if (supports_vp9) {
+ for (let fn of filenames)
+ await testVideoElement(fn + ".vp9.mp4");
+ }
+
finishTest();
}
Added: trunk/LayoutTests/webgl/resources/webgl_test_files/conformance2/textures/misc/immutable-tex-render-feedback.html (0 => 275198)
--- trunk/LayoutTests/webgl/resources/webgl_test_files/conformance2/textures/misc/immutable-tex-render-feedback.html (rev 0)
+++ trunk/LayoutTests/webgl/resources/webgl_test_files/conformance2/textures/misc/immutable-tex-render-feedback.html 2021-03-30 07:23:54 UTC (rev 275198)
@@ -0,0 +1,221 @@
+<!--
+Copyright (c) 2019 The Khronos Group Inc.
+Use of this source code is governed by an MIT-style license that can be
+found in the LICENSE.txt file.
+-->
+
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Ensure sampling-feedback detection can allow certain immutable texture uses</title>
+<link rel="stylesheet" href=""
+<script src=""
+<script src=""
+</head>
+<body>
+<div id="description"></div>
+<div id="console"></div>
+<script>
+"use strict";
+
+const wtu = WebGLTestUtils;
+description();
+
+const gl = wtu.create3DContext(undefined, undefined, 2);
+
+function* range(a, b) {
+ a.required;
+ if (b === undefined) {
+ b = a;
+ a = 0;
+ }
+ for (let i = a; i < b; i += 1) {
+ yield i;
+ }
+}
+
+const VS = `\
+void main() {
+ gl_PointSize = 1.0;
+}
+`;
+
+const FS = `\
+uniform sampler2D u_tex0;
+void main() {
+ gl_FragColor = texture2D(u_tex0, vec2(0));
+}
+`;
+
+const prog = wtu.loadProgram(gl, VS, FS);
+gl.useProgram(prog);
+
+(() => {
+ const MIPS = 3;
+ const SIZE = 10;
+
+ const immutTex = gl.createTexture();
+ immutTex.name = "immutTex";
+ immutTex.immutable = true;
+ gl.bindTexture(gl.TEXTURE_2D, immutTex);
+ gl.texStorage2D(gl.TEXTURE_2D, MIPS, gl.RGBA8, SIZE, SIZE);
+
+ const mutTex = gl.createTexture();
+ mutTex.name = "mutTex";
+ mutTex.immutable = false;
+ gl.bindTexture(gl.TEXTURE_2D, mutTex);
+ for (const mip of range(MIPS)) {
+ const size = SIZE >> mip;
+ gl.texImage2D(gl.TEXTURE_2D, mip, gl.RGBA8, size, size, 0,
+ gl.RGBA, gl.UNSIGNED_BYTE, null);
+ }
+
+ const MAG_FILTERS = [
+ 'LINEAR',
+ 'NEAREST',
+ ];
+ const MIN_FILTERS = [
+ ['LINEAR',false],
+ ['LINEAR_MIPMAP_LINEAR',true],
+ ['LINEAR_MIPMAP_NEAREST',true],
+ ['NEAREST',false],
+ ['NEAREST_MIPMAP_LINEAR',true],
+ ['NEAREST_MIPMAP_NEAREST',true],
+ ];
+
+ const fb = gl.createFramebuffer();
+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb);
+
+ debug(`
+ mips: ${MIPS}: [0,${MIPS-1}] (inclusive)
+ size: ${SIZE}`);
+ const texs = [
+ immutTex,
+ mutTex,
+ ];
+ for (const tex of texs) {
+ debug(`\
+
+ immutable: ${tex.immutable}`);
+ gl.bindTexture(gl.TEXTURE_2D, tex);
+
+ for (const level_prime_base of range(MIPS+1)) { // `level_base` in GLES
+ // ES 3.0.6 p150
+ let _level_base = level_prime_base;
+ if (tex.immutable) {
+ _level_base = Math.min(_level_base, MIPS-1);
+ }
+ const level_base = _level_base;
+
+ for (let _level_prime_max of range(level_prime_base-1, MIPS+2)) { // `q` in GLES
+ if (_level_prime_max < 0) continue;
+ if (_level_prime_max == MIPS+1) {
+ _level_prime_max = 10000; // This is the default, after all!
+ }
+ const level_prime_max = _level_prime_max;
+
+ // ES 3.0.6 p150
+ let _level_max = level_prime_max;
+ if (tex.immutable) {
+ _level_max = Math.min(Math.max(level_base, level_prime_max), MIPS-1);
+ }
+ const level_max = _level_max;
+
+ const p = Math.floor(Math.log2(SIZE)) + level_base;
+ const q = Math.min(p, level_max);
+
+ debug(`\
+
+ level_prime_base/max: [${level_prime_base}, ${level_prime_max}] (inclusive)
+ level_base/max: [${level_base}, ${level_max}] (inclusive)
+ q: ${q}`);
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_BASE_LEVEL,
+ level_prime_base);
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAX_LEVEL,
+ level_prime_max);
+
+ const mipComplete = (q <= MIPS-1);
+
+ for (const [minFilter,useMips] of MIN_FILTERS) {
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER,
+ gl[minFilter]);
+
+ // ES3.0 p211
+ const srcMaxSampledMip = (useMips ? q : level_base);
+
+ // ES3.0 p160-161
+ const textureComplete = (srcMaxSampledMip <= MIPS-1) &&
+ (level_base <= level_max);
+
+ for (const magFilter of MAG_FILTERS) {
+ debug(`\
+
+ min: ${minFilter}, mag: ${magFilter}`);
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER,
+ gl[magFilter]);
+
+ for (const dstMip of range(0,MIPS+1)) {
+ debug(`
+ mip: ${dstMip}`);
+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0,
+ gl.TEXTURE_2D, tex, dstMip);
+
+ // -
+
+ // ES3.0 p213-214
+ let fbComplete = true;
+
+ // * "The width and height of `image` are non-zero"
+ fbComplete &= (0 <= dstMip && dstMip <= MIPS-1);
+
+ if (!tex.immutable) { // "...does not name an immutable-format texture..."
+ // * "...the value of [level] must be in the range `[level_base, q]`"
+ fbComplete &= (level_base <= dstMip && dstMip <= q);
+
+ // * "...the value of [level] is not `level_base`, then the texture must be mipmap complete"
+ if (dstMip != level_base) {
+ fbComplete &= mipComplete;
+ }
+ }
+
+ // -
+
+ let expectError = 0;
+ let expectStatus = gl.FRAMEBUFFER_COMPLETE;
+
+ // ES3.0 p211
+ let samplingFeedback = (level_base <= dstMip && dstMip <= srcMaxSampledMip);
+ if (!textureComplete) {
+ // Incomplete textures are safe
+ samplingFeedback = false;
+ }
+ if (samplingFeedback) {
+ expectError = gl.INVALID_OPERATION;
+ }
+ if (!fbComplete) {
+ expectStatus = gl.FRAMEBUFFER_INCOMPLETE_ATTACHMENT;
+ expectError = gl.INVALID_FRAMEBUFFER_OPERATION;
+ }
+
+ // -
+
+ wtu.framebufferStatusShouldBe(gl, gl.FRAMEBUFFER,
+ expectStatus, `{immutable: ${tex.immutable}, level_prime_base/max: [${level_prime_base}, ${level_prime_max}], minFilter: ${minFilter}, dest: ${dstMip}}`);
+
+ gl.drawArrays(gl.POINTS, 0, 1);
+ wtu.glErrorShouldBe(gl, expectError, "after draw with texture");
+ }
+ }
+ }
+ }
+ }
+ }
+})();
+
+var successfullyParsed = true;
+</script>
+<script src=""
+
+</body>
+</html>
Modified: trunk/LayoutTests/webgl/resources/webgl_test_files/js/webgl-test-utils.js (275197 => 275198)
--- trunk/LayoutTests/webgl/resources/webgl_test_files/js/webgl-test-utils.js 2021-03-30 06:35:13 UTC (rev 275197)
+++ trunk/LayoutTests/webgl/resources/webgl_test_files/js/webgl-test-utils.js 2021-03-30 07:23:54 UTC (rev 275198)
@@ -3132,7 +3132,16 @@
* @param {!function(!HTMLVideoElement): void} callback Function to call when
* video is ready.
*/
-var startPlayingAndWaitForVideo = function(video, callback) {
+function startPlayingAndWaitForVideo(video, callback) {
+ if (video.error) {
+ testFailed('Video failed to load: ' + video.error);
+ return;
+ }
+
+ video.addEventListener(
+ 'error', e => { testFailed('Video playback failed: ' + e.message); },
+ true);
+
var rvfc = getRequestVidFrameCallback();
if (rvfc === undefined) {
var timeWatcher = function() {
@@ -3329,12 +3338,12 @@
}
function destroyContext(gl) {
- gl.canvas.width = 1;
- gl.canvas.height = 1;
const ext = gl.getExtension('WEBGL_lose_context');
if (ext) {
ext.loseContext();
}
+ gl.canvas.width = 1;
+ gl.canvas.height = 1;
}
function destroyAllContexts() {
Added: trunk/LayoutTests/webgl/resources/webgl_test_files/resources/video-rotation-0.vp9.mp4 (0 => 275198)
--- trunk/LayoutTests/webgl/resources/webgl_test_files/resources/video-rotation-0.vp9.mp4 (rev 0)
+++ trunk/LayoutTests/webgl/resources/webgl_test_files/resources/video-rotation-0.vp9.mp4 2021-03-30 07:23:54 UTC (rev 275198)
@@ -0,0 +1,23 @@
+������ftypisom������isomiso2mp41������free����Rmdat\x82I\x83B \xF0\xF6��8$����\xA07\xDFc\xDE\xF3\xDE?Fz\xAFw\xB4w\xAA\xF8_\xF2۷\xD7z\x8Fu\xFFvF\xF7+\xF8\xF8_\xAA\xF4\xDE\xE5\xCC\xF7\xBEy\xFE(\x99<'\x80n\x8Ey\xB8\xFA\xDD#\xAE\xF5Oi̜\xC9\xE0\xD3t9\xDD\xF5\xB9\x80��Q\xC7\xFD\xB7\xE7\x93\xEFgRc\xEA+=\xBFf\xDF\xF1\x92\x99D4yN\x98wg,~Hg\xB9wEmC_\x97J\x97)\x96\xA2g\xF6\xC1\x98g[\x9F\xFF\xC44\x938\x8C\xD7\xDB\xE4\xC2G\x8F\xFF\xFF\xC9g\xA9\xE7\x92\xFB\xB5GJ~\xD73h\xB9(9\xD0+\xFF\xFC\xA0VZ&\xCE \xE2\x8AO\xFC\xCC\xF95\xFDF\x96#d\xA7Y\x86Z\xBE\xBC>\x99\xD8Fna\xFC\xCAv\xC1\xA4\xFA\xABK-i\xFD\xDBV\x9C2\x97\x94l��\xDC\xE8P\xE5\xDDRS\xC8E\xD1)\xDD8\x9D]\xF4\xBC\x98]\xC5\xEF2q\xD2|\xBB\xECd\xBB\xB3\x82e\xDC!\xF3\xD0\xF6o\xC7+S|\x98\xCD%>\xB6\xA5#(0;͛/Ka\xB4\xDF\xD7\xEE3+UP\xC7($\xA5\x8A\xE0odQ\xD8*��\x80\xF6\x97`\x97\x92\x91\x97\x9F\x80\xD1ޥ\xA5\xD5t\x9F\xB2D\xB34\xEBUw\xFE{R\x96\xFF\x84\x9A|}=\xAB1\x90Y3\xBFU\xCD\xF2_\
xA0\xDCE\xC5\x
E9ܥ\xA0}S\x80\xE7\xF3\xDA\xC1b\xF0\xF4N(\xE8\xF5\xAF\xF3\xD0\xF2`\xBB*QE8ǫOܭ\x96\x9A8\x87,,w\x885\xF9w\xE3\xB1Ą\xF3+\xEEB\x8F)am\xE3\xFA\xAD\xF5\xE0+\x91\xDEp1\x80\xA7
+\xF3\xD3QP,+|a\xC6|\x93P\xE2l\x9D\xA6k:7\xAA˹X\xDF\xDA/\xADN?\xFB\xFC\xD5\xDB\xF3\xF0鈑v\xD6=\x8B\xB5\xA0Y\xCC5\xFF\xF4{\x81\x97\xF8g\xF9\xE5q\xFB\x8Cy֯u\xD2*\xD6\xD5=ċ\xEE\xCF.'\xDF\xC0\xF0;\xA5B0\x91\x80`\xBD2\x863\xBCg\x88\xF4\x88O\xCF\xAE\x95;\xD0Y\xD1\xFDw\xD9Q\xB6\x85\xD3eG89\xBB\xF2į\xE7\x9AL\xBA(\xBB5\xDB\xDD?\x99t\xD5\xF3\x9F\x8D\xF7դ\x9F\xFFޞX\xB0Dwi3\x83}\xB2\xCA\xE0y\x80\xCEC\xFB"\x90\xD4J\x88g\xC9A\xF8Y\xBFB\xDC:\xFC\xA7G\xC0\xAFu\xD3\xC0\xFD[\x85\xF0\xC4+Jg\xCA\xD5Y\xED}\xF2\xB3\xC6J\xF9\x86\x984x\x95ų\x8BAP"¤\x99\x9Exf9\x8B\xD5i\xD0\xFD;[\xBC-d\x95\xA3-f,\x96͚\xFC\xC6N\xCD\xD5\xCC\xE4\xEDeC\x8B%!\x8C'/\xA1\xEC\xC6K\xF2\xED\xC8J\xCF\xC1&\xD0\xF88\x83\xBFҙ+\x88f}*\xAFrB\xE0\xF8\xDF\xFDz\xE0��de\xF9\xB2\x9AGj\xB6.9\xD6\xC9+R#\xF3%\xBB\x92\xF6\xB7PQ\\xCD\xE2Z\xA4\x97mg23O1\xBB\xF9-��\x8A\xAD\xAE\xB7o\xCAo\x91gc\xFF\xAD\x94φ^\xD7\\xD2u\xC4.
+\xB0\xE9\xD2`
+T\x92\xF2e\x82\xE4:sQ\xDA\xEF%\xF4\xA2l.\x90\xE5\x8E~W\xDA_`\xAA\x9B\xC5\xE2J\x97\x83rZ8\xD5\xCBӼ\xFC\xB15\xC5\xE9\x84\xAB\x95\xD1\xCDKJ7\xA08I\xD2T"\xF2\xFF\xD9r\xC8i\xF9\xAF\xD0\xC2tn\x81\xBCNa\xED\xBE4\xBB\xC2\xC8\xEA3\xADK\xEB\x85\x9F/Q@\xD9k\xA8\xD6j!mm\x83\xE5\xEA;\xBA^\xDA\xCC\xD2_\x89\xF2rs1noq\xC6.\xE1\x97)9.\xE2��\xD22<\xB9A,\x820`\xA4\xF9\xE69a9\xFF\xE4\x93+v\xE2U\xFD\x91~$\x88\xECɱ\xCBO+o\xD8k\x9A\xCE3\xF6\xE3\xC8\xE4\xFC>Xk\xC5
+\xE6\xF6rp\x9F\xE9\xA1%\x91ų-\x9B+&\xCAn\x91)@\xEE\xE3\xAC\xF0\xD3\xFFw\xE2%4SKU\x80Q\x90\\xC6\xC1t\xEA\xEE\xF8\x8E{e\xDFu\x85\x95G!k{\xBA\xBD愁`P\xAA\xFC\xB4Qo\xD76\xFB\xD3)<\xEF\xED:\xB6\x82\xD8\xD1\xCA\I\xD91akK\xB4sZ;\xB4\xADI\x87\xAAںQ\xAC\xACF0\x81)\x82y#"a\x99\xEE
+HA\x92L\xEE\x95A2\xFBU'V)\xB8z5\xF2OF\x93\xF4\xEF\x86o\x8F\x8E\xAC~\xA1\xF6\xC9\xEF7\xC8g\x8CN\xE4\\xEE\xE8\xBDN\x86\xCBQ\xF9)x\xE6\xF5k\xB9
+9'\xEC\x80\xD5Qꍄi\xB0#\xD1+=\xC2bΒ\xEA"!\x85W\xFD\xA1_\xEC.l\xE5\x94}\xB8\x89q[9y\xEEŨ\xACi\xE4\x9E\xD9"\xCBb\xC0X\xBE\xD0;\xE8\x8E\xCFƘ\xCD3\xEF\xFF\xA7xG\x883\xAD\xBA\xF3\xF3Yj\x91\xB9\xC3!wŜ\(^��^`\x8E7\xFA#%\xECg<,\x94\xDE~;9~\x922*b\xDB\xC1\xAD\xEDG\x97\x96\xA8q{F\xA0\xB6\xE7\xB5_\xACa\x9BI˳\xC4F\xF0O\x83\xF5S\xFBjz@\xACp@~w)\xBC\xC5\xC5\x86\xAF^<F\xA8j\xA2\x81\xFEOy\x82\x86\xD4t\xDF\xD4ݚ,\x92P\xC5#mu\xA7\xF6\xA3%\xE9\x98\xBB\x97\xC6\xF3\xA4:>4>\xF1ǁv7\x82\xDEO\xA5\xFEI]x\x8B\xEC\xA9C\xAEx\xA4\xECz\xAA\xB8;`\xA8\xC1\x96
+n5\xEE\x92\xFA\xBByP$p\xA6\xFF\xC57\x8Bl\xFAS\xCEx\x82Ί\xF1\x91F3\xF3V\xEE\x85:\x9F*z\xF1vKE\xA4\xBE˵$<\x8Bb㔍j\xA5'\x9C)3l\xF3\xE4\x88\xE3wjk\xD3^\x97\xE5\xF3\xC7m\xCB\xED\x8A\xE9\x9E\xF3#\xCD\xB7}W\xF2vAп\xED\xCD\xA7\x8A\xB3\xA72\xB9\x92\xFCB\xA9\xC6g\xCF\xFF\xBAw \xB5\xDB<.\x94\xF1J\x9C\x8B\xAD\xDCT\x85\x8F\xAE'\x8F%y2
+\x8A\x87\xC9M\x9D19\xBA\\xEFzhw\xF5@\xBAq\xFD\xBB\xA3\x94}l\xE9\xD4G\xBA\xD5Nc7\xFCV\x80\xA0\x92\xDCQu\xA7\x91\xEE\xEA\xE3V]\x87\x9D5\xB0\xEF\xE9L%0?}\xB7\xD9\xEF\xD5\xE6(\xF4}l\xC9\xCC_̔\x8Dv\xE7\x8EO\xFF\xB8\xB1\x94Jf:_\xCB6\xA9\xFD\xD1\xFF\xD6\xD2!\xE2\xF5$9zJn!D\x8B fNu\xC23\xBC\xA6\xC0\xFF\x99j\xFBK\xB0\xAE\xFF\xFF\xFBQ\xBA\xD3f\xC6\xE8RV\xB4\xA5=\x83\x9D+\xF0\xB8\x98\xE20\x9A\xB0E\xDB6\x81\xB28\x8D\xA9;\x94C\xBD\xF0\x80\xD6\xD1\xD4o\xFF\xFD\xD8O\xFF\x91\xB0˞\xAB\xC6\xC7\xE5W\xC1WFNh\xF8\x95ho\xF0%\x86
+\xCF@\xB4\x89 \x84\xF2\xC2{*\x86\x8A\xCA\xFA\xF7\x82\x98^~
+\xBD\xE8[flKA\x91$77g:\xFC\xF7@\xA6V\xB8\x85\xE5\xA6D\xC9\xDC?\xC3GE\xE4\xD81\x95\xEA\xE62?~\x81\xBB\xAAk\x93Ƚo\xF8M
+\xD0\xED\xF9e'\xD7\xC0E\xADA\x9B\x9DfG3ՠ8\x8C+ېS8\xFF\xC9\xFF\xA9\xBD\xC7t\xD8b{\xB81\xB7\xFD\xAA\xBF$\x8DJ\xBA\x91L\xB3\xECO\x90h\xCBD2\xAE`\x976\xED\x93D\xB90\x9E\xAD\xB62\xD5c寓T\xCE-&T?3\xE2r\xD8\xA6\xE6l\x9DR\xF3\xEA6\xA7aܞ\xD1\xFA\x86\x86\x9DW\xE1\xBA\xEE%L+\xFC-\xDDL\xA9\xF0\xC9K\xF1\xFB\x93\xAC\xFE:n\xE2\x9B\xA5uZ\x95∨+X\xCDbV$p-\x8E;\xFC
+We&/|\xA2������\xEFmoov������lmvhd����������������������������\xE8������(����������������������������������������������������������������������������������������@����������������������������������������������������������������trak������\tkhd������������������������������������������(��������������������������������������������������������������������������������������������@��������\x80������\x80����������$edts������elst��������������������(������������������\x91mdia������ mdhd����������������������������2��������U\xC4����������-hdlr����������������vide������������������������VideoHandler������<minf������vmhd����������������������������$dinf������dref��������������������url ������������\xFCstbl������\x98stsd��������������������\x88vp09������������������������������������������������\x80��\x80��H������H��������������������������������������������������������������������������������\xFF\xFF������vpcC��������
+\x82����������
+fiel��������btrt����������y\xD0��y\xD0������stts��������������������������������stsc��������������������������������������stsz������������J������������stco��������������������,������budta������Zmeta��������������!hdlr����������������mdirappl������������������������-ilst������%\xA9too������data��������������Lavf58.74.100
\ No newline at end of file
Added: trunk/LayoutTests/webgl/resources/webgl_test_files/resources/video-rotation-180.vp9.mp4 (0 => 275198)
--- trunk/LayoutTests/webgl/resources/webgl_test_files/resources/video-rotation-180.vp9.mp4 (rev 0)
+++ trunk/LayoutTests/webgl/resources/webgl_test_files/resources/video-rotation-180.vp9.mp4 2021-03-30 07:23:54 UTC (rev 275198)
@@ -0,0 +1,15 @@
+������ftypisom������isomiso2mp41������free����[mdat\x82I\x83B \xF0\xF6��8$����\xB07\xCF\xEB\x8Dў\xA3\xDEFz\xAFy\xAFѪ=7\xBB>#Sz/\xC3=G\xB9D\xF2y\xED\x9C?Vu\xC4[\xEB\x96ύ\xD8/\xDF[\xA3!\xFB\xAFi\xDAw\xBE\xF4\xDD}oM\xD11\xB7\xEE\xFA\xDC\xC0��y\xAB\xFC\x8E?\xFF\xE1\xFF\xBB\xA2=\xA8\x9F\x8E\xFFʹ\x82\xAC~e\xFF\x97\xC2;=/\xC7\xFFu\xF4u\x81\xB6S@\xCC<ٓ\x9AL\xE3'\xF7}\xFB\xE8͵I9z8Dֱ( p͂{8hpȏ.OS\x8DS\xE2\x9E\x9B\xB4^\xB5\x89\xC3\xD7\xE5ʹc\x8B\x9Cf\xCC\x84e\xA3q-\xF0\xAF\x9Fˠ\xEDB\xD81\xB3ƴ\xB5LøXJu\x99LMQ۩\xE0dn\xEDF\xFE\xB9G\x89\xB8\xE0O\x9C\xAF\x92\xF3\xD0\xE2A\xD8U\xAD+\x8B#\xF5 7\xA4\+\x94\xAF\xE4b\xF3U\xFB\x9C]\xE6̧\xD4j\xCD\xD0nG\x94\xA6,%\xA4F\xF8N\x8E\xFF\xBEyvy\xEE\xFB\xD6D\xD7{։\x80\xDBc\xBA9\xED\xE4qt&\x88\xAD\xD48&\xCE%X\x81gF^\xEAu\xDFs\x82\x8Bҝd\xDB��O\xA4\x82\xA8\xB3\x98/\xE4\xEFb\xB2\xE1\xCF\xD0\xCAg\xFF\xFD\xC8DU}~p\xEE\xD5\xD5P\xEE\xF7}|:\xEC\x9C|j\x90%J\xFB\xE7\xFF}u\xEAǣ�
�\xE3\x95C\x84A\
x80\xA4\x9B\xFF\xB9Z\xF7\xF5p4\xFE
+\x98\x80oi��\xA3$\x8F,D(\xBF\xFF0\xFAܿ\xFF\xF6\xABJ \xC5\xFF\xF9l)f&8\xF36ϊb\xAC4\x89\xEB\xF9W\xA2\xF9ϸ\xA8\x9D\!u\xF5XG!\x90_\xFD\xCDݎK\x96\xF9\xA7\xCE/\xF9"4o\xFC\xD3\xEDX\x9Dy\xD8\xFEK\x95̐\xF5\xFE\xF15\x99Y@\x9C\xCEG\xDD\xDFhu\xA7\xDF\xFF\xFA\xC5\xFD\x99Yi\x92\x93*\xF2+\xF6\xEENA\x87-\xCDZ\xF6\x81y\xDA4\xA8O\xB3`J1l\x95\x8C(\xAD\xBD\xE47i\xD0bo\xD0i\xEA؈\xDC:\xC9I\xC8\xD0Jm\xE8\xB8\xB1\xBDV>_\xB8\xA0}\x84O\x85K3\xBE\xFBe}\xDD>\xCC\xD3\xE9\xCF\xFDL\xC1\xB6c{\xB9oF`\x96\xA5\xF1\x9EM/7\g1}+\xE9\x9F\xFFg\x83\xF2\x83-\xCF\xFD\xA9��\x88eS\x8E\xD5)\x8D\xEC]u\xC7\xFF̚\xBE��\xD6j\xCF\xD7⻢\xD6\xF0\x98Z\xD1D\xA6\xB4(\xB9\x82Ǿ\x83\xAE@,\xF4\xC1Yǻ\xB3SY\xBF\xFC\xE8X\xBC\xBC/\xB9\xAE\xA9\xF9W\xE03Qj\xE0q\x8B+Q\xB9\xF3'U</\xCB7\x82Ď\x96҃\xCAU\xA5G\xDA{q\xFF\xF9\xF7G`\xB3\xCC)\x95\xB0\xFA*\x9E,:\xDF\xC0\xB3\xA5o\xEA^|3\\xC9+(\xBF\x9A\x95;\xFF\xFD\xF5\x9F\x81X2\x9A\xF9<\xEF_R\x95\xEA\x80|+y}\x8A\xE2^\xA0䕷\xC6os
\x89/~\xE7\x86
+\xA9rjTh,"\x81\xAE\x8E\xD56w\xF80\xCA\xCB\x9E\xC3$X\xC0t<,\x8F'Y\xC0X9\xF9$\xC4\xEDu\x9Dn\x98\xD0\xFA\xFDwY\xA0\xE5\xBA\xF1\xBE\xC5\xF7\xE8\x9C=\xCD\xD5=\xAE\xBF8\xC7\x99\xE3 \xE1@\xF0\xBA\xE2\xD0뼧{\x85\x8B\xC3\xD5\xF9~Z2`\xAE(\x8Ay\xD4'vy \xFF\xF6)$V\xB3\xD5}ɿ\xDA\xCCm\xB7C\xE5\xFB\x94?\xD7s\xCFkOhy\x9F\x9A\x9C \xBAܱ\xA2Y\x90-\xD40a&LY/*Cx\xCA\xF3\xCEk\xAA\xAE\xDF\xFFsE\xBB\xF44"`8\xE0\xFC\xBC\xC9L\x8E#\xBF\x8A\xA6CP\xB5a\xE5S/\xD6\xC1D-\xEF\xBEn7\xF2\x9EXƔ\xFA\xAE\xFB,\x9F\xAC\xC6\xC2v\xAD'\xEB-\xEB\xDD~\x82|\xED��\x91J,C\xB8?L\x88\x87,\xEF\xCF\xFB\xDFú\x86\xA3 L\xAE\xFD\xCEA\xD28\xB9��-"u9\xC3\0\xA7zŰm%$#\xA9,,\xB6\x88\x97:\xD5,\xC6\xA2\xB8\xF28\xDE o\xDD[lD\xE8\xD01h-\x90\xEA@\xB9\x88F\xE0AB:"\xC9i\xFC\xFF$ \xD7
+^\xB2\xA3\xFF\xB7\x96b\xFC\x90\xA4\xE7\xC4_\x911\xFF\x9D\xF4\x87\x9F\xEE\x82\xF83\xC18vBG\xBD?\xC9H\x9F\xB1\x8CfVnE'\xD4\xD94\x93\xDFo\xC5_\xF9��\xEF' N\xA6,\x9E@^<n\xAER\xA1]I\xDCԦ'\x90J\xFE\xD7D\xAB\xAE(\xDD\x8EW\x88\xAA\xBAj\xA1\xCF\xFBM6\x9F:\xA6j0\x87c0+\xE4\xB0\xE7\x89$O\xA0Cр\xA0%A~mx\Է\xA0\xD6m\xAE\xA7\x9C\xAA\xF7}\x97\xAC;J\xD0 \x93\xF1\x8E+,\xE2\xC22\xEE2\x88\xDA4\xAF3\x9ErŚ\x90\xA5\xF4r\x8C7\xFF\xC4%ݟ\xD2Џ\xAD\xE7J\xAEJ\xC1Шv;\xB9\xDCHC\xA0E\xA3\x94\x89NBeBla\x86\xC6ktԥ\xAD\xF0\xD3\xEA^\x9C\xEA\xA7닰\x9C\xF6\x941\xC6\xFF\xEE\xAF\xC4*Jde\xAF\xFDH\xB0!\xF7\xBFf_\xC3O\xFEh\x93\x8F\x8D}\xAE\xFD\xBCs\xA3G\x8D \xA0\xFE\xA3|\x91\x87\xB71\xFCT\x95/\xA1 \x8AV\xE0'\xA0F\xF2\ŀ\xC3\xD0 i\x8F\xFB\xD4{\xB1\x95}\xADit?g+;\xFF\x91治\\x8F\xA8\xE9\xE2(\xD0\xC8\xBBfЦq\xAF\xBAK\xC3\xCF olG|%\xA2{wO\xD4د\x82fZ\xBD\x8A:}N\xABf=\xAE\xE4Q\xE7༽\x90\xB7\xF5,\x9F\xF8\xD5\xFA\xABڀW\xFCZ\xE7875\x95σѕ\xA3\xD1*\x95\xD1_\xBD\xEE\x9E\xD8ܓ
:\x8B\xD8\xFE\x98r{DD\xFB
+8\xDB\xDD
+\x96\xF5ʉ{\x9E\x8C5P~\xD1\xD6\xE4H\x97\xF7Ӧ\xA2��~\x88\xE7\xADT,\xFDt"\xCE\xFB\xD3\xB4Q\xF6\xE6"|\xE9\xE4Z\xF4\xB4\xCA\xEC\x81xY\x91\xC56k_\xAEEy]\xD1)\x93P\\xB1T\x93\xF1y\xEAY{\xA5\xD8\xE5\xBA\x96\x99\xE6\x9C3\xA3\xBF93\xBB\x91\xFE\xAC\xC9c\x98\xEBQ\x8Bu\xF7\xDCM\xD2bŴi\x9A@\xD3B\xAF\xC8Na%\x81\xBC\x90-Y\xD2\xDF_\xD2\xECǝ\x88\x8B\xC4%S=\x8E\x85\xD9\xF1\xEAr\x8E\x98\xCA\xF2ߍ\x9CiX\xA0=\xDE\xF1\xCA4P\xB5\xEF\xE4\xD9VN\xB1\xCDA=bڗ\xC82\xFC\xB3Z\xB4\xDA\xF1B t\xDF\xC5\x9A\xE4\xC8=\xEDF[\xEFW\xD0x\x86%de\xA2\xD3\xFF\xE6M\x9B8DҞ\xA4\x9D)\xA0\xCD\xE1=\xBA\x98Y\xEC\x9FLf\x99"\xA7\xFC\xFD\xCADŽU\x9B\x86\xBF\xE8)\xAA$\xF3\xC3Ez\xA9\xB2h\xE4\xFB-\xC2$
+!\x99\xC2p\x84S\x8D\x96\xE8\xE4\x87\xF8wiň\xA7\xF9\x91\xEF\xB9F\xA2q\x96E\xFBS9\xD3Dž\xA0\xF0\x8F\xCB8\xFD\xEA|\xD6\x85NwU\xBF\xFF\xB5D\xC8~\xA2\xD8lE\xBB@\xFB\xE2\xF8\x95x\xB3\xE69\xCE \x8F\xFA\xEF\xEB\xC7\xB6zKN\xD94I%\xD1'.z\xF3\xF5\x9F\xE7\x8C0\xEA\xD1\xEA9\xF9m\xC7h\xD3G}\xE6R\xBEv\xE0\xB4x.\xF0\xBD\xB4\xF0\xA8|Ib\x83웦.ce#8O{\xF6\xDA\xFE^N@t\xD2\xD1LqaX\xF5[jI\xBF\xE97E\x8F\xA8\x92(AI\xC2Av\x92\x97)\xE5i\xB2 H\xD2\xCB\xD2t\xB4\x9E
+\xF9,\xD4\xE3Ïƚ2\xEEO\xCF\xF5\xED\xBB\xE9\xE6\x9A\xFC\xF7\xA3ixJ������\xEFmoov������lmvhd����������������������������\xE8������(����������������������������������������������������������������������������������������@����������������������������������������������������������������trak������\tkhd������������������������������������������(��������������������������������\xFF\xFF����������������������������\xFF\xFF����������������������������@��������\x80������\x80����������$edts������elst��������������������(������������������\x91mdia������ mdhd����������������������������2��������U\xC4����������-hdlr����������������vide������������������������VideoHandler������<minf������vmhd����������������������������$dinf������dref��������������������url ������������\xFCstbl������\x98stsd��������������������\x88vp09������������������������������������������������\x80��\x80��H������H��������������������������������������������������������������������������������\x
FF\xFF������vpcC��������
+\x82����������
+fiel��������btrt����������\x80\xD8��\x80\xD8������stts��������������������������������stsc��������������������������������������stsz������������S������������stco��������������������,������budta������Zmeta��������������!hdlr����������������mdirappl������������������������-ilst������%\xA9too������data��������������Lavf58.74.100
\ No newline at end of file
Added: trunk/LayoutTests/webgl/resources/webgl_test_files/resources/video-rotation-270.vp9.mp4 (0 => 275198)
--- trunk/LayoutTests/webgl/resources/webgl_test_files/resources/video-rotation-270.vp9.mp4 (rev 0)
+++ trunk/LayoutTests/webgl/resources/webgl_test_files/resources/video-rotation-270.vp9.mp4 2021-03-30 07:23:54 UTC (rev 275198)
@@ -0,0 +1,18 @@
+������ftypisom������isomiso2mp41������free����hmdat\x82I\x83B \xF0\xF6��8$����\xA07\xDFc\xDES\xDEc{\xBD\xBA\xFDg\xAC\xF7\x98\xFD\xAB\xD3{\xB7\xE2>6\x9A#\x86zor\x89\xE6|?=_\xBA\xFD\xF5\xCBd\xC9\xD3t|oi\xA5\xF1\xEA\x9Eә\x9F\x98\xFD7\xA6\xE8\x98{\xF7}n`��~_\xCF\xFB\xD2~\x84\xF6V\xE2"\xA5+'\xE0;Wh/$\x9E\xF3\xDB\xDF&\xED\xC5F\xDA<\xE7#\xE7\xD4xbz@\xC2X\xC94X\x97\xFE\x9F\x89^\xEE=dJ\xE9п\xFF\xE9\xD67\xDD\xF7KŌ\x8B\x85\xDAY\xE9q\x8F\xFF~\xB2\x96\x8B\xBD\x9Az\xF6!\xBB\x9E\xF4\x85\x94o\xFF\xD7F:\xD9\x8C\xBF8\x82Ȼ\x8C\xD9 +\xC1\xC4%\xA4!1`\xA2\xA9@oU\x99\xFDad\xD5;\xF0_Ք\xA7>\xC0W\xFE\xAE++\xE7\xB4\xF0N\xD6(\x86\x93\M|J\xFC\xAF\x81\xC9\xFF\xFEi6b\xB9~\x9F\xB0\xF0\xA3 \x92z0\x94\x8CY^\x94\xF1\x81\xA0)E\xF5\x9F6\x8EX\xE7\xE6\xA4(֎\xD4\xF5\x85\x9AT\xF9\xA9$\xFA^\xCF\xD6[\xD0 \x9C(sI\xE6G\xAE\xB5\xA7��\xC64\xCCp\xC2V<��\xC5@\xC4\xD0\x93:\x9D2\xBD\xF6c\xD8\xE3\xE8\xBBu/\x91\x937\xCB:q\xDAuJC\xA1\xA7\xDF\xC7Y)\xDA\
xEA\xDB\xF8'\x93
ۑ[x\xD2nj6b\xF4\xAD+\xA6\x89\xB0\x91\x81Dgo\xFA\x92\xF7\xCB\xE0b\xCD\xFC\xCA)>\x80\xD0'\x96\xC0F\xCD\xC4Q83@\xA7\xFE\xBCJ^8ݞ\xE9.\xDB\xE0\xB76\xCF1\xD7\xF4\xD3\xA5k\xB4\xFE\xEC\xF0gs\xD8e@\x80\xBAO옯h\xB576\xB2\xBEp\xE7\xF6+\xE66VG\xB70\xFF\x82"\xB7\x8A\x{D9DF}hA\xF5)\xCC\xEDuBp+<0%\x959W\x8D\xE10|\xD2\xE6ԟP\4\xE6\xA5R\xD4o\xF8\xEA6%\xAB\\xA7\xDC\xD2G\x9EUҒ[\xE69\xE1\x99v\xA4p1\xB5\xE0_\xA6C\xFF\xFBo2\xFF\xD99\xE0>\xD1\xCEя\xFB\xBBm\xB0\xDAM
+\xAEq"u\xB5S\x80\xBDg;e\xED
+)/\xCB|r\xC5ʄ\xA1\xB6\x8E\x85\xB3m\x8D\xF84\xF8+\xC8\xE2T\x89S\xFFN^b\x9E\xDE\xD5\xEB\xB6\xFFЃ\0̀\xFCآs]\xAC
+'\xFF\xF6\xCE7\xB8\xAC'vr8\x99+U_\x95\xEAƖ\xEF˞\xBB\xE5 \xA8\xF8\xF6\xBEq\xA6\xCDF\xBA\xFC\xA4\xE2\xB6\xC3\xFF\xD2\xE1+\xF1\xCC>t\xA69d#%\x83\x85\x8F\xA8c\xE7\xB9~\xDE\xFB^C\x8D\xC28?\xA3\xF7ߖ\m\xB7T\x8C\xF7\xF0S1U\xBBԝ\x996@P\xBAIp\xAD;\xCAlH@Qٌ\xE6s\xA7Z\xFC\xF7\xDA\xD6Y\xF367X\x88XM\x93H|\xBDr{_>^\xA9b\xD1$\x92\xD1.\xF26c\xF0\xC2\xEE^\xEA֨|\x83Zi\xF4\x8C\xD9dT\x93\xF9~\xC8\xDF\xFF\xD9\xD1;;*\xE8\x91|\xEDCxY\xBE\xB6z\xA9PjFO7\xF87p\x9F\xFF\xC3F˱L\xC8+W\xED+\xC9\xDEi\xB3\xDC\xF1\xAAAH)\xFAI^kA\xF1\xBB\x8C<
+֬\x8FF\xD5s\x89|\xD2FA+\xB1\x8C|cC\xA2ZX\xEA>\xA3ܳD\x8D\xC8\xDAcw\xC1\xB3\xBF\xFF\xE3\x9BǨ*\xB0\xAD\xFF\xFD1wd.\x99\x9F\xC0p"5w"\xD8[\xF1\xEA\xE4\x95\x84\xF5��\x96y\xB4\x8E\xC7Gx?4Y\xF8\x94s\xBF\xBAd\xFA\x97/\xECѷ\xF0J\xCFg\xED\xFE\xAAס\xC6J[j\x93_X\xA3\xBEG\xFD\xE4\xF4\xB0\x9C \xC3\xE10pӜ\x9D\x84\xC8`\xA9\xE4\xBC\xDE\x9A#`~\xFFk\xAC\xF7vtm-O)(\xA1.+\xF9\xFE\x93`/A\xDAj\xC3lh\xF5ȶA\x8E\x81\x94:\xF2\xB5ţ\x88\x9F\xEFݰ\xAC\xDC@+w\xFC!\xE0\xAF\xF4^\xC0\xBD\xFF\xBF\xBF40\xE32\xE7g\x82\x8F\xFC\xA8%\xAE,\xD3_+\xFD\x93\x98\xB7a'\xA5kWսЈ\xC3\xDD\xEF\x9D\xB8i\xC1\x88IV\xACm\xA6\xE6\xED{\xE2\x94\xF6\x95\xFE\xEF\xF1\x95H*\xA5\\xE6\xBF\xEF\xE4J`\xB5\x91\x89 \xD3 \xA3_\xF7 \xF0\x9E\xF7\xF7\xB2+Lk\x99��\xA2[\xE7\xE7\xA9g$\xB2\xC0\xD9\xEA\xC0\xC5\xFE\xCA~\xFF\xE2{"\xD7Á\xF8\x85!\xEFH\xF6^\xF2-\xCE\xE1\xD2\xCCt\x83[\x86,nDU\x99j\xB8\xEC\xCB\xF7\xB4e \xFB1#\xF6\xC6\xEA\xD7/\xE1\xF1J\x994\xF3Z\xA0\x8E`\x90)\xAC\x89{r\x94\x
88w\xB4)R&\x8F\xE2\xAD\xC8\xEC=$1\x9C\xAE\xD2\xCAh2`D:\xC4֛\xFA\x98/ͷX\xBF\xDE\xCF\xFB\xAD\xD4tq\x96\x985Ն\xDB\xF6+l}\xEB\x9C2\x90뫙\xC0#O\xADk\xD0\xF6\xE98N\x92\xFE\x94ɛ\xC6%\xB5̲\xD0yo\xFB\x85\xD5\xB8\xF4Vm\xF4\x9F\xEA\xA758\xD8T\x{DDFB}pGjCM<\x8A--\x8FD\x85Jf\x8A\x969\xBC\xAB\xA2c+9:\xA4 01f\x90\
+\xF9K\xC6\xF5\xC3\xDE\xE1\x8BB\xD4\xD1\xD8\xFBx\xCC5a\xA6O\xCA%{\xB1\xD5 \xBE\xE5}\xFFE\xBD.Mد\xBC\xE8\xEFu\x84\xF6#\xCBC\x95\xA2پx\x96jhtw(Jݱ\P\xDEσ\xDFK\xDCY\xAE_0\xE7eb\xBF\x92\x9F\x98\xAD4\xEE"B\xCC\xD5X\xDA\xC3-\x81U\xFD\x9C\xBA
+p\xE324\xDC:,\xA2 W\x98\xA5\x9A2\x92\xF9z\xCEܘ\xB3hsI٥\xEFVAm\xB7\\xF3\xEEo\xB6Ƕ\xAC+\xE0p+tp\xBCඞ\xF0(\x92sH\x8DI\xFF\xB1>��\xA8ʪ\xB2Jl\x82n\xBC\xB2\xB0F駝=\xBD\xFE\xE9xa\xADQ\x80\xB0\xC5\xCCC!\x8EWۀ\x94\xC1@\x8B\xC2\xFB\xAD\x87F\xAE\x9A\xBF>\xBE\xA1\x8Dk\xBE\xBD\x9Ao\x8A\xA9\xA70\xE6\x8F&\xC7
+`"\x97(\xA8L,\x99ʋ6\xEA\x97\xE6\xF1\xCF\xFDA\x88\xFB\xDD\xF4\xFC%\xE2\xED\xAB f\xD6\xFD\xD4\x97ſG\xDC\xF4\xFF\Xܾ-A{\x98\x9C\x9F\xC2P\xB6\xD1Є\xB4\xFD\xB4\xBD
+\x87~\x81\xFB\xB1mD\0\xC4\xDD\xF0\x9E\x9A\xEA\xC6\xFCX\xE3DMa\xDE(l\x86\xC0;\xEAϯ┐8\x84֝��\xF5rΛK\xB3\x91\x84N\xEC'\xEE\xF2\xFBE>raT\x92\xDCQu\xEAw\xE1v1\xC7 \xFB\xFBg\xC7\xD4w\x887\xF7\xF7\xBF\xEB\xE9Wv\x9D\xB4\xF9ۇ\xB7gP&44\x95'\xAA\xB8\xCB4L\x91\xB4\xC4\xFA0pc\xF8K}\x8C\xC0\xDB\xD01\xE8H\xDD\xC3ܼ07\xFD\xA2+S\xE9yԐ$\xF4\xE6\x95ϯ\xEE\x8AJ*\x93\xFA\xB41\xCF\xDFP\xB3c\xB8\xDA;\xAC\xC4fuO\xFC-ĈVn\x8Fj\xA555t\x92\xEFہ>\xEF6\xE48?\xED\xE6\xF2#\x94\xE7:n0\x81ӎ\xC5_\xEE_\xF7\xFDM\x86\x85\x90\xCD\xD5'1\xB3\xD9\xDE\xD6=I\xD80\xF07\xFC\x80&\x8Fs\xAF\x91\xD6ߔ\x8A\xBC\xAD\xD8`\xCAoD~S\x9C\x98\x97]\xD1$F\xC2k\xB8_\xF5bVZ\xBD6\xB0)\x86\xCBv4%)\x85\xEC\\xEC\xFD7\xD7\xEC\x81\xC7UH\xD1<\xC9\\xC6\xC0HM\xFCoM\xBF\xE5x=b\xC2\xCB\xE5*\xEAF1\xA8\xAE`P\xC1b#R��\xAEؽ\xC1\xF0\xDA\x91I\x81\xD3ucC\x94\xA7+\xCBy}\x9CZ\xE8\xD9紲\xC9g\x84\xB4\xA8\xD4Ӥ"N˥{π����\xEFmoov������lmvhd����������������������������\xE8������(��������
����������������������������������������������������
����������������������������@����������������������������������������������������������������trak������\tkhd������������������������������������������(����������������������������������������\xFF\xFF��������������������������������������������������@��������\x80������\x80����������$edts������elst��������������������(������������������\x91mdia������ mdhd����������������������������2��������U\xC4����������-hdlr����������������vide������������������������VideoHandler������<minf������vmhd����������������������������$dinf������dref��������������������url ������������\xFCstbl������\x98stsd��������������������\x88vp09������������������������������������������������\x80��\x80��H������H��������������������������������������������������������������������������������\xFF\xFF������vpcC��������
+\x82����������
+fiel��������btrt����������\x8B����\x8B��������stts��������������������������������stsc��������������������������������������stsz������������`������������stco��������������������,������budta������Zmeta��������������!hdlr����������������mdirappl������������������������-ilst������%\xA9too������data��������������Lavf58.74.100
\ No newline at end of file
Added: trunk/LayoutTests/webgl/resources/webgl_test_files/resources/video-rotation-90.vp9.mp4 (0 => 275198)
--- trunk/LayoutTests/webgl/resources/webgl_test_files/resources/video-rotation-90.vp9.mp4 (rev 0)
+++ trunk/LayoutTests/webgl/resources/webgl_test_files/resources/video-rotation-90.vp9.mp4 2021-03-30 07:23:54 UTC (rev 275198)
@@ -0,0 +1,20 @@
+������ftypisom������isomiso2mp41������free����smdat\x82I\x83B \xF0\xF6��8$������7ޟ\xDFQ\xE9=f\x88\xF7\x82\xC5^\xF3\xA3Tzovgf\xE8ޛ\xDC\xCD\xE9\xBD;\xDE{7>\xAFVR\xFD\xF5\xBA7\xBD\xE3\xE0{\xEBt|e\xA9\xBA\xF4P{\xEBs����|\xBD\xBF\xFF\xEA\xAC\xC2c\xFF\xFFn\xB2\x83\xFF\xFF\xF6\xB9-\xFD\xDA\xDF\xFF\xF1ȸ\xB3\xB6\x983\xFF\xE6\xCCHۆ#\xF7\xD4J\x9B\xFF\xEC\xF4[\xA0b\xD5ԧ;J"\c\xC6\xC64U\xDA\xF5\xA6\xBB\xEA8\xCB[\xC1<kmG\x84>y\xE1\xA1y\xC6A\xDF\xCD\xDB\x95\xF4~,\xFF\xF9\x9F\xC3\xC4h\xCC㍃[\xF9\xBC\xC2S\xFE\xC9\xF8\xF5qw\xEFT\xB9s\xA2;\xD1[\xDF|\x9FZC\xA2>\xAD\xD1g\x89\xD1\\xDE\xC9 \xAD\xF9\xFDв+c\xD2U\x953\x89\\xB8\xCF\xFF\x9C<\xFA:\xB9\xAD]Z%
+)\x86\xE7\xA7\xB9\xD9z\xA4\xB8 P\xF8\xC3\xED\x914\xD8!zk\x9F\xEC;\x80A\xB35x-e\x8A[`\x92\xBBM̶\xC1\xF6\x9Cn\xD0\xC5\xA5\xF6İF5%R\xB0d^51\xA6X\x9AM;gd}G\xF6\xC7\xC9\xF7\xFD\xFBK\x8E\xBBL\xF6\xE5KZΝ\xADU\xE8te\xF1\xA6\xF0+\xB0d\xB7\xEC\x9C\xF2\xB7\xB3\xF7\xAFX\xFE\xB6\xA0\x86DM̃B\xB0y$\xF5\xEA\x94'07\xF5S\xF8
+\xA5\xD1kB\xCACtU\D`\xA8},\xD0\xFF\xAF\x84L\xEE^\xF2\xA4\xD9 !\xD4\xD9\xF7\x94\xE3N,I-,ۯ\x92ҏw\xFF.\xA1F\xFFK^\xBD\xB9W"\S>潭\xAF\xFB\xD8=\xC0\xA8E\xC1\xA9\x8A:\xAF\xFC=\xD0\xFC\xB5\xFA\xC6\xE7+\xEC\xBA\xDE}^5\xA7\xA0\xE3\xC7\xD2+'6k\xFE^y>w\xB0\x9Cc\x98\xED\x88I)4^\xED\x9Bv\xA6\x94\xEC.\xFF\xFF\x93\xC2\xBB\xD5M\xFF\xE3)f\xADi\xC8w\xD4X\xC5w\xFF\xED\xFF\xEC\xFFכ��S\xFC\x98\xD2\xE8\xA6ffCo\xD0\xB5(N+ \xA7s\xC4g\xBC\\x99\xA2\x9DAO\xFE\xE4wӀ\xBC>J\xFExfbzc5\x80\xCFi\xE6\x83\xE1*J\xFFλ\xE1r_M5-\x86\xCA+\xCF\xD2\xE2\xCDk\xE2؞\xEB#*\xB2\xE9J\xFC\xB9\xA7\x8D\xEA
+\xD5f0\x84Ab\xB8:Z\xCD3I\xD9Se(CV\x8F\xFF\xFA\xF6\x9C\xAEY\xA1ny\xB4>\xD6cq\x95\xA9@B\x90H\xAD~9\xF1\xCCZ\xDCHtGYG\xBF\xAE\xE0,,\xD3\xEB\xCC!\xF9\x8Cp\xB4z\xCEdL\xB5\xCE\xEB\xFBAIsa-\x87\x93\x8C}l\xCDRS\xFFN8\x8CJ\xF1WW\xEBs\xEF\xFF\xFF\x91n\x92v\xB9\xB7\x99\x8B\x82k\x9D\xFBO\xCC>\xF5[\xF4\xEC\xCDߥ\xE1\xF4\xF0kUc\x8A\xA9\xDA\xCC\xE2\xF39+\xF9\xD94\x8BW(bI9Z\xAB\xEDNj\xB7?\xDE\xFB\xFF\xFD\xBFN>x\xD4\xFDN\x83@\xF0W7\xFF\xA3\x82\x91qb\x96F\xAF\xC2G\xE5w\x82\xA0#\xD3\xC2RM|\xB3\x9Eѯ\xDCɭ\xB3O\xF2\xAA\x9C\xDB.\xE7\x9F\xD2\xFEEmyV\xFCp\xA7\xB6\xA8|\xE9\x95z\xFCY��%+\xB9\xA9\xBC>b\xC1{\xD5\xB0Ɲ\xBA\xE4\xBC\xFA\xD7\xE5\xB08\x9C\xE3(_a \xBD\xFC+ǘ\xBEץ\xE3\xE0\xA5C\x9A\xA5\xAAqj7(\x86\x8A\xA3\x9Azr澹\xC0U0\xDAYD\x861S8z\xE7\xE0\xA5B]\xFE\xA88嫼\xA68\xA3\xEB\xBF\xC3a\x92ny7}\xD5\xD4?'\xFE\x84\xC3.\xD2XZm\xFAl.?\x9C\xFDб\xF4e\xA09\xB68\xD2{$c\xD4o\xCB\xC3rnn~ypk$
+\xCD\xEA\xFCH(\xB6KWS\xDBBk\xA9\xBD\xA5?\xD3ެ\xD5\xED<t\xCB\xAB\xC8{\xFC\xDBns|ly\xDA\xF4}\xE4\xBCN\xB2\xEB:K\xA1}\xA9E\x99\xA6\xECd?\xAC\xF7\xBE\xFEE=\xA6\xDB9m\xFE\xA7\xF3\xFDS;댃\xB1\xEF?\xFF䱽\xFD\xC6E5sO\xE7SbP`~D\xB0;\xE0\xE8c4\x9D\x90\xC8\xDF\xFB��\x9E \x8B\xE3$Y-\x9E\xCAF;r\xBD˿J\x9C\xD7\xEF'q\xF8\xAC%\xB5Em\x86RPb\xF0cC\x80M\xC0]s\xA1&
+\xBE\x87ҚB.\xAC+?U\xCEbD\xACK\xF8\xD0\xEEA\xFEC\xFAos\x95\x86\x96<\xFC1\xFB©\xA0\x99\x8B\x89\xFAߕ\x86I3\x83IhuI홒r\xC5x\xA9g\xFF\xF1\x8C\x88\xF1b%\xCAq}PC\xFFAeW\xD5\xCE\xCB@Xd*\x9AB\x87\xC2px&\x90\xEC\xFDu\xD6D|\x93\xFCJ\x82\x85\x96\x91P\xCA.\x84:\\xEB\xBD\xF5Uj'5\xC5K[~j\xD6I\x82\x87\x88\x9B<\xA1J\x9D$\x93av\x8F\xFC-zk?X/\xE5"+?؝\\xBF\xFA#\xFF\xFF\xBF\xF8\xF1\x9A\xF5D\x96\xDDھ\x96a\xE12\xF9\xFC#\x9F\xD6Y(E\xEDh\xBE \xC5\xF4\x8A>\xBF\x8CF\x8DgY}J\xD8;\xF4\xFF\xAA\xF9\xA0R<\\xF4\x9Eg\xEEf7Ѓ��N` \xDC
+\xE7UyG\xB4y\xE2{B\xBC7J\xF5H\xC0&\xF6\xF6|\xA1tC\x8A\xEB\x83l\xCB\xF3 \x94W\xF0\xD2k\xFCc\xB7\x9DB\x87i\xC7\xD0!x\xE6<\x99Z\xB3\xDB;I~\xF8\xFC׆A\x8BP\xF4\x92?\x8Cc\x98\x81&\x94\xA1e2~\x9DDS\xC2d\xA5Y\xDFZ$V\xEA}\x91\x99er\x83\x81x\x81ң\xFCk\xEB\xAE\xFE\xD6F\xE6.\xBC\xCCC܇fp\xDE\xF7\xABzۑ\xEC\xFE\xB0\xA0\xDA(\x80\x8D��\xF0/p\x92fx\xF5\xFB\xCA̳\xE4\xD2\xF9}tV\xB3NL#\xE4\x86Av\xBF{I\xC9p\x86\x9B-\xDAc܈Ѯ\xFF\xAF\xFDDt.b1\xC1\x87\xB4\xC9/\x9D/\xA3\xC9\xDD\xFF\xFF\xE4L7\xED\LC/D\xE52\xB3\xE6Vnk\xFDm=\xB1+\xB3Ӄ;L\xEBȐn\xC7T \x8EܤV\x98ǃ\xDCiTɆ\x89+\xAB\xEE\xD4#\xCB3{\xDB4\xFA.\xF6\xE98q\x87ؕ'\x87`\xF3\xB4z��h\xBFUR\xD8-\x82I钐\x82\x84\xFE\x91\xD1g\xC9\xB1r\x85\xD7r\xCDf&\x9E\xD5\xB1\xDD+\xE5@z\xB0\xAF\x8C\x9B)րɉB&q\xC2ln\xA9\xBD\xBB\xB0{\xCAQ'Xi\x9D\xBB!��qQ\xC8c\xE3\x82\xFDK\xFB\xF0\xAC\xD7\xD5xW\x9A-\xF4w5\xD8<��$ d\xE8m9\xCC\xEC2\xA4\xA1\x88d\xCE@\xBDw\x9F\x9E\xD3b\xD1\xF7\xB8\x9A\xAAa\xE8g|D\x91\xA0F
\x
9A:\x85\xBE;\x99\xE7\xA0ЏG\xB6\xBA[\xA46\xFE\x9F\x93\xA2Y\xB6w\xE1\xB2\xBF6\xA4\xF7\x97\xDAj\x80\xD1\xFB\xDBG=9?\xE2\xCB\xD6s\xEF\xADi\xB37a@6\xD4\xC5[녪\xD8|\xA3\xD7+u\xD6q\x8B\xBD`:\xF5V9<#\x9E\xF8V\xDBe\xFFr\xB4ɚ\xEF0\xD5\xE3E \xE7f\xB3\x9B\x9F1\x88\xFBD\xC4YB-|R#\x92ӓ#pu\xD82x\xFB\xC1:|\xB5҄\xB5^\xC7\xA6\x8C\xE7#\xEBϜo\x92+R\xF6\xF7\xF1ג\xAD\xC6t5\xA8\x87\xCE(\x86x\xF8i\xD3*\xD3i\xA1a\xC0D\x8E\\xA0\xB0Y\xCE_g\x85\xF8\xB7\xA1\xC4\xB7\x85\xA9\x8Ba~\xA6\xA4\xB2\xEC}(\x98B\xEA\xF9i\xA3\x83
+\xC9\x8C?\xFB+\xF3\xEF\x9F\xBAT\xA6,\x94\xE7\xBE\xF6d\x96\xBE\xB6\xE9\x93\xFA"\xE7!Q\xA3\xEA\x88������\xEFmoov������lmvhd����������������������������\xE8������(����������������������������������������������������������������������������������������@����������������������������������������������������������������trak������\tkhd������������������������������������������(������������������������������������������������������\xFF\xFF������������������������������������@��������\x80������\x80����������$edts������elst��������������������(������������������\x91mdia������ mdhd����������������������������2��������U\xC4����������-hdlr����������������vide������������������������VideoHandler������<minf������vmhd����������������������������$dinf������dref��������������������url ������������\xFCstbl������\x98stsd��������������������\x88vp09������������������������������������������������\x80��\x80��H������H������������������������������������������������
��������������������������������\xFF\xFF������vpcC��������
+\x82����������
+fiel��������btrt����������\x93\x98��\x93\x98������stts��������������������������������stsc��������������������������������������stsz������������k������������stco��������������������,������budta������Zmeta��������������!hdlr����������������mdirappl������������������������-ilst������%\xA9too������data��������������Lavf58.74.100
\ No newline at end of file