Open Bug 924718 Opened 11 years ago Updated 2 years ago

Handle filter tail time (remove glitches) in BiquadFilterNode channel count changes

Categories

(Core :: Web Audio, defect, P4)

x86
macOS
defect

Tracking

()

People

(Reporter: karlt, Unassigned)

References

Details

(Whiteboard: [quality])

With discrete interpretation, there is nothing more to do for channel count increases, and decreases could be managed just by pruning the remaining elements of mBiquads when they are finished. "speakers" interpretation may be a bit more complex than bug 857610. One option is to linearly remix channels so that they can be treated just like discrete interpretation. For example, stereo channels can be remixed into mean and difference channels. The remixing would of course need to be reversed for the output. A second option is to take advantage of the linearity of the filter operation by keeping the old elements from mBiquads until they have finished and feeding them with silent input. The channel count of each old set of filters would also need to be recorded to know how to mix the output. This would also allow reusing existing filters if the channel count reverts to a previous count. GetAudioChannelsSuperset() is probably the more future-proof way to select the number of output channels, if we want to mix L R C well with L R SL SR.
Priority: -- → P2
Priority: P2 → P3
Whiteboard: [blocking-webaudio-] → [quality]
Mass change P3->P4 to align with new Mozilla triage process.
Priority: P3 → P4
A third option may be to remix the state of the filters on channel count changes.
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.