mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 04:15:43 +00:00
tests for convolver and panner channelCount b=906966
--HG-- extra : transplant_source : %17%A2WFH%18%7E-c%2CZVC%AAc%85%FB%02%BE%BD
This commit is contained in:
parent
07f97e6423
commit
e18bfe88a5
@ -115,8 +115,15 @@ MOCHITEST_FILES := \
|
||||
|
||||
ifneq ($(MOZ_DEBUG)+$(MOZ_WIDGET_TOOLKIT),+gtk2) # bug 911777
|
||||
MOCHITEST_FILES += \
|
||||
test_convolverNodeChannelCount.html \
|
||||
test_delayNodeAtMax.html \
|
||||
$(NULL)
|
||||
endif # bug 911777
|
||||
|
||||
ifneq ($(OS_TARGET),Android) # bug 912474
|
||||
MOCHITEST_FILES += \
|
||||
test_pannerNodeChannelCount.html \
|
||||
$(NULL)
|
||||
endif
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
@ -0,0 +1,61 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Test PannerNode directly above</title>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
<pre id="test">
|
||||
<script src="webaudio.js" type="text/javascript"></script>
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
const signalLength = 2048;
|
||||
const responseLength = 1000;
|
||||
const outputLength = 4096; // > signalLength + responseLength to work around bug 910171
|
||||
|
||||
var gTest = {
|
||||
length: outputLength,
|
||||
numberOfChannels: 2,
|
||||
createGraph: function(context) {
|
||||
var buffer = context.createBuffer(2, signalLength, context.sampleRate);
|
||||
for (var i = 0; i < signalLength; ++i) {
|
||||
var sample = Math.sin(440 * 2 * Math.PI * i / context.sampleRate);
|
||||
// When mixed into a single channel, this produces silence
|
||||
buffer.getChannelData(0)[i] = sample;
|
||||
buffer.getChannelData(1)[i] = -sample;
|
||||
}
|
||||
|
||||
var response = context.createBuffer(2, responseLength, context.sampleRate);
|
||||
for (var i = 0; i < responseLength; ++i) {
|
||||
response.getChannelData(0)[i] = i / responseLength;
|
||||
response.getChannelData(1)[i] = 1 - (i / responseLength);
|
||||
}
|
||||
|
||||
var convolver = context.createConvolver();
|
||||
convolver.buffer = response;
|
||||
convolver.channelCount = 1;
|
||||
|
||||
expectException(function() { convolver.channelCount = 3; },
|
||||
DOMException.NOT_SUPPORTED_ERR);
|
||||
convolver.channelCountMode = "explicit";
|
||||
expectException(function() { convolver.channelCountMode = "max"; },
|
||||
DOMException.NOT_SUPPORTED_ERR);
|
||||
convolver.channelInterpretation = "discrete";
|
||||
convolver.channelInterpretation = "speakers";
|
||||
|
||||
var source = context.createBufferSource();
|
||||
source.buffer = buffer;
|
||||
source.connect(convolver);
|
||||
source.start(0);
|
||||
|
||||
return convolver;
|
||||
},
|
||||
};
|
||||
|
||||
runTest();
|
||||
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
50
content/media/webaudio/test/test_pannerNodeChannelCount.html
Normal file
50
content/media/webaudio/test/test_pannerNodeChannelCount.html
Normal file
@ -0,0 +1,50 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Test PannerNode directly above</title>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
<pre id="test">
|
||||
<script src="webaudio.js" type="text/javascript"></script>
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
var gTest = {
|
||||
length: 2048,
|
||||
numberOfChannels: 2,
|
||||
createGraph: function(context) {
|
||||
var buffer = context.createBuffer(2, 2048, context.sampleRate);
|
||||
for (var i = 0; i < 2048; ++i) {
|
||||
var sample = Math.sin(440 * 2 * Math.PI * i / context.sampleRate);
|
||||
// When mixed into a single channel, this produces silence
|
||||
buffer.getChannelData(0)[i] = sample;
|
||||
buffer.getChannelData(1)[i] = -sample;
|
||||
}
|
||||
|
||||
var panner = context.createPanner();
|
||||
panner.setPosition(1, 2, 3);
|
||||
panner.channelCount = 1;
|
||||
expectException(function() { panner.channelCount = 3; },
|
||||
DOMException.NOT_SUPPORTED_ERR);
|
||||
panner.channelCountMode = "explicit";
|
||||
expectException(function() { panner.channelCountMode = "max"; },
|
||||
DOMException.NOT_SUPPORTED_ERR);
|
||||
panner.channelInterpretation = "discrete";
|
||||
panner.channelInterpretation = "speakers";
|
||||
|
||||
var source = context.createBufferSource();
|
||||
source.buffer = buffer;
|
||||
source.connect(panner);
|
||||
source.start(0);
|
||||
|
||||
return panner;
|
||||
},
|
||||
};
|
||||
|
||||
runTest();
|
||||
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user