Changeset 70742 in webkit


Ignore:
Timestamp:
Oct 27, 2010 8:21:56 PM (14 years ago)
Author:
crogers@google.com
Message:

2010-10-27 Chris Rogers <crogers@google.com>

Reviewed by Kenneth Russell.

Fixup files affected by VectorMath and related API changes
https://bugs.webkit.org/show_bug.cgi?id=48481

No new tests since audio API is not yet implemented.

  • platform/audio/AudioBus.cpp:
  • platform/audio/AudioChannel.cpp:
  • platform/audio/Biquad.cpp:
  • platform/audio/FFTConvolver.cpp:
  • platform/audio/FFTConvolver.h:
  • platform/audio/Panner.cpp: (WebCore::Panner::create):
  • platform/audio/Reverb.cpp: (WebCore::calculateNormalizationScale): (WebCore::Reverb::initialize): (WebCore::Reverb::process):
  • platform/audio/ReverbAccumulationBuffer.cpp:
  • platform/audio/ReverbAccumulationBuffer.h:
  • platform/audio/ReverbConvolver.cpp: (WebCore::ReverbConvolver::ReverbConvolver): (WebCore::ReverbConvolver::process):
  • platform/audio/ReverbConvolver.h:
  • platform/audio/ReverbConvolverStage.cpp: (WebCore::ReverbConvolverStage::ReverbConvolverStage):
  • platform/audio/ReverbConvolverStage.h:
  • platform/audio/ReverbInputBuffer.h:
Location:
trunk/WebCore
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r70741 r70742  
     12010-10-27  Chris Rogers  <crogers@google.com>
     2
     3        Reviewed by Kenneth Russell.
     4
     5        Fixup files affected by VectorMath and related API changes
     6        https://bugs.webkit.org/show_bug.cgi?id=48481
     7
     8        No new tests since audio API is not yet implemented.
     9
     10        * platform/audio/AudioBus.cpp:
     11        * platform/audio/AudioChannel.cpp:
     12        * platform/audio/Biquad.cpp:
     13        * platform/audio/FFTConvolver.cpp:
     14        * platform/audio/FFTConvolver.h:
     15        * platform/audio/Panner.cpp:
     16        (WebCore::Panner::create):
     17        * platform/audio/Reverb.cpp:
     18        (WebCore::calculateNormalizationScale):
     19        (WebCore::Reverb::initialize):
     20        (WebCore::Reverb::process):
     21        * platform/audio/ReverbAccumulationBuffer.cpp:
     22        * platform/audio/ReverbAccumulationBuffer.h:
     23        * platform/audio/ReverbConvolver.cpp:
     24        (WebCore::ReverbConvolver::ReverbConvolver):
     25        (WebCore::ReverbConvolver::process):
     26        * platform/audio/ReverbConvolver.h:
     27        * platform/audio/ReverbConvolverStage.cpp:
     28        (WebCore::ReverbConvolverStage::ReverbConvolverStage):
     29        * platform/audio/ReverbConvolverStage.h:
     30        * platform/audio/ReverbInputBuffer.h:
     31
    1322010-10-27  Kinuko Yasuda  <kinuko@chromium.org>
    233
  • trunk/WebCore/platform/audio/AudioBus.cpp

    r66755 r70742  
    3333#include "AudioBus.h"
    3434
    35 #include "Accelerate.h"
     35#include "VectorMath.h"
    3636#include <algorithm>
    3737#include <assert.h>
     
    4242namespace WebCore {
    4343
     44using namespace VectorMath;
     45   
    4446AudioBus::AudioBus(unsigned numberOfChannels, size_t length, bool allocate)
    4547    : m_length(length)
  • trunk/WebCore/platform/audio/AudioChannel.cpp

    r66758 r70742  
    3333#include "AudioChannel.h"
    3434
    35 #include "Accelerate.h"
     35#include "VectorMath.h"
    3636#include <algorithm>
    3737#include <math.h>
     
    3939
    4040namespace WebCore {
     41
     42using namespace VectorMath;
    4143
    4244void AudioChannel::scale(double scale)
  • trunk/WebCore/platform/audio/Biquad.cpp

    r67132 r70742  
    3333#include "Biquad.h"
    3434
    35 #include "Accelerate.h"
    3635#include <algorithm>
    3736#include <float.h>
    3837#include <math.h>
    3938#include <stdio.h>
     39
     40#if OS(DARWIN)
     41#include <Accelerate/Accelerate.h>
     42#endif
    4043
    4144namespace WebCore {
  • trunk/WebCore/platform/audio/FFTConvolver.cpp

    r66529 r70742  
    3333#include "FFTConvolver.h"
    3434
    35 #include "Accelerate.h"
     35#include "VectorMath.h"
    3636
    3737namespace WebCore {
    3838
     39using namespace VectorMath;
     40   
    3941FFTConvolver::FFTConvolver(size_t fftSize)
    4042    : m_frame(fftSize)
  • trunk/WebCore/platform/audio/FFTConvolver.h

    r66529 r70742  
    3030#define FFTConvolver_h
    3131
    32 #include "AudioFloatArray.h"
     32#include "AudioArray.h"
    3333#include "FFTFrame.h"
    3434
  • trunk/WebCore/platform/audio/Panner.cpp

    r66753 r70742  
    4646    switch (model) {
    4747    case PanningModelEqualPower:
    48         panner = adoptPtr(new EqualPowerPanner());
     48        panner = adoptPtr(new EqualPowerPanner(sampleRate));
    4949        break;
    5050
  • trunk/WebCore/platform/audio/Reverb.cpp

    r66413 r70742  
    5757    // Normalize by RMS power
    5858    size_t numberOfChannels = response->numberOfChannels();
    59     size_t frameSize = response->frameSize();
     59    size_t length = response->length();
    6060
    6161    double power = 0.0;
    6262
    6363    for (size_t i = 0; i < numberOfChannels; ++i) {
    64         int n = frameSize;
     64        int n = length;
    6565        float* p = response->channel(i)->data();
    6666
     
    7171    }
    7272
    73     power = sqrt(power / (numberOfChannels * frameSize));
     73    power = sqrt(power / (numberOfChannels * length));
    7474
    7575    // Protect against accidental overload
     
    103103void Reverb::initialize(AudioBus* impulseResponseBuffer, size_t renderSliceSize, size_t maxFFTSize, size_t numberOfChannels, bool useBackgroundThreads)
    104104{
    105     m_impulseResponseLength = impulseResponseBuffer->frameSize();
     105    m_impulseResponseLength = impulseResponseBuffer->length();
    106106
    107107    // The reverb can handle a mono impulse response and still do stereo processing
     
    113113        AudioChannel* channel = impulseResponseBuffer->channel(i);
    114114
    115         ReverbConvolver* convolver = new ReverbConvolver(channel, renderSliceSize, maxFFTSize, convolverRenderPhase, useBackgroundThreads);
    116         m_convolvers.append(convolver);
     115        OwnPtr<ReverbConvolver> convolver = adoptPtr(new ReverbConvolver(channel, renderSliceSize, maxFFTSize, convolverRenderPhase, useBackgroundThreads));
     116        m_convolvers.append(convolver.release());
    117117
    118118        convolverRenderPhase += renderSliceSize;
     
    130130    // If these conditions are satisfied, all of the source and destination pointers will be valid for the various matrixing cases.
    131131    bool isSafeToProcess = sourceBus && destinationBus && sourceBus->numberOfChannels() > 0 && destinationBus->numberOfChannels() > 0
    132         && framesToProcess <= MaxFrameSize && framesToProcess <= sourceBus->frameSize() && framesToProcess <= destinationBus->frameSize();
     132        && framesToProcess <= MaxFrameSize && framesToProcess <= sourceBus->length() && framesToProcess <= destinationBus->length();
    133133   
    134134    ASSERT(isSafeToProcess);
     
    168168        // simply copy L -> R
    169169        AudioChannel* destinationChannelR = destinationBus->channel(1);
    170         bool isCopySafe = destinationChannelL->data() && destinationChannelR->data() && destinationChannelL->frameSize() >= framesToProcess && destinationChannelR->frameSize() >= framesToProcess;
     170        bool isCopySafe = destinationChannelL->data() && destinationChannelR->data() && destinationChannelL->length() >= framesToProcess && destinationChannelR->length() >= framesToProcess;
    171171        ASSERT(isCopySafe);
    172172        if (!isCopySafe)
  • trunk/WebCore/platform/audio/ReverbAccumulationBuffer.cpp

    r66419 r70742  
    3333#include "ReverbAccumulationBuffer.h"
    3434
    35 #include "Accelerate.h"
     35#include "VectorMath.h"
    3636
    3737namespace WebCore {
     38
     39using namespace VectorMath;
    3840
    3941ReverbAccumulationBuffer::ReverbAccumulationBuffer(size_t length)
  • trunk/WebCore/platform/audio/ReverbAccumulationBuffer.h

    r66419 r70742  
    3030#define ReverbAccumulationBuffer_h
    3131
    32 #include "AudioFloatArray.h"
     32#include "AudioArray.h"
    3333
    3434namespace WebCore {
  • trunk/WebCore/platform/audio/ReverbConvolver.cpp

    r66419 r70742  
    3333#include "ReverbConvolver.h"
    3434
    35 #include "Accelerate.h"
     35#include "VectorMath.h"
    3636#include "AudioBus.h"
    3737
    3838namespace WebCore {
     39
     40using namespace VectorMath;
    3941
    4042const int InputBufferSize = 8 * 16384;
     
    6062
    6163ReverbConvolver::ReverbConvolver(AudioChannel* impulseResponse, size_t renderSliceSize, size_t maxFFTSize, size_t convolverRenderPhase, bool useBackgroundThreads)
    62     : m_impulseResponseLength(impulseResponse->frameSize())
    63     , m_accumulationBuffer(impulseResponse->frameSize() + renderSliceSize)
     64    : m_impulseResponseLength(impulseResponse->length())
     65    , m_accumulationBuffer(impulseResponse->length() + renderSliceSize)
    6466    , m_inputBuffer(InputBufferSize)
    6567    , m_renderSliceSize(renderSliceSize)
     
    8284
    8385    float* response = impulseResponse->data();
    84     size_t totalResponseLength = impulseResponse->frameSize();
     86    size_t totalResponseLength = impulseResponse->length();
    8587
    8688    // Because we're not using direct-convolution in the leading portion, the reverb has an overall latency of half the first-stage FFT size
     
    176178void ReverbConvolver::process(AudioChannel* sourceChannel, AudioChannel* destinationChannel, size_t framesToProcess)
    177179{
    178     bool isSafe = sourceChannel && destinationChannel && sourceChannel->frameSize() >= framesToProcess && destinationChannel->frameSize() >= framesToProcess;
     180    bool isSafe = sourceChannel && destinationChannel && sourceChannel->length() >= framesToProcess && destinationChannel->length() >= framesToProcess;
    179181    ASSERT(isSafe);
    180182    if (!isSafe)
  • trunk/WebCore/platform/audio/ReverbConvolver.h

    r66419 r70742  
    3030#define ReverbConvolver_h
    3131
    32 #include "AudioFloatArray.h"
     32#include "AudioArray.h"
    3333#include "FFTConvolver.h"
    3434#include "ReverbAccumulationBuffer.h"
  • trunk/WebCore/platform/audio/ReverbConvolverStage.cpp

    r66419 r70742  
    3333#include "ReverbConvolverStage.h"
    3434
    35 #include "Accelerate.h"
     35#include "VectorMath.h"
    3636#include "ReverbAccumulationBuffer.h"
    3737#include "ReverbConvolver.h"
     
    4141
    4242namespace WebCore {
     43
     44using namespace VectorMath;
    4345
    4446ReverbConvolverStage::ReverbConvolverStage(float* impulseResponse, size_t responseLength, size_t reverbTotalLatency, size_t stageOffset, size_t stageLength,
     
    5456   
    5557    m_fftKernel.doPaddedFFT(impulseResponse + stageOffset, stageLength);
    56     m_convolver = new FFTConvolver(fftSize);
    57     m_temporaryBuffer.allocate(renderSliceSize);
     58    m_convolver = adoptPtr(new FFTConvolver(fftSize));
     59    m_temporaryBuffer.resize(renderSliceSize);
    5860
    5961    // The convolution stage at offset stageOffset needs to have a corresponding delay to cancel out the offset.
     
    7779    m_framesProcessed = 0; // total frames processed so far
    7880
    79     m_preDelayBuffer.allocate(m_preDelayLength < fftSize ? fftSize : m_preDelayLength);
     81    m_preDelayBuffer.resize(m_preDelayLength < fftSize ? fftSize : m_preDelayLength);
    8082}
    8183
  • trunk/WebCore/platform/audio/ReverbConvolverStage.h

    r66419 r70742  
    3030#define ReverbConvolverStage_h
    3131
    32 #include "AudioFloatArray.h"
     32#include "AudioArray.h"
    3333#include "FFTFrame.h"
    3434#include <wtf/OwnPtr.h>
  • trunk/WebCore/platform/audio/ReverbInputBuffer.h

    r66419 r70742  
    3030#define ReverbInputBuffer_h
    3131
    32 #include "AudioFloatArray.h"
     32#include "AudioArray.h"
    3333
    3434namespace WebCore {
Note: See TracChangeset for help on using the changeset viewer.