content/media/webaudio/test/test_bug972678.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 buffers do not interfere when scheduled in sequence</title>
     5   <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
     6   <script type="text/javascript" src="webaudio.js"></script>
     7   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
     8 </head>
     9 <body>
    10 <pre id="test">
    11 <script class="testbody" type="text/javascript">
    12 var OFFSETS = [0.005, 0.01, 0.02, 0.03];
    13 var LENGTH = 128;
    15 var gTest = {
    16   length: 128 * OFFSETS.length,
    17   numberOfChannels: 1,
    19   createGraph: function(context) {
    20     var gain = context.createGain();
    22     // create a repeating sample
    23     var repeatingSample = context.createBuffer(1, 2, context.sampleRate);
    24     var c = repeatingSample.getChannelData(0);
    25     for (var i = 0; i < repeatingSample.length; ++i) {
    26       c[i] = i % 2 == 0 ? 1 : -1;
    27     }
    29     OFFSETS.forEach(function (offset, offsetIdx) {
    30       // Schedule a set of nodes to repeat the sample.
    31       for (var i = 0; i < LENGTH; i += repeatingSample.length) {
    32         var source = context.createBufferSource();
    33         source.buffer = repeatingSample;
    34         source.connect(gain);
    35         source.start((offsetIdx * LENGTH + i + offset) / context.sampleRate);
    36       }
    38       buffer = context.createBuffer(1, LENGTH, context.sampleRate);
    39       c = buffer.getChannelData(0);
    40       for (var i = 0; i < buffer.length; ++i) {
    41         c[i] = i % 2 == 0 ? -1 : 1;
    42       }
    44       var source = context.createBufferSource();
    45       source.buffer = buffer;
    46       source.connect(gain);
    47       source.start((offsetIdx * LENGTH + offset) / context.sampleRate);
    48     });
    50     return gain;
    51   },
    53   createExpectedBuffers: function(context) {
    54     return context.createBuffer(1, gTest.length, context.sampleRate);
    55   },
    56 };
    58 runTest();
    59 </script>
    60 </pre>
    61 </body>
    62 </html>

mercurial