webaudio: Implement IIRFilterNode (#33001)

* Basic IIRFIlterNode bindings

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Add constructor to BaseAudioContext

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Update IDL and use statements

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Update non-crashing test expectations

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Tidy

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Add missing spec link

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Optimize error checks

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Pass context channel count to servo-media

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Update test expectations

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Update legacy expectations

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Add IIRFilterNode in interfaces.html

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Update MANIFEST

Signed-off-by: Daniel Adams <msub2official@gmail.com>

---------

Signed-off-by: Daniel Adams <msub2official@gmail.com>
This commit is contained in:
Daniel Adams 2024-08-11 14:27:54 -10:00 committed by GitHub
parent 1af3ad8a74
commit 5520a9eb50
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
19 changed files with 206 additions and 175 deletions

View file

@ -5,9 +5,6 @@
[X node = new IIRFilterNode(c, {"feedforward":[1,0.5\]}) threw "ReferenceError" instead of EcmaScript error TypeError.]
expected: FAIL
[Executing "functionality"]
expected: FAIL
[X node = new IIRFilterNode(, {"feedback":[1,0.5\]}) threw "ReferenceError" instead of EcmaScript error TypeError.]
expected: FAIL
@ -17,15 +14,9 @@
[< [default constructor\] 1 out of 1 assertions were failed.]
expected: FAIL
[Executing "test AudioNodeOptions"]
expected: FAIL
[< [test AudioNodeOptions\] 1 out of 1 assertions were failed.]
expected: FAIL
[Executing "default constructor"]
expected: FAIL
[< [constructor options\] 2 out of 2 assertions were failed.]
expected: FAIL

View file

@ -34,10 +34,3 @@
[X createIIRFilter([\], [1\]) threw "TypeError" instead of NotSupportedError.]
expected: FAIL
[Executing "parameters"]
expected: FAIL
[Executing "exceptions-getFrequencyData"]
expected: FAIL

View file

@ -1,10 +1,3 @@
[iirfilter-getFrequencyResponse.html]
[Executing "compare IIR and biquad"]
expected: FAIL
[Executing "1-pole IIR"]
expected: FAIL
[Executing "getFrequencyResponse"]
expected: FAIL

View file

@ -5,48 +5,9 @@
[X createIIRFilter with normalized coefficients incorrectly threw TypeError: "context.createIIRFilter is not a function".]
expected: FAIL
[Executing "coefficient-normalization"]
expected: FAIL
[Executing "7: peaking"]
expected: FAIL
[Executing "0: lowpass"]
expected: FAIL
[Executing "one-zero"]
expected: FAIL
[Executing "6: highshelf"]
expected: FAIL
[< [coefficient-normalization\] 2 out of 2 assertions were failed.]
expected: FAIL
[Executing "5: lowshelf"]
expected: FAIL
[Executing "one-pole"]
expected: FAIL
[Executing "1: highpass"]
expected: FAIL
[Executing "4: allpass"]
expected: FAIL
[Executing "4th-order-iir"]
expected: FAIL
[Executing "multi-channel"]
expected: FAIL
[Executing "2: bandpass"]
expected: FAIL
[Executing "3: notch"]
expected: FAIL
[# AUDIT TASK RUNNER FINISHED: 1 out of 13 tasks were failed.]
expected: FAIL

View file

@ -1,22 +1,3 @@
[test-iirfilternode.html]
[the first feedback coefficient must be non-zero]
expected: FAIL
[feedback coefficients can not be empty]
expected: FAIL
[IIRFilterNode getFrequencyResponse handles invalid frequencies properly]
expected: FAIL
[more than 20 feedback coefficients can not be used]
expected: FAIL
[feedforward coefficients can not be empty]
expected: FAIL
[at least one feedforward coefficient must be non-zero]
expected: FAIL
[more than 20 feedforward coefficients can not be used]
expected: FAIL

View file

@ -1,13 +1,4 @@
[ctor-iirfilter.html]
[Executing "default constructor"]
expected: FAIL
[Executing "test AudioNodeOptions"]
expected: FAIL
[Executing "functionality"]
expected: FAIL
[X node0 = new IIRFilterNode(context, {"feedforward":[1\],"feedback":[1,-0.9\]}) incorrectly threw TypeError: "window[name\] is not a constructor".]
expected: FAIL

View file

@ -1,10 +1,4 @@
[iirfilter-basic.html]
[Executing "parameters"]
expected: FAIL
[Executing "exceptions-getFrequencyData"]
expected: FAIL
[X context.createIIRFilter does not exist. Got undefined.]
expected: FAIL

View file

@ -1,9 +1,3 @@
[iirfilter-getFrequencyResponse.html]
[Executing "1-pole IIR"]
expected: FAIL
[Executing "compare IIR and biquad"]
expected: FAIL
[Executing "getFrequencyResponse"]
expected: FAIL
expected: FAIL

View file

@ -1,43 +1,4 @@
[iirfilter.html]
[Executing "coefficient-normalization"]
expected: FAIL
[Executing "one-zero"]
expected: FAIL
[Executing "one-pole"]
expected: FAIL
[Executing "0: lowpass"]
expected: FAIL
[Executing "1: highpass"]
expected: FAIL
[Executing "2: bandpass"]
expected: FAIL
[Executing "3: notch"]
expected: FAIL
[Executing "4: allpass"]
expected: FAIL
[Executing "5: lowshelf"]
expected: FAIL
[Executing "6: highshelf"]
expected: FAIL
[Executing "7: peaking"]
expected: FAIL
[Executing "multi-channel"]
expected: FAIL
[Executing "4th-order-iir"]
expected: FAIL
[X createIIRFilter with normalized coefficients incorrectly threw TypeError: "context.createIIRFilter is not a function".]
expected: FAIL

View file

@ -1,21 +1,3 @@
[test-iirfilternode.html]
[feedforward coefficients can not be empty]
expected: FAIL
[feedback coefficients can not be empty]
expected: FAIL
[more than 20 feedforward coefficients can not be used]
expected: FAIL
[more than 20 feedback coefficients can not be used]
expected: FAIL
[at least one feedforward coefficient must be non-zero]
expected: FAIL
[the first feedback coefficient must be non-zero]
expected: FAIL
[IIRFilterNode getFrequencyResponse handles invalid frequencies properly]
expected: FAIL

View file

@ -13459,7 +13459,7 @@
]
],
"interfaces.html": [
"2ab9214e53c431e4a599254d4cb498fd75eef4ed",
"ee31ffa62be1623831a6379ace46a4784df7608c",
[
null,
{}

View file

@ -165,6 +165,7 @@ test_interfaces([
"HTMLUListElement",
"HTMLUnknownElement",
"HTMLVideoElement",
"IIRFilterNode",
"ImageData",
"Image",
"InputEvent",