<!DOCTYPE HTML> <html> <meta charset="utf-8"> <head> <title>Test MediaStreamAudioSourceNode passthrough</title> <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="webaudio.js"></script> <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> </head> <body> <pre id="test"> <script class="testbody" type="text/javascript"> function createBuffer(context, delay) { var buffer = context.createBuffer(2, 2048, context.sampleRate); for (var i = 0; i < 2048 - delay; ++i) { buffer.getChannelData(0)[i + delay] = Math.sin(440 * 2 * Math.PI * i / context.sampleRate); buffer.getChannelData(1)[i + delay] = -buffer.getChannelData(0)[i + delay]; } return buffer; } var gTest = { length: 2048, skipOfflineContextTests: true, createGraph: function(context) { var sourceGraph = new AudioContext(); var source = sourceGraph.createBufferSource(); source.buffer = createBuffer(context, 0); var dest = sourceGraph.createMediaStreamDestination(); source.connect(dest); source.start(0); var mediaStreamSource = context.createMediaStreamSource(dest.stream); // channelCount and channelCountMode should have no effect mediaStreamSource.channelCount = 1; mediaStreamSource.channelCountMode = "explicit"; var srcWrapped = SpecialPowers.wrap(mediaStreamSource); ok("passThrough" in srcWrapped, "MediaStreamAudioSourceNode should support the passThrough API"); srcWrapped.passThrough = true; return mediaStreamSource; }, createExpectedBuffers: function(context) { return context.createBuffer(2, 2048, context.sampleRate); }, }; runTest(); </script> </pre> </body> </html>