new ChannelSplitter(c, {channelCount: 6}) fails

RESOLVED FIXED in Firefox 62

Status

()

P2
normal
Rank:
15
RESOLVED FIXED
11 months ago
10 months ago

People

(Reporter: toy.raymond, Assigned: padenot)

Tracking

57 Branch
mozilla62
Points:
---

Firefox Tracking Flags

(firefox62 fixed)

Details

Attachments

(2 attachments)

(Reporter)

Description

11 months ago
User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36

Steps to reproduce:

In a console enter

c = new AudioContext()
n = new ChannelSplitterNode(c, {channelCount: 6});


Actual results:

I get an error:
InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable


Expected results:

It should succeed and give a new ChannelSplitterNode.

Don't understand what the error message is trying to tell me.

Perhaps related to bug 1456265

Updated

11 months ago
Component: Untriaged → Web Audio
Product: Firefox → Core
Rank: 15
Priority: -- → P2
See Also: → bug 1443224
Comment hidden (mozreview-request)
Assignee: nobody → padenot
Status: UNCONFIRMED → NEW
Ever confirmed: true

Comment 3

10 months ago
mozreview-review
Comment on attachment 8981532 [details]
Bug 1456946 - Properly reflect the channelCount when set in the ctor using the option object, on a ChannelSplitterNode.

https://reviewboard.mozilla.org/r/247646/#review253962

Looks good.
Attachment #8981532 - Flags: review?(achronop) → review+

Comment 4

10 months ago
mozreview-review
Comment on attachment 8981531 [details]
Bug 1456946 - Don't call AudioNode::Initialize on an ChannelSplitterNode during construction to avoid throwing.

https://reviewboard.mozilla.org/r/247644/#review253966

Looks good, a small comment in the description.

::: commit-message-75ad1:7
(Diff revision 1)
> +
> +We initialize the channelCountMode and channelInterpretation (that cannot be
> +changed) appropriately in the C++ ctor, and the channelCount manually as well.
> +
> +Then we check manually that the options for the channelCountMode and
> +channelInterpretation have not been passed, and are not incorrect.

We check channelCount option too. 

Concerning the "have not been passed, and are not incorrect", this is not exactly what we do. When they are passed we check that they are the correct.
Attachment #8981531 - Flags: review?(achronop) → review+

Comment 5

10 months ago
Pushed by paul@paul.cx:
https://hg.mozilla.org/integration/mozilla-inbound/rev/852233de6408
Don't call AudioNode::Initialize on an ChannelSplitterNode during construction to avoid throwing. r=achronop
https://hg.mozilla.org/integration/mozilla-inbound/rev/91a4b9b7cfa8
Properly reflect the channelCount when set in the ctor using the option object, on a ChannelSplitterNode. r=achronop

Comment 6

10 months ago
Backed out 5 changesets (bug 1456265, bug 1456946) for breaking WPT test. CLOSED TREE

Log:
https://treeherder.mozilla.org/logviewer.html#?job_id=180950155&repo=mozilla-inbound&lineNumber=5484

 INFO - TEST-PASS | /webaudio/the-audio-api/the-convolvernode-interface/convolver-response-1-chan.html | > [1-channel input] produces 1-channel output 
[task 2018-05-30T17:32:32.224Z] 17:32:32     INFO - TEST-UNEXPECTED-FAIL | /webaudio/the-audio-api/the-convolvernode-interface/convolver-response-1-chan.html | X 1: Channel 1: Expected 0 for all values but found 1279 unexpected values: 
[task 2018-05-30T17:32:32.224Z] 17:32:32     INFO - 	Index	Actual
[task 2018-05-30T17:32:32.224Z] 17:32:32     INFO - 	[1]	-2.9802322387695312e-8
[task 2018-05-30T17:32:32.225Z] 17:32:32     INFO - 	[2]	0.33110618591308594
[task 2018-05-30T17:32:32.226Z] 17:32:32     INFO - 	[3]	0.6248594522476196
[task 2018-05-30T17:32:32.226Z] 17:32:32     INFO - 	[4]	0.8481202721595764
[task 2018-05-30T17:32:32.226Z] 17:32:32     INFO - 	...and 1275 more errors. - assert_true: expected true got false
[task 2018-05-30T17:32:32.226Z] 17:32:32     INFO - _logFailed/<@http://web-platform.test:8000/webaudio/resources/audit.js:44:7
[task 2018-05-30T17:32:32.226Z] 17:32:32     INFO - Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:1538:20
[task 2018-05-30T17:32:32.227Z] 17:32:32     INFO - test@http://web-platform.test:8000/resources/testharness.js:548:9
[task 2018-05-30T17:32:32.227Z] 17:32:32     INFO - _logFailed@http://web-platform.test:8000/webaudio/resources/audit.js:43:5
[task 2018-05-30T17:32:32.227Z] 17:32:32     INFO - _finalize@http://web-platform.test:8000/webaudio/resources/audit.js:206:9
[task 2018-05-30T17:32:32.227Z] 17:32:32     INFO - _assert@http://web-platform.test:8000/webaudio/resources/audit.js:219:7
[task 2018-05-30T17:32:32.227Z] 17:32:32     INFO - beConstantValueOf@http://web-platform.test:8000/webaudio/resources/audit.js:640:14
[task 2018-05-30T17:32:32.227Z] 17:32:32     INFO - @http://web-platform.test:8000/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-1-chan.html:99:19
[task 2018-05-30T17:32:32.227Z] 17:32:32     INFO - promise callback*@http://web-platform.test:8000/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-1-chan.html:91:13
[task 2018-05-30T17:32:32.228Z] 17:32:32     INFO - run@http://web-platform.test:8000/webaudio/resources/audit.js:1158:7
[task 2018-05-30T17:32:32.228Z] 17:32:32     INFO - _runNextTask@http://web-platform.test:8000/webaudio/resources/audit.js:1217:9
[task 2018-05-30T17:32:32.228Z] 17:32:32     INFO - done@http://web-platform.test:8000/webaudio/resources/audit.js:1188:7
[task 2018-05-30T17:32:32.228Z] 17:32:32     INFO - @http://web-platform.test:8000/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-1-chan.html:48:13
[task 2018-05-30T17:32:32.229Z] 17:32:32     INFO - run@http://web-platform.test:8000/webaudio/resources/audit.js:1158:7
[task 2018-05-30T17:32:32.229Z] 17:32:32     INFO - _runNextTask@http://web-platform.test:8000/webaudio/resources/audit.js:1217:9
[task 2018-05-30T17:32:32.229Z] 17:32:32     INFO - run@http://web-platform.test:8000/webaudio/resources/audit.js:1287:7
[task 2018-05-30T17:32:32.229Z] 17:32:32     INFO - @http://web-platform.test:8000/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-1-chan.html:229:7
[task 2018-05-30T17:32:32.230Z] 17:32:32     INFO - 
[task 2018-05-30T17:32:32.230Z] 17:32:32     INFO - TEST-PASS | /webaudio/the-audio-api/the-convolvernode-interface/convolver-response-1-chan.html |   Convolver output equals [0,0,0.3311063051223755,0.6248595118522644,0.8481203317642212,0.9757021069526672,0.9932119250297546,0.8986744284629822,0.7027547359466553,0.42755505442619324,0.1041216030716896,-0.23105813562870026,-0.5401715040206909,-0.7883464694023132,-0.9475855827331543,-0.9999247193336487...] with an element-wise tolerance of {"absoluteThreshold":4.1724e-7,"relativeThreshold":0}. 
[task 2018-05-30T17:32:32.231Z] 17:32:32     INFO - TEST-UNEXPECTED-FAIL | /webaudio/the-audio-api/the-convolvernode-interface/convolver-response-1-chan.html | < [1-channel input] 1 out of 2 assertions were failed. - assert_true: expected true got false
[task 2018-05-30T17:32:32.231Z] 17:32:32     INFO - _logFailed/<@http://web-platform.test:8000/webaudio/resources/audit.js:44:7

Push with failures:
https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=be22684cddb8ecf3caebb1d77e0aae42a4859b92&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-classifiedState=unclassified

Backout:
https://hg.mozilla.org/integration/mozilla-inbound/rev/ad5c73d02164b695c1e2036bf90fad730042a251
Flags: needinfo?(padenot)

Comment 7

10 months ago
Pushed by paul@paul.cx:
https://hg.mozilla.org/integration/mozilla-inbound/rev/9a085b0513f7
Don't call AudioNode::Initialize on an ChannelSplitterNode during construction to avoid throwing. r=achronop
https://hg.mozilla.org/integration/mozilla-inbound/rev/9af1ffb437be
Properly reflect the channelCount when set in the ctor using the option object, on a ChannelSplitterNode. r=achronop

Comment 8

10 months ago
Pushed by paul@paul.cx:
https://hg.mozilla.org/integration/mozilla-inbound/rev/4ac439f97956
Don't call AudioNode::Initialize on an ChannelSplitterNode during construction to avoid throwing. r=achronop
https://hg.mozilla.org/integration/mozilla-inbound/rev/8671df890e45
Properly reflect the channelCount when set in the ctor using the option object, on a ChannelSplitterNode. r=achronop

Comment 9

10 months ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/4ac439f97956
https://hg.mozilla.org/mozilla-central/rev/8671df890e45
Status: NEW → RESOLVED
Last Resolved: 10 months ago
status-firefox62: --- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla62
(Assignee)

Updated

10 months ago
Flags: needinfo?(padenot)
You need to log in before you can comment on or make changes to this bug.