diff --git a/dom/media/webaudio/blink/DirectConvolver.cpp b/dom/media/webaudio/blink/DirectConvolver.cpp deleted file mode 100644 index 43461ad37e17..000000000000 --- a/dom/media/webaudio/blink/DirectConvolver.cpp +++ /dev/null @@ -1,347 +0,0 @@ -/* - * Copyright (C) 2012 Intel Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "DirectConvolver.h" -#include "mozilla/PodOperations.h" - -using namespace mozilla; - -namespace WebCore { - -DirectConvolver::DirectConvolver(size_t inputBlockSize) - : m_inputBlockSize(inputBlockSize) -{ - m_buffer.SetLength(inputBlockSize * 2); - PodZero(m_buffer.Elements(), inputBlockSize * 2); -} - -void DirectConvolver::process(const nsTArray* convolutionKernel, const float* sourceP, float* destP, size_t framesToProcess) -{ - MOZ_ASSERT(framesToProcess == m_inputBlockSize); - if (framesToProcess != m_inputBlockSize) - return; - - // Only support kernelSize <= m_inputBlockSize - size_t kernelSize = convolutionKernel->Length(); - MOZ_ASSERT(kernelSize <= m_inputBlockSize); - if (kernelSize > m_inputBlockSize) - return; - - const float* kernelP = convolutionKernel->Elements(); - - // Sanity check - bool isCopyGood = kernelP && sourceP && destP && m_buffer.Elements(); - MOZ_ASSERT(isCopyGood); - if (!isCopyGood) - return; - - float* inputP = m_buffer.Elements() + m_inputBlockSize; - - // Copy samples to 2nd half of input buffer. - memcpy(inputP, sourceP, sizeof(float) * framesToProcess); - - // FIXME: The macro can be further optimized to avoid pipeline stalls. One possibility is to maintain 4 separate sums and change the macro to CONVOLVE_FOUR_SAMPLES. -#define CONVOLVE_ONE_SAMPLE \ - sum += inputP[i - j] * kernelP[j]; \ - j++; - - size_t i = 0; - while (i < framesToProcess) { - size_t j = 0; - float sum = 0; - - // FIXME: SSE optimization may be applied here. - if (kernelSize == 32) { - CONVOLVE_ONE_SAMPLE // 1 - CONVOLVE_ONE_SAMPLE // 2 - CONVOLVE_ONE_SAMPLE // 3 - CONVOLVE_ONE_SAMPLE // 4 - CONVOLVE_ONE_SAMPLE // 5 - CONVOLVE_ONE_SAMPLE // 6 - CONVOLVE_ONE_SAMPLE // 7 - CONVOLVE_ONE_SAMPLE // 8 - CONVOLVE_ONE_SAMPLE // 9 - CONVOLVE_ONE_SAMPLE // 10 - - CONVOLVE_ONE_SAMPLE // 11 - CONVOLVE_ONE_SAMPLE // 12 - CONVOLVE_ONE_SAMPLE // 13 - CONVOLVE_ONE_SAMPLE // 14 - CONVOLVE_ONE_SAMPLE // 15 - CONVOLVE_ONE_SAMPLE // 16 - CONVOLVE_ONE_SAMPLE // 17 - CONVOLVE_ONE_SAMPLE // 18 - CONVOLVE_ONE_SAMPLE // 19 - CONVOLVE_ONE_SAMPLE // 20 - - CONVOLVE_ONE_SAMPLE // 21 - CONVOLVE_ONE_SAMPLE // 22 - CONVOLVE_ONE_SAMPLE // 23 - CONVOLVE_ONE_SAMPLE // 24 - CONVOLVE_ONE_SAMPLE // 25 - CONVOLVE_ONE_SAMPLE // 26 - CONVOLVE_ONE_SAMPLE // 27 - CONVOLVE_ONE_SAMPLE // 28 - CONVOLVE_ONE_SAMPLE // 29 - CONVOLVE_ONE_SAMPLE // 30 - - CONVOLVE_ONE_SAMPLE // 31 - CONVOLVE_ONE_SAMPLE // 32 - - } else if (kernelSize == 64) { - CONVOLVE_ONE_SAMPLE // 1 - CONVOLVE_ONE_SAMPLE // 2 - CONVOLVE_ONE_SAMPLE // 3 - CONVOLVE_ONE_SAMPLE // 4 - CONVOLVE_ONE_SAMPLE // 5 - CONVOLVE_ONE_SAMPLE // 6 - CONVOLVE_ONE_SAMPLE // 7 - CONVOLVE_ONE_SAMPLE // 8 - CONVOLVE_ONE_SAMPLE // 9 - CONVOLVE_ONE_SAMPLE // 10 - - CONVOLVE_ONE_SAMPLE // 11 - CONVOLVE_ONE_SAMPLE // 12 - CONVOLVE_ONE_SAMPLE // 13 - CONVOLVE_ONE_SAMPLE // 14 - CONVOLVE_ONE_SAMPLE // 15 - CONVOLVE_ONE_SAMPLE // 16 - CONVOLVE_ONE_SAMPLE // 17 - CONVOLVE_ONE_SAMPLE // 18 - CONVOLVE_ONE_SAMPLE // 19 - CONVOLVE_ONE_SAMPLE // 20 - - CONVOLVE_ONE_SAMPLE // 21 - CONVOLVE_ONE_SAMPLE // 22 - CONVOLVE_ONE_SAMPLE // 23 - CONVOLVE_ONE_SAMPLE // 24 - CONVOLVE_ONE_SAMPLE // 25 - CONVOLVE_ONE_SAMPLE // 26 - CONVOLVE_ONE_SAMPLE // 27 - CONVOLVE_ONE_SAMPLE // 28 - CONVOLVE_ONE_SAMPLE // 29 - CONVOLVE_ONE_SAMPLE // 30 - - CONVOLVE_ONE_SAMPLE // 31 - CONVOLVE_ONE_SAMPLE // 32 - CONVOLVE_ONE_SAMPLE // 33 - CONVOLVE_ONE_SAMPLE // 34 - CONVOLVE_ONE_SAMPLE // 35 - CONVOLVE_ONE_SAMPLE // 36 - CONVOLVE_ONE_SAMPLE // 37 - CONVOLVE_ONE_SAMPLE // 38 - CONVOLVE_ONE_SAMPLE // 39 - CONVOLVE_ONE_SAMPLE // 40 - - CONVOLVE_ONE_SAMPLE // 41 - CONVOLVE_ONE_SAMPLE // 42 - CONVOLVE_ONE_SAMPLE // 43 - CONVOLVE_ONE_SAMPLE // 44 - CONVOLVE_ONE_SAMPLE // 45 - CONVOLVE_ONE_SAMPLE // 46 - CONVOLVE_ONE_SAMPLE // 47 - CONVOLVE_ONE_SAMPLE // 48 - CONVOLVE_ONE_SAMPLE // 49 - CONVOLVE_ONE_SAMPLE // 50 - - CONVOLVE_ONE_SAMPLE // 51 - CONVOLVE_ONE_SAMPLE // 52 - CONVOLVE_ONE_SAMPLE // 53 - CONVOLVE_ONE_SAMPLE // 54 - CONVOLVE_ONE_SAMPLE // 55 - CONVOLVE_ONE_SAMPLE // 56 - CONVOLVE_ONE_SAMPLE // 57 - CONVOLVE_ONE_SAMPLE // 58 - CONVOLVE_ONE_SAMPLE // 59 - CONVOLVE_ONE_SAMPLE // 60 - - CONVOLVE_ONE_SAMPLE // 61 - CONVOLVE_ONE_SAMPLE // 62 - CONVOLVE_ONE_SAMPLE // 63 - CONVOLVE_ONE_SAMPLE // 64 - - } else if (kernelSize == 128) { - CONVOLVE_ONE_SAMPLE // 1 - CONVOLVE_ONE_SAMPLE // 2 - CONVOLVE_ONE_SAMPLE // 3 - CONVOLVE_ONE_SAMPLE // 4 - CONVOLVE_ONE_SAMPLE // 5 - CONVOLVE_ONE_SAMPLE // 6 - CONVOLVE_ONE_SAMPLE // 7 - CONVOLVE_ONE_SAMPLE // 8 - CONVOLVE_ONE_SAMPLE // 9 - CONVOLVE_ONE_SAMPLE // 10 - - CONVOLVE_ONE_SAMPLE // 11 - CONVOLVE_ONE_SAMPLE // 12 - CONVOLVE_ONE_SAMPLE // 13 - CONVOLVE_ONE_SAMPLE // 14 - CONVOLVE_ONE_SAMPLE // 15 - CONVOLVE_ONE_SAMPLE // 16 - CONVOLVE_ONE_SAMPLE // 17 - CONVOLVE_ONE_SAMPLE // 18 - CONVOLVE_ONE_SAMPLE // 19 - CONVOLVE_ONE_SAMPLE // 20 - - CONVOLVE_ONE_SAMPLE // 21 - CONVOLVE_ONE_SAMPLE // 22 - CONVOLVE_ONE_SAMPLE // 23 - CONVOLVE_ONE_SAMPLE // 24 - CONVOLVE_ONE_SAMPLE // 25 - CONVOLVE_ONE_SAMPLE // 26 - CONVOLVE_ONE_SAMPLE // 27 - CONVOLVE_ONE_SAMPLE // 28 - CONVOLVE_ONE_SAMPLE // 29 - CONVOLVE_ONE_SAMPLE // 30 - - CONVOLVE_ONE_SAMPLE // 31 - CONVOLVE_ONE_SAMPLE // 32 - CONVOLVE_ONE_SAMPLE // 33 - CONVOLVE_ONE_SAMPLE // 34 - CONVOLVE_ONE_SAMPLE // 35 - CONVOLVE_ONE_SAMPLE // 36 - CONVOLVE_ONE_SAMPLE // 37 - CONVOLVE_ONE_SAMPLE // 38 - CONVOLVE_ONE_SAMPLE // 39 - CONVOLVE_ONE_SAMPLE // 40 - - CONVOLVE_ONE_SAMPLE // 41 - CONVOLVE_ONE_SAMPLE // 42 - CONVOLVE_ONE_SAMPLE // 43 - CONVOLVE_ONE_SAMPLE // 44 - CONVOLVE_ONE_SAMPLE // 45 - CONVOLVE_ONE_SAMPLE // 46 - CONVOLVE_ONE_SAMPLE // 47 - CONVOLVE_ONE_SAMPLE // 48 - CONVOLVE_ONE_SAMPLE // 49 - CONVOLVE_ONE_SAMPLE // 50 - - CONVOLVE_ONE_SAMPLE // 51 - CONVOLVE_ONE_SAMPLE // 52 - CONVOLVE_ONE_SAMPLE // 53 - CONVOLVE_ONE_SAMPLE // 54 - CONVOLVE_ONE_SAMPLE // 55 - CONVOLVE_ONE_SAMPLE // 56 - CONVOLVE_ONE_SAMPLE // 57 - CONVOLVE_ONE_SAMPLE // 58 - CONVOLVE_ONE_SAMPLE // 59 - CONVOLVE_ONE_SAMPLE // 60 - - CONVOLVE_ONE_SAMPLE // 61 - CONVOLVE_ONE_SAMPLE // 62 - CONVOLVE_ONE_SAMPLE // 63 - CONVOLVE_ONE_SAMPLE // 64 - CONVOLVE_ONE_SAMPLE // 65 - CONVOLVE_ONE_SAMPLE // 66 - CONVOLVE_ONE_SAMPLE // 67 - CONVOLVE_ONE_SAMPLE // 68 - CONVOLVE_ONE_SAMPLE // 69 - CONVOLVE_ONE_SAMPLE // 70 - - CONVOLVE_ONE_SAMPLE // 71 - CONVOLVE_ONE_SAMPLE // 72 - CONVOLVE_ONE_SAMPLE // 73 - CONVOLVE_ONE_SAMPLE // 74 - CONVOLVE_ONE_SAMPLE // 75 - CONVOLVE_ONE_SAMPLE // 76 - CONVOLVE_ONE_SAMPLE // 77 - CONVOLVE_ONE_SAMPLE // 78 - CONVOLVE_ONE_SAMPLE // 79 - CONVOLVE_ONE_SAMPLE // 80 - - CONVOLVE_ONE_SAMPLE // 81 - CONVOLVE_ONE_SAMPLE // 82 - CONVOLVE_ONE_SAMPLE // 83 - CONVOLVE_ONE_SAMPLE // 84 - CONVOLVE_ONE_SAMPLE // 85 - CONVOLVE_ONE_SAMPLE // 86 - CONVOLVE_ONE_SAMPLE // 87 - CONVOLVE_ONE_SAMPLE // 88 - CONVOLVE_ONE_SAMPLE // 89 - CONVOLVE_ONE_SAMPLE // 90 - - CONVOLVE_ONE_SAMPLE // 91 - CONVOLVE_ONE_SAMPLE // 92 - CONVOLVE_ONE_SAMPLE // 93 - CONVOLVE_ONE_SAMPLE // 94 - CONVOLVE_ONE_SAMPLE // 95 - CONVOLVE_ONE_SAMPLE // 96 - CONVOLVE_ONE_SAMPLE // 97 - CONVOLVE_ONE_SAMPLE // 98 - CONVOLVE_ONE_SAMPLE // 99 - CONVOLVE_ONE_SAMPLE // 100 - - CONVOLVE_ONE_SAMPLE // 101 - CONVOLVE_ONE_SAMPLE // 102 - CONVOLVE_ONE_SAMPLE // 103 - CONVOLVE_ONE_SAMPLE // 104 - CONVOLVE_ONE_SAMPLE // 105 - CONVOLVE_ONE_SAMPLE // 106 - CONVOLVE_ONE_SAMPLE // 107 - CONVOLVE_ONE_SAMPLE // 108 - CONVOLVE_ONE_SAMPLE // 109 - CONVOLVE_ONE_SAMPLE // 110 - - CONVOLVE_ONE_SAMPLE // 111 - CONVOLVE_ONE_SAMPLE // 112 - CONVOLVE_ONE_SAMPLE // 113 - CONVOLVE_ONE_SAMPLE // 114 - CONVOLVE_ONE_SAMPLE // 115 - CONVOLVE_ONE_SAMPLE // 116 - CONVOLVE_ONE_SAMPLE // 117 - CONVOLVE_ONE_SAMPLE // 118 - CONVOLVE_ONE_SAMPLE // 119 - CONVOLVE_ONE_SAMPLE // 120 - - CONVOLVE_ONE_SAMPLE // 121 - CONVOLVE_ONE_SAMPLE // 122 - CONVOLVE_ONE_SAMPLE // 123 - CONVOLVE_ONE_SAMPLE // 124 - CONVOLVE_ONE_SAMPLE // 125 - CONVOLVE_ONE_SAMPLE // 126 - CONVOLVE_ONE_SAMPLE // 127 - CONVOLVE_ONE_SAMPLE // 128 - } else { - while (j < kernelSize) { - // Non-optimized using actual while loop. - CONVOLVE_ONE_SAMPLE - } - } - destP[i++] = sum; - } - - // Copy 2nd half of input buffer to 1st half. - memcpy(m_buffer.Elements(), inputP, sizeof(float) * framesToProcess); -} - -void DirectConvolver::reset() -{ - PodZero(m_buffer.Elements(), m_buffer.Length()); -} - -} // namespace WebCore diff --git a/dom/media/webaudio/blink/DirectConvolver.h b/dom/media/webaudio/blink/DirectConvolver.h deleted file mode 100644 index 5732da64968e..000000000000 --- a/dom/media/webaudio/blink/DirectConvolver.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (C) 2012 Intel Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef DirectConvolver_h -#define DirectConvolver_h - -#include "nsTArray.h" -#include "mozilla/MemoryReporting.h" - -namespace WebCore { - -class DirectConvolver { -public: - explicit DirectConvolver(size_t inputBlockSize); - - void process(const nsTArray* convolutionKernel, const float* sourceP, float* destP, size_t framesToProcess); - - void reset(); - - size_t sizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const - { - size_t amount = aMallocSizeOf(this); - amount += m_buffer.ShallowSizeOfExcludingThis(aMallocSizeOf); - return amount; - } - - -private: - size_t m_inputBlockSize; - - nsTArray m_buffer; -}; - -} // namespace WebCore - -#endif // DirectConvolver_h diff --git a/dom/media/webaudio/blink/ReverbConvolver.cpp b/dom/media/webaudio/blink/ReverbConvolver.cpp index e4213db0f841..5d386df6a021 100644 --- a/dom/media/webaudio/blink/ReverbConvolver.cpp +++ b/dom/media/webaudio/blink/ReverbConvolver.cpp @@ -100,13 +100,11 @@ ReverbConvolver::ReverbConvolver(const float* impulseResponseData, // This "staggers" the time when each FFT happens so they don't all happen at the same time int renderPhase = convolverRenderPhase + stagePhase; - bool useDirectConvolver = false; - nsAutoPtr stage (new ReverbConvolverStage(response, totalResponseLength, reverbTotalLatency, stageOffset, stageSize, fftSize, renderPhase, - &m_accumulationBuffer, useDirectConvolver)); + &m_accumulationBuffer)); bool isBackgroundStage = false; diff --git a/dom/media/webaudio/blink/ReverbConvolverStage.cpp b/dom/media/webaudio/blink/ReverbConvolverStage.cpp index f3a22ee9a48a..f32381cb69b9 100644 --- a/dom/media/webaudio/blink/ReverbConvolverStage.cpp +++ b/dom/media/webaudio/blink/ReverbConvolverStage.cpp @@ -42,25 +42,18 @@ ReverbConvolverStage::ReverbConvolverStage(const float* impulseResponse, size_t, size_t stageOffset, size_t stageLength, size_t fftSize, size_t renderPhase, - ReverbAccumulationBuffer* accumulationBuffer, - bool directMode) + ReverbAccumulationBuffer* accumulationBuffer) : m_accumulationBuffer(accumulationBuffer) , m_accumulationReadIndex(0) , m_inputReadIndex(0) - , m_directMode(directMode) { MOZ_ASSERT(impulseResponse); MOZ_ASSERT(accumulationBuffer); - if (!m_directMode) { - m_fftKernel = new FFTBlock(fftSize); - m_fftKernel->PadAndMakeScaledDFT(impulseResponse + stageOffset, stageLength); - m_fftConvolver = new FFTConvolver(fftSize, renderPhase); - } else { - m_directKernel.SetLength(fftSize / 2); - PodCopy(m_directKernel.Elements(), impulseResponse + stageOffset, fftSize / 2); - m_directConvolver = new DirectConvolver(WEBAUDIO_BLOCK_SIZE); - } + m_fftKernel = new FFTBlock(fftSize); + m_fftKernel->PadAndMakeScaledDFT(impulseResponse + stageOffset, stageLength); + m_fftConvolver = new FFTConvolver(fftSize, renderPhase); + m_temporaryBuffer.SetLength(WEBAUDIO_BLOCK_SIZE); PodZero(m_temporaryBuffer.Elements(), m_temporaryBuffer.Length()); @@ -68,12 +61,9 @@ ReverbConvolverStage::ReverbConvolverStage(const float* impulseResponse, size_t, size_t totalDelay = stageOffset + reverbTotalLatency; // But, the FFT convolution itself incurs latency, so subtract this out... - if (!m_directMode) { - size_t fftLatency = m_fftConvolver->latencyFrames(); - MOZ_ASSERT(totalDelay >= fftLatency); - if (totalDelay >= fftLatency) - totalDelay -= fftLatency; - } + size_t fftLatency = m_fftConvolver->latencyFrames(); + MOZ_ASSERT(totalDelay >= fftLatency); + totalDelay -= fftLatency; m_postDelayLength = totalDelay; } @@ -91,11 +81,6 @@ size_t ReverbConvolverStage::sizeOfIncludingThis(mozilla::MallocSizeOf aMallocSi } amount += m_temporaryBuffer.ShallowSizeOfExcludingThis(aMallocSizeOf); - amount += m_directKernel.ShallowSizeOfExcludingThis(aMallocSizeOf); - - if (m_directConvolver) { - amount += m_directConvolver->sizeOfIncludingThis(aMallocSizeOf); - } return amount; } @@ -119,11 +104,7 @@ void ReverbConvolverStage::process(const float* source) // Now, run the convolution (into the delay buffer). // An expensive FFT will happen every fftSize / 2 frames. // We process in-place here... - if (!m_directMode) - m_fftConvolver->process(m_fftKernel, source, temporaryBuffer); - else - m_directConvolver->process(&m_directKernel, source, - temporaryBuffer, WEBAUDIO_BLOCK_SIZE); + m_fftConvolver->process(m_fftKernel, source, temporaryBuffer); // Now accumulate into reverb's accumulation buffer. m_accumulationBuffer->accumulate(temporaryBuffer, WEBAUDIO_BLOCK_SIZE, diff --git a/dom/media/webaudio/blink/ReverbConvolverStage.h b/dom/media/webaudio/blink/ReverbConvolverStage.h index 84fe982433c2..3dfe81bbdf16 100644 --- a/dom/media/webaudio/blink/ReverbConvolverStage.h +++ b/dom/media/webaudio/blink/ReverbConvolverStage.h @@ -29,7 +29,6 @@ #ifndef ReverbConvolverStage_h #define ReverbConvolverStage_h -#include "DirectConvolver.h" #include "FFTConvolver.h" #include "nsTArray.h" @@ -49,7 +48,7 @@ class ReverbConvolverStage { public: // renderPhase is useful to know so that we can manipulate the pre versus post delay so that stages will perform // their heavy work (FFT processing) on different slices to balance the load in a real-time thread. - ReverbConvolverStage(const float* impulseResponse, size_t responseLength, size_t reverbTotalLatency, size_t stageOffset, size_t stageLength, size_t fftSize, size_t renderPhase, ReverbAccumulationBuffer*, bool directMode = false); + ReverbConvolverStage(const float* impulseResponse, size_t responseLength, size_t reverbTotalLatency, size_t stageOffset, size_t stageLength, size_t fftSize, size_t renderPhase, ReverbAccumulationBuffer*); // |source| must point to an array of WEBAUDIO_BLOCK_SIZE elements. void process(const float* source); @@ -72,10 +71,6 @@ private: size_t m_postDelayLength; nsTArray m_temporaryBuffer; - - bool m_directMode; - nsTArray m_directKernel; - nsAutoPtr m_directConvolver; }; } // namespace WebCore diff --git a/dom/media/webaudio/blink/moz.build b/dom/media/webaudio/blink/moz.build index 196609f03ca6..fd622d0749a6 100644 --- a/dom/media/webaudio/blink/moz.build +++ b/dom/media/webaudio/blink/moz.build @@ -6,7 +6,6 @@ UNIFIED_SOURCES += [ 'Biquad.cpp', - 'DirectConvolver.cpp', 'DynamicsCompressor.cpp', 'DynamicsCompressorKernel.cpp', 'FFTConvolver.cpp',