DescriptionContinue to process AnalyserNode if inputs are silent.
If the input to an AnalyserNode is not connected or it is silent
(because of the silent hint), we must still process the node so that
the internal state is updated with the silent input.
This requires several things to be changed:
1. propagatesSilence() must return false so that
AnalyserNode::process() is called even if the input is silent.
2. Can't disable output of an AnalyserNode when the input
disconnects. If the output were disabled, the node would not get
called to process any more.
3. If the input is disconnected and the output is not connected, we
cannot remove the node from the automatic pull list because then
process() stops getting called.
Basically, process() must always get called as long as the AnalyserNode
is alive.
BUG=683188
TEST=Analyser/handle-silent-inputs.html
Review-Url: https://codereview.chromium.org/2666063003
Cr-Commit-Position: refs/heads/master@{#449379}
Committed: https://chromium.googlesource.com/chromium/src/+/c9ef493e1d238a655011a872886903a1d44d52bd
Patch Set 1 #Patch Set 2 : Add test #
Total comments: 6
Patch Set 3 : Specialize updatePullStatus for AnalyserNodes #Patch Set 4 : Adjust comment per review. #
Messages
Total messages: 14 (6 generated)
|