Skip to content
  • crogers@google.com's avatar
    Implement channel up-mixing and down-mixing rules · 1f083e8d
    crogers@google.com authored
    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
    1f083e8d