OLD | NEW |
---|---|
1 <!DOCTYPE HTML"> | 1 <!DOCTYPE html> |
2 <html> | 2 <title>Verify drawing video frames to canvas using media stream.</title> |
3 <head> | 3 <script src="../resources/testharness.js"></script> |
4 <script src=media-file.js></script> | 4 <script src="../resources/testharnessreport.js"></script> |
5 <!-- TODO(foolip): Convert test to testharness.js. crbug.com/588956 | 5 <video></video> |
6 (Please avoid writing new tests using video-test.js) --> | 6 <canvas width="1" height="1"></canvas> |
7 <script src=video-test.js></script> | 7 <script> |
8 <script src=video-played.js></script> | 8 async_test(function(t) { |
9 <script src="../resources/js-test.js"></script> | 9 var video = document.querySelector("video"); |
10 var canvas = document.querySelector("canvas"); | |
11 navigator.webkitGetUserMedia({ video: true }, gotStream, getStreamFailed); | |
10 | 12 |
11 <script type="text/javascript"> | 13 function gotStream(stream) { |
fs
2016/06/30 18:43:42
Use an anonymous function?
Srirama
2016/06/30 19:16:22
Done.
| |
12 | 14 // start preview. |
13 if (window.internals) | 15 video.src = URL.createObjectURL(stream); |
14 window.internals.settings.setMediaPlaybackRequiresUserGesture(true); | |
15 | |
16 function gotStream(stream) | |
17 { | |
18 consoleWrite("got a stream"); | |
19 previewURL = URL.createObjectURL(stream); | |
20 video.src = previewURL; | |
21 consoleWrite("start preview"); | |
22 } | |
23 | |
24 function gotStreamFailed(error) | |
25 { | |
26 consoleWrite("Failed to get access to local media. Error code was " + error. code); | |
27 } | |
28 | |
29 function canplaythrough() | |
30 { | |
31 width = canvas.width; | |
32 height = canvas.height; | |
33 ctx = canvas.getContext("2d"); | |
34 ctx.fillStyle = 'black'; | |
35 ctx.fillRect(0, 0, width, height); | |
36 | |
37 consoleWrite("paint to canvas"); | |
38 ctx.drawImage(video, 0, 0, width, height); | |
39 shouldBeTrue("!!ctx.getImageData(0, 0, width, height)"); | |
40 | |
41 frame = ctx.getImageData(0, 0, width, height); | |
42 r = frame.data[0]; | |
43 g = frame.data[1]; | |
44 b = frame.data[2]; | |
45 testExpected("r+g+b", 0, "!="); | |
46 endTest(); | |
47 } | |
48 | |
49 function playPreview() | |
50 { | |
51 findMediaElement(); | |
52 canvas = document.getElementsByTagName('canvas')[0]; | |
53 try { | |
54 consoleWrite("request access to local media"); | |
55 navigator.webkitGetUserMedia({video:true}, gotStream, gotStreamFailed); | |
56 } catch (e) { | |
57 consoleWrite("getUserMedia error " + "(" + e.name + " / " + e.message + ")"); | |
58 } | 16 } |
59 | 17 |
60 waitForEvent('canplaythrough', canplaythrough); | 18 function getStreamFailed(error) { |
fs
2016/06/30 18:43:42
Use t.unreached_func() instead of this?
Srirama
2016/06/30 19:16:21
Done.
| |
61 } | 19 assert_unreached(); |
20 } | |
62 | 21 |
63 </script> | 22 video.oncanplaythrough = t.step_func_done(function() { |
64 </head> | 23 var width = canvas.width; |
24 var height = canvas.height; | |
25 var ctx = canvas.getContext("2d"); | |
26 ctx.fillStyle = "black"; | |
27 ctx.fillRect(0, 0, width, height); | |
65 | 28 |
66 <body onload="playPreview()"> | 29 // paint to canvas. |
67 <video width="320" height="240" autoplay="autoplay"></video> | 30 ctx.drawImage(video, 0, 0, width, height); |
68 <canvas width="1" height="1" ></canvas> | 31 var frame = ctx.getImageData(0, 0, width, height); |
69 </body> | 32 assert_not_equals(frame, null); |
70 </html> | 33 assert_not_equals(frame.data[0] + frame.data[1] + frame.data[2], 0); |
34 }); | |
35 }); | |
36 </script> | |
OLD | NEW |