Changeset 86607 in webkit


Ignore:
Timestamp:
May 16, 2011 2:34:54 PM (13 years ago)
Author:
crogers@google.com
Message:

2011-05-16 Chris Rogers <crogers@google.com>

Reviewed by senorblanco@chromium.org.

Add DynamicsCompressorNode implementation
https://bugs.webkit.org/show_bug.cgi?id=60682

No new tests since audio API is not yet implemented.

  • DerivedSources.make:
  • WebCore.gypi:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/DynamicsCompressor.cpp: Added. (WebCore::DynamicsCompressor::DynamicsCompressor): (WebCore::DynamicsCompressor::initializeParameters): (WebCore::DynamicsCompressor::parameterValue): (WebCore::DynamicsCompressor::setEmphasisStageParameters): (WebCore::DynamicsCompressor::setEmphasisParameters): (WebCore::DynamicsCompressor::process): (WebCore::DynamicsCompressor::reset):
  • platform/audio/DynamicsCompressor.h: Added. (WebCore::DynamicsCompressor::isStereo): (WebCore::DynamicsCompressor::sampleRate): (WebCore::DynamicsCompressor::nyquist):
  • platform/audio/DynamicsCompressorKernel.cpp: Added. (WebCore::saturate): (WebCore::DynamicsCompressorKernel::DynamicsCompressorKernel): (WebCore::DynamicsCompressorKernel::setPreDelayTime): (WebCore::DynamicsCompressorKernel::process): (WebCore::DynamicsCompressorKernel::reset):
  • platform/audio/DynamicsCompressorKernel.h: Added. (WebCore::DynamicsCompressorKernel::latencyFrames): (WebCore::DynamicsCompressorKernel::sampleRate):
  • platform/audio/ZeroPole.cpp: Added. (WebCore::ZeroPole::process):
  • platform/audio/ZeroPole.h: Added. (WebCore::ZeroPole::ZeroPole): (WebCore::ZeroPole::reset): (WebCore::ZeroPole::setZero): (WebCore::ZeroPole::setPole): (WebCore::ZeroPole::zero): (WebCore::ZeroPole::pole):
  • webaudio/AudioContext.cpp: (WebCore::AudioContext::createDynamicsCompressor):
  • webaudio/AudioContext.h:
  • webaudio/AudioContext.idl:
  • webaudio/AudioNode.h:
  • webaudio/DynamicsCompressorNode.cpp: Added. (WebCore::DynamicsCompressorNode::DynamicsCompressorNode): (WebCore::DynamicsCompressorNode::~DynamicsCompressorNode): (WebCore::DynamicsCompressorNode::process): (WebCore::DynamicsCompressorNode::reset): (WebCore::DynamicsCompressorNode::initialize): (WebCore::DynamicsCompressorNode::uninitialize):
  • webaudio/DynamicsCompressorNode.h: Added. (WebCore::DynamicsCompressorNode::create):
  • webaudio/DynamicsCompressorNode.idl: Added.
Location:
trunk/Source/WebCore
Files:
9 added
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r86601 r86607  
     12011-05-16  Chris Rogers  <crogers@google.com>
     2
     3        Reviewed by senorblanco@chromium.org.
     4
     5        Add DynamicsCompressorNode implementation
     6        https://bugs.webkit.org/show_bug.cgi?id=60682
     7
     8        No new tests since audio API is not yet implemented.
     9
     10        * DerivedSources.make:
     11        * WebCore.gypi:
     12        * WebCore.xcodeproj/project.pbxproj:
     13        * platform/audio/DynamicsCompressor.cpp: Added.
     14        (WebCore::DynamicsCompressor::DynamicsCompressor):
     15        (WebCore::DynamicsCompressor::initializeParameters):
     16        (WebCore::DynamicsCompressor::parameterValue):
     17        (WebCore::DynamicsCompressor::setEmphasisStageParameters):
     18        (WebCore::DynamicsCompressor::setEmphasisParameters):
     19        (WebCore::DynamicsCompressor::process):
     20        (WebCore::DynamicsCompressor::reset):
     21        * platform/audio/DynamicsCompressor.h: Added.
     22        (WebCore::DynamicsCompressor::isStereo):
     23        (WebCore::DynamicsCompressor::sampleRate):
     24        (WebCore::DynamicsCompressor::nyquist):
     25        * platform/audio/DynamicsCompressorKernel.cpp: Added.
     26        (WebCore::saturate):
     27        (WebCore::DynamicsCompressorKernel::DynamicsCompressorKernel):
     28        (WebCore::DynamicsCompressorKernel::setPreDelayTime):
     29        (WebCore::DynamicsCompressorKernel::process):
     30        (WebCore::DynamicsCompressorKernel::reset):
     31        * platform/audio/DynamicsCompressorKernel.h: Added.
     32        (WebCore::DynamicsCompressorKernel::latencyFrames):
     33        (WebCore::DynamicsCompressorKernel::sampleRate):
     34        * platform/audio/ZeroPole.cpp: Added.
     35        (WebCore::ZeroPole::process):
     36        * platform/audio/ZeroPole.h: Added.
     37        (WebCore::ZeroPole::ZeroPole):
     38        (WebCore::ZeroPole::reset):
     39        (WebCore::ZeroPole::setZero):
     40        (WebCore::ZeroPole::setPole):
     41        (WebCore::ZeroPole::zero):
     42        (WebCore::ZeroPole::pole):
     43        * webaudio/AudioContext.cpp:
     44        (WebCore::AudioContext::createDynamicsCompressor):
     45        * webaudio/AudioContext.h:
     46        * webaudio/AudioContext.idl:
     47        * webaudio/AudioNode.h:
     48        * webaudio/DynamicsCompressorNode.cpp: Added.
     49        (WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
     50        (WebCore::DynamicsCompressorNode::~DynamicsCompressorNode):
     51        (WebCore::DynamicsCompressorNode::process):
     52        (WebCore::DynamicsCompressorNode::reset):
     53        (WebCore::DynamicsCompressorNode::initialize):
     54        (WebCore::DynamicsCompressorNode::uninitialize):
     55        * webaudio/DynamicsCompressorNode.h: Added.
     56        (WebCore::DynamicsCompressorNode::create):
     57        * webaudio/DynamicsCompressorNode.idl: Added.
     58
    1592011-05-16  Yuzo Fujishima  <yuzo@google.com>
    260
  • trunk/Source/WebCore/DerivedSources.make

    r86315 r86607  
    7070    ConvolverNode \
    7171    DelayNode \
     72    DynamicsCompressorNode \
    7273    HighPass2FilterNode \
    7374    JavaScriptAudioNode \
  • trunk/Source/WebCore/WebCore.gypi

    r86583 r86607  
    14061406            'webaudio/ConvolverNode.idl',
    14071407            'webaudio/DelayNode.idl',
     1408            'webaudio/DynamicsCompressorNode.idl',
    14081409            'webaudio/HighPass2FilterNode.idl',
    14091410            'webaudio/JavaScriptAudioNode.idl',
     
    36563657            'platform/audio/Distance.cpp',
    36573658            'platform/audio/Distance.h',
     3659            'platform/audio/DynamicsCompressor.cpp',
     3660            'platform/audio/DynamicsCompressor.h',
     3661            'platform/audio/DynamicsCompressorKernel.cpp',
     3662            'platform/audio/DynamicsCompressorKernel.h',
    36583663            'platform/audio/EqualPowerPanner.cpp',
    36593664            'platform/audio/EqualPowerPanner.h',
     
    36893694            'platform/audio/VectorMath.cpp',
    36903695            'platform/audio/VectorMath.h',
     3696            'platform/audio/ZeroPole.cpp',
     3697            'platform/audio/ZeroPole.h',
    36913698            'platform/audio/chromium/AudioBusChromium.cpp',
    36923699            'platform/audio/fftw/FFTFrameFFTW.cpp',
     
    59455952            'webaudio/DelayProcessor.cpp',
    59465953            'webaudio/DelayProcessor.h',
     5954            'webaudio/DynamicsCompressorNode.cpp',
     5955            'webaudio/DynamicsCompressorNode.h',
    59475956            'webaudio/HighPass2FilterNode.cpp',
    59485957            'webaudio/HighPass2FilterNode.h',
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r86583 r86607  
    58635863                FD3160BF12B0272A00C1A359 /* AudioFileReaderMac.h in Headers */ = {isa = PBXBuildFile; fileRef = FD3160B912B0272A00C1A359 /* AudioFileReaderMac.h */; };
    58645864                FD3160C012B0272A00C1A359 /* FFTFrameMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD3160BA12B0272A00C1A359 /* FFTFrameMac.cpp */; };
     5865                FD537352137B651800008DCE /* ZeroPole.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD537350137B651800008DCE /* ZeroPole.cpp */; };
     5866                FD537353137B651800008DCE /* ZeroPole.h in Headers */ = {isa = PBXBuildFile; fileRef = FD537351137B651800008DCE /* ZeroPole.h */; };
     5867                FD537356137B653B00008DCE /* DynamicsCompressorKernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD537354137B653B00008DCE /* DynamicsCompressorKernel.cpp */; };
     5868                FD537357137B653B00008DCE /* DynamicsCompressorKernel.h in Headers */ = {isa = PBXBuildFile; fileRef = FD537355137B653B00008DCE /* DynamicsCompressorKernel.h */; };
     5869                FD6ED2C3136B8E42003CF072 /* DynamicsCompressorNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD6ED2C1136B8E42003CF072 /* DynamicsCompressorNode.cpp */; };
     5870                FD6ED2C4136B8E42003CF072 /* DynamicsCompressorNode.h in Headers */ = {isa = PBXBuildFile; fileRef = FD6ED2C2136B8E42003CF072 /* DynamicsCompressorNode.h */; };
     5871                FD6ED2C7136B8E66003CF072 /* DynamicsCompressor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD6ED2C5136B8E66003CF072 /* DynamicsCompressor.cpp */; };
     5872                FD6ED2C8136B8E66003CF072 /* DynamicsCompressor.h in Headers */ = {isa = PBXBuildFile; fileRef = FD6ED2C6136B8E66003CF072 /* DynamicsCompressor.h */; };
     5873                FD7868B9136B999200D403DF /* JSDynamicsCompressorNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7868B7136B999200D403DF /* JSDynamicsCompressorNode.cpp */; };
     5874                FD7868BA136B999200D403DF /* JSDynamicsCompressorNode.h in Headers */ = {isa = PBXBuildFile; fileRef = FD7868B8136B999200D403DF /* JSDynamicsCompressorNode.h */; };
    58655875                FDA15E9D12B03EE1003A583A /* JSAudioBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDA15E8112B03EE1003A583A /* JSAudioBuffer.cpp */; };
    58665876                FDA15E9E12B03EE1003A583A /* JSAudioBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA15E8212B03EE1003A583A /* JSAudioBuffer.h */; };
     
    1225112261                FD06DFA3134A4DEF006F5D7D /* DefaultAudioDestinationNode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DefaultAudioDestinationNode.cpp; sourceTree = "<group>"; };
    1225212262                FD06DFA4134A4DEF006F5D7D /* DefaultAudioDestinationNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DefaultAudioDestinationNode.h; sourceTree = "<group>"; };
    12253                 FD1660A413787C6D001FFA7B /* DenormalDisabler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DenormalDisabler.h; path = webaudio/audio/DenormalDisabler.h; sourceTree = SOURCE_ROOT; };
     12263                FD1660A413787C6D001FFA7B /* DenormalDisabler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DenormalDisabler.h; sourceTree = "<group>"; };
    1225412264                FD2DBF0E12B048A300ED98C6 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = /System/Library/Frameworks/Accelerate.framework; sourceTree = "<absolute>"; };
    1225512265                FD2DBF0F12B048A300ED98C6 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; };
     
    1239012400                FD3160B912B0272A00C1A359 /* AudioFileReaderMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioFileReaderMac.h; sourceTree = "<group>"; };
    1239112401                FD3160BA12B0272A00C1A359 /* FFTFrameMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FFTFrameMac.cpp; sourceTree = "<group>"; };
     12402                FD537350137B651800008DCE /* ZeroPole.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ZeroPole.cpp; sourceTree = "<group>"; };
     12403                FD537351137B651800008DCE /* ZeroPole.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZeroPole.h; sourceTree = "<group>"; };
     12404                FD537354137B653B00008DCE /* DynamicsCompressorKernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DynamicsCompressorKernel.cpp; sourceTree = "<group>"; };
     12405                FD537355137B653B00008DCE /* DynamicsCompressorKernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DynamicsCompressorKernel.h; sourceTree = "<group>"; };
     12406                FD6ED2C1136B8E42003CF072 /* DynamicsCompressorNode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DynamicsCompressorNode.cpp; sourceTree = "<group>"; };
     12407                FD6ED2C2136B8E42003CF072 /* DynamicsCompressorNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DynamicsCompressorNode.h; sourceTree = "<group>"; };
     12408                FD6ED2C5136B8E66003CF072 /* DynamicsCompressor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DynamicsCompressor.cpp; sourceTree = "<group>"; };
     12409                FD6ED2C6136B8E66003CF072 /* DynamicsCompressor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DynamicsCompressor.h; sourceTree = "<group>"; };
     12410                FD6ED2C9136B8E9D003CF072 /* DynamicsCompressorNode.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DynamicsCompressorNode.idl; sourceTree = "<group>"; };
     12411                FD7868B7136B999200D403DF /* JSDynamicsCompressorNode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDynamicsCompressorNode.cpp; sourceTree = "<group>"; };
     12412                FD7868B8136B999200D403DF /* JSDynamicsCompressorNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDynamicsCompressorNode.h; sourceTree = "<group>"; };
    1239212413                FDA15E8112B03EE1003A583A /* JSAudioBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSAudioBuffer.cpp; sourceTree = "<group>"; };
    1239312414                FDA15E8212B03EE1003A583A /* JSAudioBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSAudioBuffer.h; sourceTree = "<group>"; };
     
    1954019561                                FD315FE612B0267600C1A359 /* DelayProcessor.cpp */,
    1954119562                                FD315FE712B0267600C1A359 /* DelayProcessor.h */,
     19563                                FD6ED2C1136B8E42003CF072 /* DynamicsCompressorNode.cpp */,
     19564                                FD6ED2C2136B8E42003CF072 /* DynamicsCompressorNode.h */,
     19565                                FD6ED2C9136B8E9D003CF072 /* DynamicsCompressorNode.idl */,
    1954219566                                FD315FE812B0267600C1A359 /* HighPass2FilterNode.cpp */,
    1954319567                                FD315FE912B0267600C1A359 /* HighPass2FilterNode.h */,
     
    1959119615                                FD31605A12B026F700C1A359 /* Distance.cpp */,
    1959219616                                FD31605B12B026F700C1A359 /* Distance.h */,
     19617                                FD6ED2C5136B8E66003CF072 /* DynamicsCompressor.cpp */,
     19618                                FD6ED2C6136B8E66003CF072 /* DynamicsCompressor.h */,
     19619                                FD537354137B653B00008DCE /* DynamicsCompressorKernel.cpp */,
     19620                                FD537355137B653B00008DCE /* DynamicsCompressorKernel.h */,
    1959319621                                FD1660A413787C6D001FFA7B /* DenormalDisabler.h */,
    1959419622                                FD31605C12B026F700C1A359 /* EqualPowerPanner.cpp */,
     
    1962219650                                FD31607812B026F700C1A359 /* VectorMath.cpp */,
    1962319651                                FD31607912B026F700C1A359 /* VectorMath.h */,
     19652                                FD537350137B651800008DCE /* ZeroPole.cpp */,
     19653                                FD537351137B651800008DCE /* ZeroPole.h */,
    1962419654                        );
    1962519655                        path = audio;
     
    1967419704                                FDA15ECF12B03F94003A583A /* JSDelayNode.cpp */,
    1967519705                                FDA15ED012B03F94003A583A /* JSDelayNode.h */,
     19706                                FD7868B7136B999200D403DF /* JSDynamicsCompressorNode.cpp */,
     19707                                FD7868B8136B999200D403DF /* JSDynamicsCompressorNode.h */,
    1967619708                                FDA15EBF12B03F2D003A583A /* JSHighPass2FilterNode.cpp */,
    1967719709                                FDA15EC012B03F2D003A583A /* JSHighPass2FilterNode.h */,
     
    2277222804                                E1BE512E0CF6C512002EA959 /* XSLTUnicodeSort.h in Headers */,
    2277322805                                977E2E0F12F0FC9C00C13379 /* XSSFilter.h in Headers */,
     22806                                FD6ED2C4136B8E42003CF072 /* DynamicsCompressorNode.h in Headers */,
     22807                                FD6ED2C8136B8E66003CF072 /* DynamicsCompressor.h in Headers */,
     22808                                FD7868BA136B999200D403DF /* JSDynamicsCompressorNode.h in Headers */,
    2277422809                                37AFFDF71370A0B800E895C0 /* SharedBufferCRLFLineReader.h in Headers */,
    2277522810                                379E371713736A6600B9E919 /* QuotedPrintable.h in Headers */,
    2277622811                                FD1660A513787C6D001FFA7B /* DenormalDisabler.h in Headers */,
    2277722812                                BCE5644E137A34D6007D2934 /* ConsoleTypes.h in Headers */,
     22813                                FD537353137B651800008DCE /* ZeroPole.h in Headers */,
     22814                                FD537357137B653B00008DCE /* DynamicsCompressorKernel.h in Headers */,
    2277822815                                BCF7E491137CD7C7001DDAE7 /* AdjustViewSizeOrNot.h in Headers */,
    2277922816                                B1E54593134629C10092A545 /* CallbackTask.h in Headers */,
     
    2544325480                                E1BE512D0CF6C512002EA959 /* XSLTUnicodeSort.cpp in Sources */,
    2544425481                                977E2E0E12F0FC9C00C13379 /* XSSFilter.cpp in Sources */,
     25482                                FD6ED2C3136B8E42003CF072 /* DynamicsCompressorNode.cpp in Sources */,
     25483                                FD6ED2C7136B8E66003CF072 /* DynamicsCompressor.cpp in Sources */,
     25484                                FD7868B9136B999200D403DF /* JSDynamicsCompressorNode.cpp in Sources */,
    2544525485                                37AFFDF61370A0B800E895C0 /* SharedBufferCRLFLineReader.cpp in Sources */,
    2544625486                                379E371613736A6600B9E919 /* QuotedPrintable.cpp in Sources */,
     25487                                FD537352137B651800008DCE /* ZeroPole.cpp in Sources */,
     25488                                FD537356137B653B00008DCE /* DynamicsCompressorKernel.cpp in Sources */,
    2544725489                        );
    2544825490                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/Source/WebCore/webaudio/AudioContext.cpp

    r83875 r86607  
    4343#include "DelayNode.h"
    4444#include "Document.h"
     45#include "DynamicsCompressorNode.h"
    4546#include "FFTFrame.h"
    4647#include "HRTFDatabaseLoader.h"
     
    292293}
    293294
     295PassRefPtr<DynamicsCompressorNode> AudioContext::createDynamicsCompressor()
     296{
     297    ASSERT(isMainThread());
     298    lazyInitialize();
     299    return DynamicsCompressorNode::create(this, m_destinationNode->sampleRate());
     300}
     301
    294302PassRefPtr<RealtimeAnalyserNode> AudioContext::createAnalyser()
    295303{
  • trunk/Source/WebCore/webaudio/AudioContext.h

    r82963 r86607  
    5656class HighPass2FilterNode;
    5757class ConvolverNode;
     58class DynamicsCompressorNode;
    5859class RealtimeAnalyserNode;
    5960class JavaScriptAudioNode;
     
    105106    PassRefPtr<AudioPannerNode> createPanner();
    106107    PassRefPtr<ConvolverNode> createConvolver();
     108    PassRefPtr<DynamicsCompressorNode> createDynamicsCompressor();   
    107109    PassRefPtr<RealtimeAnalyserNode> createAnalyser();
    108110    PassRefPtr<JavaScriptAudioNode> createJavaScriptNode(size_t bufferSize);
  • trunk/Source/WebCore/webaudio/AudioContext.idl

    r84969 r86607  
    6363        AudioPannerNode createPanner();
    6464        ConvolverNode createConvolver();
     65        DynamicsCompressorNode createDynamicsCompressor();
    6566        RealtimeAnalyserNode createAnalyser();
    6667        JavaScriptAudioNode createJavaScriptNode(in unsigned long bufferSize);
  • trunk/Source/WebCore/webaudio/AudioNode.h

    r70604 r86607  
    6868        NodeTypeChannelMerger,
    6969        NodeTypeAnalyser,
     70        NodeTypeDynamicsCompressor,
    7071        NodeTypeEnd
    7172    };
Note: See TracChangeset for help on using the changeset viewer.