content/media/webaudio/test/test_oscillatorNode2.html

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 <!DOCTYPE HTML>
     2 <html>
     3 <head>
     4   <title>Test OscillatorNode lifetime and sine phase</title>
     5   <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
     6   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
     7 </head>
     8 <body>
     9 <pre id="test">
    10 <script src="webaudio.js" type="text/javascript"></script>
    11 <script class="testbody" type="text/javascript">
    13 const signalLength = 2048;
    15 function createOscillator(context) {
    16   var osc = context.createOscillator();
    17   osc.start(0);
    18   osc.stop(signalLength/context.sampleRate);
    19   return osc;
    20 }
    22 function connectUnreferencedOscillator(context, destination) {
    23   var osc = createOscillator(context);
    24   osc.connect(destination);
    25 }
    27 var gTest = {
    28   length: signalLength,
    29   numberOfChannels: 1,
    30   createGraph: function(context) {
    31     var blend = context.createGain();
    33     connectUnreferencedOscillator(context, blend);
    34     // Test that the unreferenced oscillator remains alive until it has finished.
    35     SpecialPowers.forceGC();
    36     SpecialPowers.forceCC();
    38     // Create another sine wave oscillator in negative time, which should
    39     // cancel when mixed with the unreferenced oscillator.
    40     var oscillator = createOscillator(context);
    41     oscillator.frequency.value = -440;
    42     oscillator.connect(blend);
    44     return blend;
    45   },
    46 };
    48 runTest();
    50 </script>
    51 </pre>
    52 </body>
    53 </html>

mercurial