Implement channel up-mixing and down-mixing rules
https://bugs.webkit.org/show_bug.cgi?id=110812
Reviewed by Kenneth Russell.
Source/WebCore:
Please see Web Audio specification for details of the AudioNode mixing rules attributes:
https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#UpMix
Test: webaudio/audionode-channel-rules.html
* Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::AudioNode):
(WebCore::AudioNode::channelCount):
(WebCore):
(WebCore::AudioNode::setChannelCount):
(WebCore::AudioNode::channelCountMode):
(WebCore::AudioNode::setChannelCountMode):
(WebCore::AudioNode::channelInterpretation):
(WebCore::AudioNode::setChannelInterpretation):
(WebCore::AudioNode::updateChannelsForInputs):
* Modules/webaudio/AudioNode.h:
(AudioNode):
(WebCore::AudioNode::internalChannelCountMode):
(WebCore::AudioNode::internalChannelInterpretation):
* Modules/webaudio/AudioNode.idl:
* Modules/webaudio/AudioNodeInput.cpp:
(WebCore::AudioNodeInput::numberOfChannels):
(WebCore::AudioNodeInput::bus):
(WebCore::AudioNodeInput::internalSummingBus):
(WebCore::AudioNodeInput::sumAllConnections):
(WebCore::AudioNodeInput::pull):
* Modules/webaudio/AudioNodeInput.h:
(AudioNodeInput):
* Modules/webaudio/ConvolverNode.cpp:
(WebCore::ConvolverNode::ConvolverNode):
* Modules/webaudio/DefaultAudioDestinationNode.cpp:
(WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):
* Modules/webaudio/PannerNode.cpp:
(WebCore::PannerNode::PannerNode):
* platform/audio/AudioBus.cpp:
(WebCore::AudioBus::speakersCopyFrom):
(WebCore::AudioBus::speakersSumFrom):
(WebCore::AudioBus::speakersSumFrom5_1_ToMono):
(WebCore):
* platform/audio/AudioBus.h:
(AudioBus):
LayoutTests:
* webaudio/audionode-channel-rules-expected.txt: Added.
* webaudio/audionode-channel-rules.html: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144235 268f45cc-cd09-0410-ab3c-d52691b4dbfc
14 files changed