Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> | 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <script src="resources/compatibility.js"></script> | 4 <script src="resources/compatibility.js"></script> |
| 5 <script src="resources/audio-testing.js"></script> | 5 <script src="resources/audio-testing.js"></script> |
| 6 <script src="../resources/js-test.js"></script> | 6 <script src="../resources/js-test.js"></script> |
| 7 <script src="resources/panner-model-testing.js"></script> | 7 <script src="resources/panner-model-testing.js"></script> |
| 8 </head> | 8 </head> |
| 9 | 9 |
| 10 <body> | 10 <body> |
| 11 <div id="description"></div> | 11 <div id="description"></div> |
| 12 <div id="console"></div> | 12 <div id="console"></div> |
| 13 <script> | 13 <script> |
| 14 description("Test PannerNode handling of feedback loops"); | 14 description("Test PannerNode handling of feedback loops"); |
| 15 | 15 |
| 16 // See crbug.com/331446. | 16 // See crbug.com/331446. |
| 17 | 17 |
| 18 // Create a simple feedback loop and make sure the panner node processes i t correctly. | 18 // Create a simple feedback loop and make sure the panner node processes i t correctly. |
| 19 | 19 |
| 20 function runTest() { | 20 function runTest() { |
| 21 if (window.testRunner) { | 21 if (window.testRunner) { |
| 22 testRunner.dumpAsText(); | 22 testRunner.dumpAsText(); |
| 23 testRunner.waitUntilDone(); | 23 testRunner.waitUntilDone(); |
| 24 } | 24 } |
| 25 | 25 |
| 26 window.jsTestIsAsync = true; | 26 window.jsTestIsAsync = true; |
| 27 | 27 |
| 28 var sampleRate = 44100; | 28 var sampleRate = 44100; |
| 29 var renderLengthSeconds = 1; | 29 var renderLengthSeconds = 1; |
| 30 | 30 |
| 31 // Create offline audio context. | 31 // Create offline audio context. |
| 32 var context = new OfflineAudioContext(2, sampleRate * renderLengthSeco nds, sampleRate); | 32 var context = new OfflineAudioContext(2, sampleRate * renderLengthSeco nds, sampleRate); |
| 33 | 33 |
| 34 // Create nodes in graph. This is based on the test given in crbug.com /331446. | 34 // Create nodes in graph. This is based on the test given in crbug.com /331446. |
| 35 var source = context.createBufferSource(); | 35 var source = context.createBufferSource(); |
| 36 source.buffer = createImpulseBuffer(context, sampleRate * renderLength Seconds); | 36 source.buffer = createImpulseBuffer(context, sampleRate * renderLength Seconds); |
| 37 var activateNode = context.createGain(); | 37 var activateNode = context.createGain(); |
| 38 var dry = context.createGain(); | 38 var dry = context.createGain(); |
| 39 var wet = context.createGain(); | 39 var wet = context.createGain(); |
| 40 var filter = context.createBiquadFilter(); | 40 var filter = context.createBiquadFilter(); |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 52 activateNode.connect(delay); | 52 activateNode.connect(delay); |
| 53 activateNode.connect(dry); | 53 activateNode.connect(dry); |
| 54 delay.connect(filter); | 54 delay.connect(filter); |
| 55 filter.connect(feedbackNode); | 55 filter.connect(feedbackNode); |
| 56 feedbackNode.connect(delay); | 56 feedbackNode.connect(delay); |
| 57 feedbackNode.connect(wet); | 57 feedbackNode.connect(wet); |
| 58 wet.connect(output); | 58 wet.connect(output); |
| 59 dry.connect(output); | 59 dry.connect(output); |
| 60 | 60 |
| 61 var panner = context.createPanner(); | 61 var panner = context.createPanner(); |
| 62 // Default is 'equalpower', so change it to 'HRTF' for testing. | |
| 63 // https://code.google.com/p/chromium/issues/detail?id=424356 | |
| 64 panner.panningModel = 'HRTF'; | |
|
Raymond Toy
2014/10/17 17:39:30
If you don't do this, will the test fail? I don't
hongchan
2014/10/17 18:13:40
Done.
| |
| 62 panner.coneOuterGain = 0.1; | 65 panner.coneOuterGain = 0.1; |
| 63 panner.coneOuterAngle = 180; | 66 panner.coneOuterAngle = 180; |
| 64 panner.coneInnerAngle = 0; | 67 panner.coneInnerAngle = 0; |
| 65 | 68 |
| 66 panner.connect(context.destination); | 69 panner.connect(context.destination); |
| 67 | 70 |
| 68 output.connect(panner); | 71 output.connect(panner); |
| 69 | 72 |
| 70 // Render. We don't care what the output is, though. | 73 // Render. We don't care what the output is, though. |
| 71 | 74 |
| 72 context.oncomplete = function (event) { | 75 context.oncomplete = function (event) { |
| 73 testPassed("Rendering successfully completed. "); | 76 testPassed("Rendering successfully completed. "); |
| 74 finishJSTest(); | 77 finishJSTest(); |
| 75 }; | 78 }; |
| 76 context.startRendering(); | 79 context.startRendering(); |
| 77 } | 80 } |
| 78 | 81 |
| 79 runTest(); | 82 runTest(); |
| 80 successfullyParsed = true; | 83 successfullyParsed = true; |
| 81 </script> | 84 </script> |
| 82 | 85 |
| 83 </body> | 86 </body> |
| 84 </html> | 87 </html> |
| OLD | NEW |